[Recomendado] Preguntas Mas Frecuentes de PHP (scripts)

Iniciado por Cuantico, 28 Febrero 2004, 05:01 AM

0 Miembros y 1 Visitante están viendo este tema.

Cuantico

Segun Riven-Ward:
"
Buenas ;D

La verdad no le veo mucho sentido a este script, pero bueh xDD

A través del siguiente script, se revisa cada letra o carácter de una cadena y se le compara con cada row de un array. Si se es igual al row, osea, hay un carácter inválido, se da por falso.

Esto lo hice hoy porque hoy mismo "descubrí" que se puede tratar a una cadena como un array...

Y como un script vale mas que mil palabras (esta me la inventé yo ;D), aquí va:

<?php
$inv 
= array (
0=>32,
1=>33
);
$str "Hola amigo!";
$long strlen ($str)-1;
for (
$i 0$i <= $long$i++) {
for (
$x 0$x <= count($inv); $x++) {
if (
ord ($str[$i]) == $inv[$x]) {
$malo true;
}
}
}
if (
$malo) {
echo 
"Cadena con carácteres inválidos!";
}
else {
echo 
"Cadena correcta";
}
?>


La función ord() es para obtener el ASCII de un carácter.

Como podrán darse cuenta, en el array están los ASCII del espacio (  ) y del signo de exclamación ( ! ). Aquí les dejo la lista de carácteres ASCII, que podrían ser considerados inválidos.

Citar32 ->  (espacio)
33 -> !
34 -> "
38 -> &
39 -> '
40 -> (
41 -> )
42 -> *
45 -> -
46 -> .
47 -> /
58 -> :
59 -> ;
60 -> <
61 -> =
62 -> >
63 -> ?
91 -> [
92 ->
93 -> ]
94 -> ^
123 -> {
124 -> |
125 -> }
126 -> ~

Salu2!"
:)

Cuantico

Riven-Ward dice: "

Bueno, ustedes conocerán las Librerías GD.

Son unas librerías (... xDD) para trabajar con imágenes. Por ejemplo, poner la IP del visitante en una imágen.

NOTA: No todos los host's aceptan GD... Pregunten con el administrador. Si no tienen GD, no pueden usar esto.

Les dejo un ejemplo que hice yo aqui, que muestra la fecha actual y la IP del visitante, con un fondo hecho en Photoshop ;D



Con ésta función que voy a poner, puedes elegir la fuente que quieras que tenga el texto que pondrás, la posición del texto, el ángulo (puedes ponerlo en distintos ángulos, p.e 90°) y el tamaño de fuente. Solo se pueden usar imágenes JPG y PNG. Bueno, no SOLO esas, pero son las mas usadas y las que mejor se ven. El Gif NO se puede usar a partir de la versión 1.6 del GD... Bueno, después de esta breve explicación, va el código:

<?php
header
("Content-type: image/jpeg"); //El tipo de imágen
$im "http://www.tuweb.com/imagen.jpg"//Url COMPLETA de la imágen
$img ImageCreateFromJpeg ($im);
$color ImageColorAllocate ($img000); 
/*
Color negro... El color está en formato RGB, puedes ver esto en el Paint, o el Photoshop.
El negro es el 0 0 0 y el blanco el 255 255 255
*/
$texto "Hola, eres ".$REMOTE_ADDR;
ImageTTFText($img1002595$color"/home/pagina/public_html/arial.ttf",$text);
/*
Pequeña explicación de esta función:
Estructura: array imagettftext ( resource imagen, int tamanyo, int angulo, int x, int y, int color, string archivo_fuente, string texto)
-> Sacado de php.net <-
La fuente debe estar en tu servidor, no es necesario que le usuario la tenga. Además, la fuente debe estar en su RUTA COMPLETA, como la que se indica arriba.
Debes cambiar la posición del texto y todo eso. Recuerda que puedes ver en que posición poner el texto con Paint, abajo sale el lugar en el que está el mouse. Te saldrá, p.e., 12,42: Ponlos en ese orden.
*/
ImageJpeg ($img); //Se muestra la imágen
ImageDestroy ($img); //Se libera la memoria y FIN :D
?>



