![]() | ![]() | ![]() |
FAQ de es.comp.lenguajes.PHP
por Lex (gracias a Kepler y a Christian por sus aportaciones)
version 0.1.
Ultima revisión 30/10/2003.
Si tienes preguntas o comentarios sobre esta faq, puedes hacerlas aquí:

¿ Cómo se pasan variables de una pagina a otra?
Desde la versión 4.2 de PHP, se hace de una manera nueva. Esta consiste
en utilizar los siguientes arrays:
$variable=$_GET["variable"];
$variable=$_POST["variable"];
$variable=$_REQUEST["variable"];
Si queremos pasar la variable por GET, entonces en el formulario html el "method"
deberá ser GET.
En las versiones anteriores, si habíamos pasado una variable con un formulario,
era irrelevante si se hacia con GET o POST. La variable ya aparecía instanciada
en la nueva pagina, con lo que el paso anteriormente descrito no era necesario.
Comprueba en el php.ini que existe esta linea si quieres usar las variables
como en PHP3:
register_globals = On
Pulsa
el triangulito pa volver arriba.
Limitar los registros mostrados al acceder a una base
de datos MySQL.
Cuando queremos sacar sólo unos determinados registros de una consulta
realizada (por ejemplo, los registros del 51 al 100) se debe añadir la
clausula LIMIT. Esto es:
Pulsa
el triangulito pa volver arriba.![]()
Expresiones regulares en PHP.
Se comportan y se utilizan como en cualquier otro lenguaje. Hay una manual que
sirve para hacerse una idea aqui:
http://es.tldp.org/Tutoriales/UXO/uxo/node25.html
http://www.php.net
Manuales de Perl (en Perl se usan bastante las expresiones regulares).
Pulsa
el triangulito pa volver arriba.![]()
¿Qué es el error: 'failed to create stream: Permission denied'?
Es un error de permisos. Tu programa intenta escribir en disco, pero el usuario
bajo el que se ejecuta no tiene permisos para escribir en ese directorio. Si
se trata de Unix/Linux, se puede solucionar facilmente con un chmod, o incluyendo
el usuario en el grupo para el que tiene permisos.
Pulsa
el triangulito pa volver arriba.![]()
¿Como puedo hacer gráficos en PHP?
Existe una biblioteca, la GDLIB, y una mejorada, la GD2. Con cualquiera de ellas
puedes hacer gráficos. En www.php.net se explica cómo de manera
muy completa.
Pulsa
el triangulito pa volver arriba.![]()
¿Como puedo saber si tengo PHP bien
instalado?
Haz una pagina prueba.php tal que asi:
<?
phpinfo();
?>
Pulsa
el triangulito pa volver arriba.![]()
¿Como puedo saber si tengo cargado el modulo
de mysql, o cualquier otro modulo?
Ver "¿Como puedo saber si tengo PHP bien instalado?".
Pulsa
el triangulito pa volver arriba.![]()
¿Como puedo añadir un módulo,
biblioteca o extensión?
En el php.ini ve a dynamic extensions y vigila que no esté "comentado"
el módulo que deseas utilizar.
Pulsa
el triangulito pa volver arriba.![]()
Partir un texto sin que se partan las palabras:
Manera de Fidel:
<?
function string_word_cut($str,$anz)
{
$aux_str=substr($str,0,$anz);
$last = substr (strrchr ($aux_str, 32), 1 );
$neu= strlen($aux_str)-strlen($last);
return substr($str,0,$neu);
}
string_word_cut($string,200);?>
Manera de Christian:
<?
function limit_string($cadena,$limite)
{
$cadena=explode('<rup>',wordwrap( $cadena, $limite,'<rup>'));
return $cadena[0]."...";
}
?>
Pulsa
el triangulito pa volver arriba.![]()
Ejemplo de Creación de imágenes:
Gracias a Christian y Mainake:
<?
//Una Creacion De Jorge Luis Martinez M
//http://misCodigos.jlmnetwork.com/
/$Este Archivo Recibe Los Parametros $ruta, Que Es La Ruta Interna De La
Imagen En El Servidor, Y Los Parametros $ancho y $alto Que Se Refiere Al
Alto Y Ancho De La Previsualizacion.$/
:ruta = :_GET['ruta'];
:ancho = :_GET['ancho'];
:alto = :_GET['alto'];
:fuente = imagecreatefrompng(:ruta);
:imgAncho = imagesx (:fuente);
:imgAlto =imagesy(:fuente);
:imagen = ImageCreate(:ancho,:alto);
:ImageCopyResized(:imagen,:fuente,0,0,0,0,:ancho,:alto,:imgAncho,:imgAlto);
header("Content-type: image/png");
imagepng(:imagen);
?>
Pulsa
el triangulito pa volver arriba.![]()
Cómo puedo sacar la fecha y hora del sistema?
$fecha=date("d/m/y H:i",time());
Pulsa
el triangulito pa volver arriba.![]()
¿Como puedo hacer operaciones con
fechas?
Usa la función mktime(). Más info en http://es2.php.net/manual/es/function.mktime.php
Pulsa
el triangulito pa volver arriba.![]()
¿Como puedo enviar correos con PHP?
Usa la funcion mail().
Pulsa
el triangulito pa volver arriba.![]()
¿Como puedo enviar correos si el servidor
smtp usa atenticacion?
Usa la clase phpmailer(). En la pagina de su creador puedes ver un ejemplo de
como se usa.
http://phpmailer.sourceforge.net/
Pulsa
el triangulito pa volver arriba.![]()
¿Como puedo enviar correos si el servidor smtp usa autenticacion
y no quiero usar clases?
function socketmail($toArray, $subject, $message) {
// $toArray format --> array("Name1" => "address1",
"Name2" => "address2",
...)
ini_set(sendmail_from, "myemail@address.com");
$connect = fsockopen (ini_get("SMTP"), ini_get("smtp_port"),
$errno,
$errstr, 30) or die("Could not talk to the sendmail server!");
$rcv = fgets($connect, 1024);
fputs($connect, "HELO {$_SERVER['SERVER_NAME']}\r\n");
$rcv = fgets($connect, 1024);
while (list($toKey, $toValue) = each($toArray)) {
fputs($connect, "MAIL FROM:myemail@address.com\r\n");
$rcv = fgets($connect, 1024);
fputs($connect, "RCPT TO:$toValue\r\n");
$rcv = fgets($connect, 1024);
fputs($connect, "DATA\r\n");
$rcv = fgets($connect, 1024);
fputs($connect, "Subject: $subject\r\n");
fputs($connect, "From: My Name <myemail@address.com>\r\n");
fputs($connect, "To: $toKey <$toValue>\r\n");
fputs($connect, "X-Sender: <myemail@address.com>\r\n");
fputs($connect, "Return-Path: <myemail@address.com>\r\n");
fputs($connect, "Errors-To: <myemail@address.com>\r\n");
fputs($connect, "X-Mailer: PHP\r\n");
fputs($connect, "X-Priority: 3\r\n");
fputs($connect, "Content-Type: text/plain; charset=iso-8859-1\r\n");
fputs($connect, "\r\n");
fputs($connect, stripslashes($message)." \r\n");
fputs($connect, ".\r\n");
$rcv = fgets($connect, 1024);
fputs($connect, "RSET\r\n");
$rcv = fgets($connect, 1024);
}
fputs ($connect, "QUIT\r\n");
$rcv = fgets ($connect, 1024);
fclose($connect);
ini_restore(sendmail_from);
}
Pulsa
el triangulito pa volver arriba.![]()
¿Como puedo acelerar la carga de paginas
PHP?
Usando un motor como Zend.
Pulsa
el triangulito pa volver arriba.![]()
¿Como puedo instalar un módulo de
PHP?
Echa un ojo al php.ini. Si trabajas con linux, se encuentra en /etc. Si trabajas
con Win, lo tienes en c:\windows\php.ini. Abrelo, y descomenta las lineas de
las bibliotecas que deseas usar. Si trabajas con la version cgi de PHP en Windows
(ocupa menos de 1mb) no encontrarás las librerías. Deberás
instalar la de 5mb, que sí las lleva.
Pulsa
el triangulito pa volver arriba.![]()
¿Por que no me funcionan las sesiones?
Echa un ojo al php.ini. Busca la seccion [Session]. Puede deberse a que no inicias
la sesion. En este caso, vigila que en el php.ini ponga: session.auto_start
= 1, o si no, puedes iniciar la sesion en medio de tu programa php con session_start();
Si aun no te funcionan, comprueba lo siguiente:
session.save_handler = files
session.save_path = pathdetussesiones
pathdetusesiones debe existir y tener los permisos adecuados para
que PHP pueda escribir.
Pulsa
el triangulito pa volver arriba.![]()
¿Por qué intento subir un fichero y no lo sube?
Puede deberse a tres cosas:
Uno: El upload no está activado. Ve a php.ini y comprueba:
file_uploads = On
Dos : Estás excediendo el limite de subida. Ve a php.ini y comprueba
este parametro:
upload_max_filesize = 2M
Tres: No está puesto el directorio donde se pueden subir los ficheros,
o no tienes permiso para ello. Comprueba:
upload_tmp_dir =
Pulsa
el triangulito pa volver arriba.![]()
¿Por qué me da error la clausula IN
de MySQL?
En MySQL el IN no está completamente soportado hasta la versión
4. Esto significa que dentro del IN puede ir una sucesión de valores
ya calculados, pero no otra SELECT anidada.
Pulsa
el triangulito pa volver arriba.![]()
¿Un servidor gratuito que soporte
PHP?
En esta página tienes una lista muy completa.
Pulsa
el triangulito pa volver arriba.![]()
FAQ | Acceso |
Editores | RFD | Manuales
| Enlaces | Hosting
| Varios | Foro