PREGUNTAS CONTESTADAS - PHP≤nguaje=

 Hay un total de 118 Preguntas.<<  >> 

    Pregunta:  63434 - CONVERTIR IMAGEN TIFF EN JPEG CON PHP
Autor:  Jose Montañez
Por favor necesito publicar en web imagenes que tengo en un servidor, estas imagenes estan en tiff. Me aconsejan cambiarlas a pdf o jpeg para poder visualizarlas.
El sistema que tengo es windows 2008 Server R2 y mi aplicacion esta en php.
  Respuesta:  sergio_between Damian
Internet explorer no soporta el formato de imagen TIFF y además PHP no soporta de manera nativa la conversión de imagenes tiff a jpeg

ImageMagick (http://www.imagemagick.org/script/index.php) es un software que convierte una gran variedad de formatos. Para usuarios de widnows existe una extensión php,php_magickwand_st.dll (corre sobre PHP 5.0.4).

Cuando se convierte desde tiif, también debes comvertir desde el espacio CMYK a RGB
porque internet explorer una vez más no soporta CMYK.
Las imagenes Tiff podrían tener RGB o CMYK en su espacio de colores.

En este ejemplo uso ImageMagick extension, y la imagen la establezco a jpeg con 300dpis. No se cambia en absoluto el tamaño de la imagen.


<?php

function cmyk2rgb($file) {
$mgck_wnd = NewMagickWand();
MagickReadImage($mgck_wnd, $file);

$img_colspc = MagickGetImageColorspace($mgck_wnd);
if ($img_colspc == MW_CMYKColorspace) {
echo "$file was in CMYK format<br />";
MagickSetImageColorspace($mgck_wnd, MW_RGBColorspace);
}
MagickWriteImage($mgck_wnd, str_replace('.', '-rgb.', $file));
}

function tiff2jpg($file) {
$mgck_wnd = NewMagickWand();
MagickReadImage($mgck_wnd, $file);

$img_colspc = MagickGetImageColorspace($mgck_wnd);
if ($img_colspc == MW_CMYKColorspace) {
echo "$file was in CMYK format<br />";
MagickSetImageColorspace($mgck_wnd, MW_RGBColorspace);
}
MagickSetImageFormat($mgck_wnd, 'JPG' );
MagickWriteImage($mgck_wnd, str_replace('.tif', '.jpg', $file));
}

function to300dpi($file) {
$mgck_wnd = NewMagickWand();
MagickReadImage($mgck_wnd, $file);
$img_units = MagickGetImageUnits($mgck_wnd);
switch ($img_units) {
case MW_UndefinedResolution: $units= 'undefined'; break;
case MW_PixelsPerInchResolution: $units= 'PPI'; break;
case MW_PixelsPerCentimeterResolution: $units= 'PPcm'; break;
}
list($x_res, $y_res) = MagickGetImageResolution($mgck_wnd);
echo "$file<br /> x_res=$x_res $units - y_res=$y_res $units<br />";
if($x_res == 300 && $y_res == 300 && $img_units == MW_PixelsPerInchResolution) {return; }
MagickSetImageResolution($mgck_wnd, 300 , 300);
MagickSetImageUnits($mgck_wnd, MW_PixelsPerInchResolution);
MagickWriteImage($mgck_wnd, str_replace('.', '-300.', $file));
}

$file='photos/test-cmyk.tif';
//imagen de 96 dpis de resolución.

cmyk2rgb($file);
$file = str_replace('.', '-rgb.', $file);

to300dpi($file);
$file = str_replace('.', '-300.', $file);

tiff2jpg($file);
$file = str_replace('.tif', '.jpg', $file);

to300dpi($file);
/* no file name changes as ImageMagick reports 300 DPIs
$file = str_replace('.', '-300.', $file);
*/

list($width, $height, $type, $attr) = getimagesize($file);
$width = $width/3;
$height = $height/3;
echo "<img src=\"http://localhost/$file\" width=\"$width\" height=\"$height\" alt=\"getimagesize() example\" />";
echo "<br />$file => width=$width - height=$height - type=$type - attr=$attr<br /><br />";

$file='photos/test-rgb.tif';
//this is a TIFF file in RGB format with a 96 DPI resolution

cmyk2rgb($file);
$file = str_replace('.', '-rgb.', $file);

to300dpi($file);
$file = str_replace('.', '-300.', $file);

tiff2jpg($file);
$file = str_replace('.tif', '.jpg', $file);

to300dpi($file);
/* no file name changes as ImageMagick reports 300 DPIs
$file = str_replace('.', '-300.', $file);
*/

list($width, $height, $type, $attr) = getimagesize($file);
$width = $width/3;
$height = $height/3;
echo "<img src=\"http://localhost/$file\" width=\"$width\" height=\"$height\" alt=\"getimagesize() example\" />";
echo "<br />$file => width=$width - height=$height - type=$type - attr=$attr<br /><br />";

?>

    Pregunta:  63852 - GRAFICAR DATOS DE UN CSV EN PHP
Autor:  Pablo Rodriguez
primero que todo felicitaciones por su pagina siempre es de mucha ayuda,
lo que necesito realizar es lo siguiente:
abrir un archivo CSV desde php y graficar los datos(grafico de barra).
por ejemplo:
2002,enero,1,15,30.(primera linea del archivo csv).
lo que necesito graficar son los datos "15" y "30".
desde ya muchas gracias.
  Respuesta:  Juan Pablo Sanchez
Bueno lo primero que debes tener es el script para leer el archivo csv, aqui te dejo un link:

http://www.webtaller.com/construccion/lenguajes/php/lecciones/leer_datos_fichero_csv_php.php

segundo necesitas una libreria que te permita graficar los datos, aqui te dejo un link:

http://jpgraph.net/features/src/show-example.php?target=new_bar3.php

Alli esta un ejemplo, la libreria jpgraph permite hacer cualquier tipo de grafico como el que tu necesitas.

    Pregunta:  63878 - QUIERO CREAR UN PDF EN UN SERVIDOR GRATUITO
Autor:  Rodolfo Rojas
Saludos a todos.
Saben me he registrado en alojalo.info y estoy diseñando una web personal y como estoy ingresando mi curriculum, me gustaria que aquel persona que desee descargar mi curriculum lo descargue desde la BD en formato pdf. He estado intentando con pdflib pero no he tenido ningun resultado favorable.Alguien me podria orientar como poder hacerlo. Gracias.
  Respuesta:  Rodolfo Rojas
Si los que leyeron esto no supieron como ayudarme, aca les dejo la solucion despues de muchas lunas de WEBeo encontre mi solucion. Esto se puede hacer con FPDF, es muy versatil y facil para manipular una base de datos.

    Pregunta:  64060 - TIEMPO DE RESPUESTA LENTA EN RED
Autor:  Arturo Lazarte
Que tal, he creado una aplicación en PHP 5 con BD Sybase 12.5, cuando hago las pruebas desde el servidor local (localhost) todo normal con la ejecución de las consultas, pero cuando ejecuto el programa desde otra pc, la aplicación se vuelve lenta, incluso demora en cargar las imagenes y las consultas se vuelven muy lentas.Quisiera saber como puedo mejorar la perfomance de mi aplicación web
  Respuesta:  Ivan Zamora
Puedes hacer cache de paginas web, hay muchos sistemitas en php que hacen cache de paginas y que comparan el tiempo si esta dentro del rango en vez de ejecutar el script te mandan la pagina html, otra cosa que puedes hacer es decirle al navegador cliente que cachee la pagina, al enviarle las cabeceras http donde le indiques que haga cache asi mas o menos

function set_cache_client($min=1){
$min = $min*60;
$fechaoriginal = date("r");
$fecha = date("r",time()+$min);
header("Expires: ".substr($fecha,0,strlen($fecha)-5)."GMT");
header("Cache-control: public, max-age=".$min.", must-revalidate")
header("Last-modified: ".substr($fechaoriginal,0,strlen($fechaoriginal)-5)."GMT");
}

ahora puedes hacer cache del opcode que genera el interprete de php con APC (Alternative PHP Cache) esto es mas complejo pero mas efectivo.

puedes seguir el siguiente tutorial para instalarlo
http://webplusplus.blogspot.com/2011/10/optimizar-php-con-apc.html

ahora puede ser que tambien tu base de datos este muy lenta o tus consultas mal optimizadas.

saludos

    Pregunta:  64129 - DBF A MYSQL SI O SI CON PHP
Autor:  eduardo rios
hola saludos tengo una consulta

, la idea es usar tareas progrmadas(cron jobs ) paras subir el dbf al hosting , alli el script php lee el dbf y registra la data en mysql , el escrip se ejecuta alas 5pm todos los dias para eso tmabien en el cpanel del hosting usaremos cron jobs , todo mi trabajo depende del bendito script php , recorri a amigos y foros ya nadie me acostateado o podido ayudarme , no quiero que me voten , mi jefe solo quiere resultados , ya nose aquien mas recurrir , cruzo los dedos para que puedas ayudarme o dar con el error , o algun ejemplo , de leer los dbf si los lee, pero el problema esta en la parte roja del codigo gracias

hasta hoara solo logre leerlos y cuando trato de registrarlos en mysql arroja error ,creo que es por que estoy tratando de meter un arreglo a un insert o nose que peude ser ? si quito la segunda parte me imprime Data 1: jean Data 2: drill Data 3: lona , necestito un poc de ayuda ya mi jefe esta algo asado ,


puedes darme uan pista que hago mal? gracias , el error es

Warning: dbase_get_record_with_names() [function.dbase-get-record-with-names]: Unable to find database for identifier 1 in C:xampphtdocsesperanzaverm2m2edu.php on line 6

Warning: dbase_get_record_with_names() [function.dbase-get-record-with-names]: Unable to find database for identifier 1 in C:xampphtdocsesperanzaverm2m2edu.php on line 6

<?php
$db = dbase_open('tabla.dbf', 0);
if ($db) {
$número_registros = dbase_numrecords($db);
for ($i = 1; $i <= $número_registros; $i++) {
$fila = dbase_get_record_with_names($db, $i);
if ($fila['CODIGO'] == 1) {
echo "Data $i: " . trim($fila['MARCA']) . " ";

$codigo=$fila['CODIGO'];
$marca=$fila['MARCA'];
//segunda parte
$con= mysql_connect("localhost","root","");
$db = mysql_select_db('migra2',$con);
$sql ="INSERT INTO tabla (
codigo,MARCA) VALUES (
' $codigo ',
' $marca'";
$result = mysql_query($sql);
mysql_close($con);
// segunda aprte
}
}
}
?>
  Respuesta:  Marino Esteban
es porque en la segunda parte le asignas a

$db = mysql_select_db('migra2',$con);
cambiale el nombre a la variable, por que recuerda que al iniciar el ciclo la necesitas para la otra base de datos.

Saludos.

    Pregunta:  64308 - INSERT TOP EN MYSQL
Autor:  Sebastián Rebolledo
Saludos, estoy trabajando con PHP y Mysql y necesito realizar un procedimiento almacenado para insertar un registro con dos campos un id y un nombre, el id debe ser el ultimo numero ingresado más 1, casi como autoincremento, pero eso no me sirve, porque si el último número es 15 y lo borro, al ingresar otro registro tendrá valor 16 y me deja un vacio.

lo que necesito es meter en un insert (o en una variable dentro del procedimiento) alguna de estas consultas:

select max (id_marca)+1 from marcas;
select (id_marca+1) as m from marcas order by m desc limit 0,1;

he revizado en varios sitios y no han encontrado la solución, alguien sabe como se puede hacer?
  Respuesta:  Jose Garcia
A ver si puedo ayudarte...

Si lo haces con IDs es imposible porque si tenes un IDENTITY 1,1 y va contando por el 15 y borras hasta el 10, tu numero mas alto es el 9 y el siguiente es el 10.

Agrega un campo nuevo DATETIME y por cada inserción guardale un NOW(), luego:
ORDER BY fechaOrd DESC para tener la fecha más reciente y obtener LIMIT 1; en caso de querer un solo registro... espero que te sirva la idea :) Saludos!!

    Pregunta:  64342 - PHP Y EXEL