Debo agregar que si la imágen es PNG, deben cambiar las siguientes funciónes:

header("Content-type: image/jpeg"); -> header("Content-type: image/png");

ImageCreateFromJpeg -> ImageCreateFromPng

ImageJpeg -> ImagePng

Creo que eso es todo... Para mayor información, ver la documentación de PHP.

Salu2!
"
:)

Cuantico

en un formulario que hice para unas personas, eran algunas 80 preguntas (son, aun no termino) uso esta funciona cada vez que le den al submit con algun campo que sea obligatorio y esté vacio.




<?php
function comprobar($mensaje) {
echo 
'<script language="javascript">alert("'.$mensaje.'\n\nFormulario para Egresados Honoríficos"); javascript:history.back(1)</script>';
}


?>

:)

Cuantico

#23
Funcion para convertir los bbcodes q se utilizan en los foros y message board, para publicarlo en buro codigo html...


<?php
function BIs2cODE($texto) {
        
$texto nl2br($texto);
        
$texto wordwrap($texto150"\n"1);

        
$texto str_replace("[b]""<b>"$texto);
        
$texto str_replace("[/b]""</b>"$texto);
        
$texto str_replace("[i]""<i>"$texto);
        
$texto str_replace("[/i]""</i>"$texto);
        
$texto str_replace("[poem]""<center><i>"$texto);
        
$texto str_replace("[/poem]""</center></i>"$texto);
        
$texto str_replace("[u]""<u>"$texto);
        
$texto str_replace("[/u]""</u>"$texto);
        
$texto str_replace("[br]","<br>",$texto);
        
$texto str_replace("[strong]","<strong>",$texto);
        
$texto str_replace("[/strong]","</strong>",$texto);
        
$texto str_replace("[center]","<center>",$texto);
        
$texto str_replace("[/center]","</center>",$texto);
        
$texto str_replace("[marquee]""<marquee>"$texto);
        
$texto str_replace("[/marquee]""</marquee>"$texto);
        
$texto str_replace("[blink]""<blink>"$texto);
        
$texto str_replace("[/blink]""</blink>"$texto);
        
$texto str_replace("[strike]""<strike>"$texto);
        
$texto str_replace("[/strike]""</strike>"$texto);
        
$texto str_replace("[quote]""<blockquote><span>Citado:</span><hr color=#A3CFD8>"$texto);
        
$texto str_replace("[list]","<ul type=square>",$texto);
        
$texto str_replace("[/list]","</ul>",$texto);
        
$texto str_replace("[list=1]","<ol type=1>",$texto);
        
$texto str_replace("[list=a]","<ol type=A>",$texto);
        
$texto str_replace("[list=A]","<ol type=A>",$texto);
        
$texto str_replace("[/list=1]","</ol>",$texto);
        
$texto str_replace("[/list=a]","</ol>",$texto);
        
$texto str_replace("[/list=A]","</ol>",$texto);
        
$texto str_replace("[*]","<li>",$texto);
        
$texto str_replace("[•]","<li>",$texto);

        
$texto eregi_replace("(^|[>[:space:]\n])([[:alnum:]]+)://([^[:space:]]*)([[:alnum:]#?/&=])([<[:space:]\n]|$)","\\1<a href=\"\\2://\\3\\4\" target=\"_blank\">\\2://\\3\\4</a>\\5"$texto);

        
$texto eregi_replace("\\[color=([^\\[]*)\\]([^\\[]*)\\[/color\\]","<font color=\\1>\\2</font>",$texto);
        
$texto eregi_replace("\\[size=([^\\[]*)\\]([^\\[]*)\\[/size\\]","<font size=\\1>\\2</font>",$texto);
        
$texto eregi_replace("\\[font=([^\\[]*)\\]([^\\[]*)\\[/font\\]","<font face=\\1>\\2</font>",$texto);
        
$texto eregi_replace("\\[align=([^\\[]*)\\]([^\\[]*)\\[/align\\]","<p align=\\1>\\2</p>",$texto);

        
$padrones[]     = "#\[img\]([^\[]*)\[/img\]#si";
        
$remplanzantes[] = '<img src="\1" border=0 />';

        
$padrones[]     = "#\[img=([^\[]*)x([^\[]*)\]([^\[]*)\[/img\]#si";
        
$remplanzantes[] = '<img width="\1" height="\2" src="\3" border=0 />';

        
$padrones[]     = "#\[flash=([0-9].*?){1}x([0-9]*?)\](.*?)\[/flash\]#si";
        
$remplanzantes[] = '<OBJECT classid=clsid:D27CDB6E-AE6D-11cf-96B8-444553540000 codebase=http://active.macromedia.com/flash2/cabs/swflash.cab#version=6,0,0,0 ID=main WIDTH=\1 HEIGHT=\2><PARAM NAME=movie VALUE=\3><PARAM NAME=loop VALUE=false><PARAM NAME=menu VALUE=false><PARAM NAME=quality VALUE=best><EMBED src=\3 loop=false menu=false quality=best WIDTH=\1 HEIGHT=\2 TYPE=application/x-shockwave-flash PLUGINSPAGE=http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash></EMBED></OBJECT>';

        
$padrones[]     = "#\[url\]([a-z]+?://){1}(.*?)\[/url\]#si";
        
$remplanzantes[] = '<a href="\1\2" target="_blank">\1\2</a>';

        
$padrones[]     = "#\[url\](.*?)\[/url\]#si";
        
$remplanzantes[] = '<a href="http://\1" target="_blank">\1</a>';

        
$padrones[]     = "#\[url=([a-z]+?://){1}(.*?)\](.*?)\[/url\]#si";
        
$remplanzantes[] = '<a href="\1\2" target="_blank">\3</a>';

        
$padrones[]     = "#\[url=(.*?)\](.*?)\[/url\]#si";
        
$remplanzantes[] = '<a href="http://\1" target="_blank">\2</a>';

        
$padrones[]     = "#\[email\](.*?)\[/email\]#si";
        
$remplanzantes[] = '<a href="mailto:\1">\1</a>';

        
$padrones[]     = "#\[email=(.*?){1}(.*?)\](.*?)\[/email\]#si";
        
$remplanzantes[] = '<a href="mailto:\1\2">\3</a>';

        
$texto preg_replace($padrones$remplanzantes$texto);
        return 
$texto;
}
?>




