Mostrar imágenes carpeta upload
chdir('upload');
if ($gestor = opendir('.')) {
while (false !== ($entrada = readdir($gestor))) {
if ($entrada != "." && $entrada != "..") {
$info= pathinfo($entrada);
if ($info['extension']=="jpg" || $info['extension']=="png"){
echo '<img width="50" height="50" src="upload/'.$entrada.'">';
}
}
}
closedir($gestor);
}
Ficheros array
<form enctype=»multipart/form-data» action=»archivo.php» method=»POST»>
<!– MAX_FILE_SIZE debe preceder al campo de entrada del fichero –>
<input type=»hidden» name=»MAX_FILE_SIZE» value=»300000″ />
<!– El nombre del elemento de entrada determina el nombre en el array $_FILES –>
Foto: <input name=»foto» type=»file» /><br/>
Curriculum: <input name=»curri» type=»file» /><br/>
Informes: <input name=»informe[]» type=»file» /><br/>
<input name=»informe[]» type=»file» /><br/>
<input name=»informe[]» type=»file» /><br/>
<input type=»submit» value=»Enviar fichero» /></form>
$dir_subida = 'upload/';
$foto = $dir_subida . basename($_FILES['foto']['name']);
$curri = $dir_subida . basename($_FILES['curri']['name']);
if (move_uploaded_file($_FILES['foto']['tmp_name'], $foto)) {
echo "Foto subida con éxito.\n";
} else {
echo "¡Posible ataque de subida de ficheros!\n";
}
if (move_uploaded_file($_FILES['curri']['tmp_name'], $curri)) {
echo "Curriculum subido con éxito.\n";
} else {
echo "¡Posible ataque de subida de ficheros!\n";
}
for ($i=0;$i<count($_FILES['informe']['name']);$i++){
if (move_uploaded_file($_FILES['informe']['tmp_name'][$i],
$dir_subida . basename($_FILES['informe']['name'][$i]))) {
echo "Informe $i subido con éxito.\n";
} else {
echo "¡Posible ataque de subida de ficheros!\n";
}
}
Subir archivos PHP
Para subir un archivo necesitamos primero indicar en el formulario el typo de datos (multipart/form-data) y, opcionalmente, el máximo tamaño:
<!-- El tipo de codificación de datos, enctype, DEBE especificarse como sigue -->
<form enctype="multipart/form-data" action="__URL__" method="POST">
<!-- MAX_FILE_SIZE debe preceder al campo de entrada del fichero -->
<input type="hidden" name="MAX_FILE_SIZE" value="30000" />
<!-- El nombre del elemento de entrada determina el nombre en el array $_FILES -->
Enviar este fichero: <input name="fichero_usuario" type="file" />
<input type="submit" value="Enviar fichero" />
</form>
Después, en el PHP, debemos recoger el archivo y moverlo a su ubicación definitiva:
$dir_subida = '/var/www/uploads/';
$fichero_subido = $dir_subida . basename($_FILES['fichero_usuario']['name']);
if (move_uploaded_file($_FILES['fichero_usuario']['tmp_name'], $fichero_subido)) {
echo "El fichero es válido y se subió con éxito.\n";
} else {
echo "¡Posible ataque de subida de ficheros!\n";
}
Carácter de nueva línea \n
El carácter de nueva línea sólo funciona cuando está encerrado entre comillas dobles:
$a='hola\n';
$b="hola\n";
En el primer caso no hace salto de línea, en el segundo sí. Esto se aplica a la hora de imprimir en pantalla o escribir en ficheros.
En general el entrecomillado doble permite carácteres de escape, mientras que el simple no:
Escribir un cuadrado en un archivo
$lado= filter_input(INPUT_GET, 'lado');
if (empty($lado)){
$lado=3;
}
$f = fopen('cuadrado.txt', 'w');
for ($i = 0; $i < $lado; $i++) {
fwrite($f, str_repeat('0', $lado)."\n");
}
fclose($f);
$tabla=file('cuadrado.txt',FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
$cadena= file_get_contents('cuadrado.txt');
var_dump($tabla);
var_dump($cadena);
file_put_contents('cuadrado.txt', 'ola k ase????',FILE_APPEND);
Funciones de lectura completa en PHP
La siguiente función nos lee un fichero y lo pasa a un array:
file("test.txt")
La siguiente hace lo mismo pero como una string:
file_get_contents("test.txt");
Esta escribe directamente unos datos al fichero:
file_put_contents("test.txt","Hello World. Testing!");
Esta lee un fichero y lo imprime directamete en la pantalla:
readfile("viajeros.txt");
Leer y modificar web
$url='http://www.20minutos.es/minuteca/rita-barbera/';
if (!empty($_GET['url'])){
$url=$_GET['url'];
}
$img=['http://debeverse.com/wp-content/uploads/2015/07/Gatito-Rezando.jpg','http://imagenesdeamistadunicas.com/wp-content/uploads/2016/imagenes/imagenes-bellas-de-gatitos.jpg','http://cdn.weruletheinternet.com//wp-content/uploads/images/2012/Janurary/overflow/1_10/cute_animal_pictures_7.jpg','http://4.bp.blogspot.com/_mwlHu9TqP1E/TC_KJ3EDgAI/AAAAAAAAAAU/tmD1V-ici4g/s1600/gatito.jpg','http://www.elmegatop.com/wp-content/uploads/gatito-triste.jpg','http://i1.wp.com/www.ateneupopular.com/wp-content/uploads/2012/03/gatotipo1.jpg?resize=550%2C317','http://genialesimagenes.com/wp-content/uploads/2015/09/gatito-tierno-bosteza.jpg'];
$f = fopen($url, 'r');
while (!feof($f)) {
$linea = fgets($f);
$linea= preg_replace('/src=\".*\.jpg/', "src=\"".$img[mt_rand(0,count($img)-1)], $linea);
echo str_ireplace("barberá", "Bárbara", $linea);
}
fclose($f);
Plugins validación formularios en jquery
Ejercicio validar mail
$cadenas = ["pepe@pepe.com", "ola k ase??", "@@@....", "hola.ssss@mmv", "pepe.com", "pepe@pepe"];
//Recorrer con for
for ($i = 0; $i < count($cadenas); $i++) {
echo ($i + 1) . ".- " . $cadenas[$i] . (esMail2($cadenas[$i]) ? '' : ' no ') . " es mail.<br/>";
}
//Recorrer con foreach
foreach($cadenas as $cadena){
echo $cadena . (esMail3($cadena) ? '' : ' no ') . " es mail.<br/>";
}
function esMail($cadena) {
$pos1 = strpos($cadena, "@");
$pos2 = strpos($cadena, ".");
if ($pos1 !== false && $pos2 !== false && $pos2 > $pos1) {
return true;
} else {
return false;
}
}
function esMail3($cadena) {
$pos1 = strpos($cadena, "@");
$pos2 = strpos($cadena, ".",$pos1);
return ($pos1 != false && $pos2 !== false);
}
function esMail2($cadena) {
if ($pos = strpos($cadena, "@")) {
return strpos($cadena, ".", $pos);
}
return false;
}
function esMailReg($cadena){
return preg_match(
'/^[^0-9][a-zA-Z0-9_]+([.][a-zA-Z0-9_]+)*[@][a-zA-Z0-9_]+([.][a-zA-Z0-9_]+)*[.][a-zA-Z]{2,4}$/',
$cadena);
}
function buscaMail($cadena){
$pattern="/(?:[A-Za-z0-9!#$%&'*+=?^_`{|}~-]+(?:\.[A-Za-z0-9!#$%&'*+=?^_`{|}~-]+)*|\"(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21\x23-\x5b\x5d-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])*\")@(?:(?:[A-Za-z0-9](?:[A-Za-z0-9-]*[A-Za-z0-9])?\.)+[A-Za-z0-9](?:[A-Za-z0-9-]*[A-Za-z0-9])?|\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[A-Za-z0-9-]*[A-Za-z0-9]:(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21-\x5a\x53-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])+)\])/";
preg_match_all($pattern,$cadena,$mails);
return $mails;
}