// Con fgets tomamos el contenido hasta el siguiente intro o retorno de carro
$archivo="frutas.txt";
if (file_exists($archivo)){
$abre=fopen($archivo,'rb');
echo "Abierto ",$abre;
$linea=0;
while (($bufer = fgets($abre, 4096)) !== false) {
$linea +=1;
echo "L=",$linea," ",$bufer,"
";
}
}else{
echo "No disponemos de archivo";
}
// Con fread podemos leer el bloque indicado en bytes, evitando saltos de carro
$archivo="frutas.txt";
if (file_exists($archivo)){
$abre=fopen($archivo,'rb');
$contenido=fread($abre,filesize($archivo));
echo $contenido;
}else{
echo "No disponemos de archivo";
}
// Abre un archivo y escribe texto, si tiene contenido se elimina en la escritura
$archivo="colores.txt";
if (file_exists($archivo)){
$abre=fopen($archivo,'wb');
$contenido="azul, rojo, marron, verde, amarillo, naranja, blanco, negro";
$escribe=fwrite($abre,$contenido);
fclose($abre);
}else{
echo "No disponemos de archivo";
}
// Abre un archivo y AGREGA contenido al final de la cadena contenida en el archivo
// Debe existir el archivo para procesar
$archivo="color2.txt";
if (file_exists($archivo)){
$abre=fopen($archivo,'ab');
$contenido="azul, rojo, marron, verde, amarillo, naranja, blanco, negro";
$escribe=fwrite($abre,$contenido);
fclose($abre);
echo "Más colores agregados a color2.txt";
}else{
echo "No disponemos de archivo";
}
// crear antes los archivos origen.txt origen1.txt origen2.txt
$origen="origen.txt";
$destino="destino.txt";
rename($origen,$destino);
$origen="origen1.txt";
$destino="destino1.txt";
copy ($origen,$destino);
$origen="origen2.txt";
unlink ($origen);
// copiar entre distintas rutas, subiendo niveles
copy ('frutas.txt','../frutas.txt');
// unlink ('../frutas.txt'); // para eliminar el archivo
$ruta='./img';
$opd=opendir($ruta);
echo $opd,"
";
// recuperar solo los que son directorios contenidos
while ($archivo=readdir($opd) ){
echo $archivo."
";
}
closedir($opd);
// para crear funciones:
// function nombre (parametros) { instrucciones que realizan acciones o retornan valores}
// cada función debe tener su propio nombre y no repetirse, no son Case Sensitive (mifuncion = MiFuncion)
// tras la declaracion y los valores se pone dos puntos y el tipo de valor a retornar
// void implica que no debe disponer de return alguno
function imprimir ($texto) :void{
echo $texto."
";
}
imprimir ('Hola Mundo');
function calcular ($x, $y){
return $x*$y;
}
$z= calcular (5,7);
echo $z;
function nombre(){
return ['ana','pedro','maria','juan'];
}
$strnombre=nombre()[2];
echo "El nombre es ".$strnombre;
function calculo1($x,$y){
return $x*$y;
}
function calculo2($x,$y):int{
return $x*$y;
}
function calculo3($x,$y):?int{
if(is_null($x) || is_null($y)){
return null;
}else{
return $x*$y;
}
}
echo calculo1(3.5,2.8);
echo "
";
echo calculo2(3.5,2.8);
echo "
";
$z=calculo3(3.5,null);
echo var_dump($z);
function potencia($x):int|float|false|null {
if ($x==0){
return false;
}elseif(is_null($x)){
return null;
}else{
return $x ** 2;
}
}
echo "La potencia de 9^2 es ".potencia(9);
echo "
Con valor NULL ",var_dump(potencia(null));
echo "
Con valor 0 ",var_dump(potencia(0));
echo "
Con valor 10 ",var_dump(potencia(10));
echo "
Con valor 1/3 ",var_dump(potencia(1/3));
// funcion para sumar, funcion para restar
// funcion que dado un nombre de funcion llame e imprima al resultado
function sumando($x, $y){
return $x+$y;
}
function restando($x1, $y1){
return $x1-$y1;
}
function hacer ($funcion, $x2, $y2){
// solución simple utiliza el valor funcion para hacer la llamada
// return $funcion($x2,$y2);
// solución alternativa cubriendo más terminos y nombres q no estén previstos
if ($funcion[0]=='s'){
return sumando($x2,$y2);
}elseif ($funcion[0]=='r'){
return restando($x2,$y2);
}else{
return "eso no lo entendí";
}
}
echo hacer ("sumando",67,16);
function sumaras($x,$y=3){
return $x+$y;
}
echo "El resultado es: ".sumaras(5);
function sumar15(int $x,int $y=3){
return $x+$y;
}
echo "El resultado es: ".sumar15(5.8);
echo "
El resultado es: ".sumar15(1/3);
function sumar16($x, ...$valores){
$resulta=$x;
//repasar todo el contenido de la matriz con foreach
foreach($valores as $matriz){
$resulta=$resulta+$matriz;
}
return $resulta;
}
echo "El resultado es: ".sumar16(3,...[5,7,11]);
$x=50; // variable global
function producto(){
global $x; // indicar que la variable global se utiliza en la función
$y=20; //variable local
return $x*$y;
}
echo "Resultado x*y = ".producto();