Y se utiliza con el simple: BIs2cODE($variable);[/quote]
:)

Cuantico

^[A-Za-z][A-Za-z0-9_]*@[A-Za-z0-9_]+.[A-Za-z0-9_.]+[A-za-z]$
:)

Cuantico

si tiene version de php anterior a 4.3 y necesita usar session_regenerate_id, cree usted mismo la funcion

<?php
   
if (!function_exists('session_regenerate_id')) {
       function 
php_combined_lcg() {
           
$tv gettimeofday();
           
$lcg['s1'] = $tv['sec'] ^ (~$tv['usec']);
           
$lcg['s2'] = posix_getpid();

           
$q = (int) ($lcg['s1'] / 53668);
           
$lcg['s1'] = (int) (40014 * ($lcg['s1'] - 53668 $q) - 12211 $q);
           if (
$lcg['s1'] < 0)
               
$lcg['s1'] += 2147483563;

           
$q = (int) ($lcg['s2'] / 52774);
           
$lcg['s2'] = (int) (40692 * ($lcg['s2'] - 52774 $q) - 3791 $q);
           if (
$lcg['s2'] < 0)
               
$lcg['s2'] += 2147483399;

           
$z = (int) ($lcg['s1'] - $lcg['s2']);
           if (
$z 1) {
               
$z += 2147483562;
           }

           return 
$z 4.656613e-10;
       }

       function 
session_regenerate_id() {
           
$tv gettimeofday();
           
$buf sprintf("%.15s%ld%ld%0.8f"$_SERVER['REMOTE_ADDR'], $tv['sec'], $tv['usec'], php_combined_lcg() * 10);
           
session_id(md5($buf));
           if (
ini_get('session.use_cookies'))
               
setcookie('PHPSESSID'session_id(), NULL'/');
           return 
TRUE;
       }
   }
?>


Para probar:
<?php
   session_start
();
   
$sid session_id();
   
session_regenerate_id();
   echo 
"Old session ID: "$sid"\nNew session ID: "session_id(), "\n";
?>
:)