Autor:  Arnold Roye
Una consulta como se agrega encabezados y pie de pagina a una planilla exel con codigo php.
Un agredecimiento de antemo
  Respuesta:  Xarls dikens
Has probado esta herramienta http://phpexcel.codeplex.com/ ?
Con ella puedes leer, modificar o generar Excel y entre sus caracteristicas esta lo que necesitas

    Pregunta:  64428 - VARIABLES AL RECARGAR PAGINA
Autor:  JHON JAIRO FIGUEROA CHAMORRO
Necesito conocer como eliminar este error:

Notice: Undefined index: Operarios in C:wampwwwcissnephpADMINISTRADORPERMISOS.php on line 3

me lo muestra en pantalla la primera vez que ingreso a la pagina, sucede por la siguiente linea.....
$Operarios=$_GET['Operarios'];

Operarios es el valor de un select que pertenece a la pagina que se recarga

el codigo funciona perfectamente.....
  Respuesta:  xavi
Hola Jhon, no es un error, sino una "Notice"
Te indica, que el indice Operarios del array $_GET no existe.

Puedes modificar el php.ini para que no te ensenye las noticias modificando el parametro "error_reporting"

Un saludo

    Pregunta:  64644 - COMO DECLARAR UNA VARIABLE GLOBAL A VARIAS PAGINAS EN PHP
Autor:  Jose Antonio Montano
Como declaro una variable global en php
  Respuesta:  xve
Hola Jose Antonio, para ello, tienes que utilizar las variables de session, ya que son las unicas que podras utilizar mientras el usuario tenga abierto el navegador.
Si revisas la ayuda del php, veras como utilizarlas.

http://www.php.net/manual/es/ref.session.php

Un saludo

    Pregunta:  64836 - PHP A FOXPRO
Autor:  rigo
Hola a todos, necesito hacer una conexión a una BD en Fox, pero necesito aplicar un SQL, no me sirve obtener registro por registro, ya que debo ejecutar una consulta que relaciona varias tablas.

El server Apache-Php está en Linux y el VFP también pero están en máquinas diferentes, amabas en centos.

Alguien puede darme una mano?

Gracias!!!
  Respuesta:  Miguel JImenez
LO que te sugiero es que, exportes las tablas de VFP a Mysql o Postgred, ya q es mas manejable por un servidor apache.

|<  <<  2 3 4 5 6 7 8 9 10 11 12  >>  >|