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:

Cadenas en PHP

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);

Variables variables

En PHP podemos tener variables variables, esto es, poniendo dos $$ accedemos al valor:

$nombre='Juan';
$a='nombre';
echo $$a; //Imprime Juan

Podemos extenderlo al infinito:

$Bar = "a";
  $Foo = "Bar";
  $World = "Foo";
  $Hello = "World";
  $a = "Hello";

  $a; //Returns Hello
  $$a; //Returns World
  $$$a; //Returns Foo
  $$$$a; //Returns Bar
  $$$$$a; //Returns a

  $$$$$$a; //Returns Hello
  $$$$$$$a; //Returns World