Foros del Web » Programando para Internet » PHP »

Novato en php(duda basica)

Estas en el tema de Novato en php(duda basica) en el foro de PHP en Foros del Web. Buenas vengo de lenguajes de programacion como Java o C,C++. Tengo problemas al entender este lenguaje, ya que estoy acostumbrado a declarar el tipo de ...
  #1 (permalink)  
Antiguo 12/02/2012, 04:28
 
Fecha de Ingreso: febrero-2012
Mensajes: 29
Antigüedad: 12 años, 9 meses
Puntos: 2
Novato en php(duda basica)

Buenas vengo de lenguajes de programacion como Java o C,C++.

Tengo problemas al entender este lenguaje, ya que estoy acostumbrado a declarar el tipo de variable y aqui no es necesario, por lo que me cuesta ubicarme, por otro lado no se como depurar, estoy usando el ide de Netbeans que es donde suelo programar en Java.

Hago lo siguiente:

Código PHP:
$vlineas file("Hola.txt");
         
         foreach (
$vlineas as $sLinea
         { 
//Recorro el array de lineas vlineas y en cada recorrido sLinea toma el 
             
                
$DescriptorFichero fopen($sLinea."\n","w");
            
         } 
El fichero Hola.txt contiene 3 lineas:
Que tal
que haces
hoy

Me sale por el navegador el sgte. mensaje:

Código PHP:
Warningfopen(Que tal ) [function.fopen]: failed to open streamInvalid argument in C:xampphtdocsPhpProject1index.php on line 18

Warning
fopen(que haces ) [function.fopen]: failed to open streamInvalid argument in C:xampphtdocsPhpProject1index.php on line 18

Warning
fopen(hoy ) [function.fopen]: failed to open streamInvalid argument in C:xampphtdocsPhpProject1index.php on line 18 

Yo entiendo que la funcion fopen, como 1er parametro espera un string y es lo que recibe,no?; me gustaria ir depurando y ver que es lo que recibe pero no se como hacerlo en php

Otra duda si me podeis ayudar, intentando solventar de otra manera el problema anterior hice el sgte codigo:

Código PHP:
foreach ($vlineas as $sLinea
        {  
           
            if( 
strpos$sLinea"curv" ) !== false )
            {
                    
                print 
"<a href='$sLinea'>$sLinea</a> <br>";
                 
$guardar[$i] = $guardar."\n".$sLinea."\n";
                
$i++;
            }
           
        }
        
        foreach(
$guardar as $valor)
        print 
"$valor <br>\n"
Me sale:

Código PHP:
880,872,820 
Array 880,872,809 
Array 1305,1166,987 
No entiendo porque me sale la palabra Array?, es decir yo quiero que salgan los valores del array, pero no la palabra array.... :&
  #2 (permalink)  
Antiguo 12/02/2012, 05:18
Avatar de ZiTAL  
Fecha de Ingreso: marzo-2004
Ubicación: Bermio (Bizkaia)
Mensajes: 1.545
Antigüedad: 20 años, 8 meses
Puntos: 62
Respuesta: Novato en php(duda basica)

es que haces un fopen a un fichero que no existe ya que solo quieres leer un fichero:

Código PHP:
Ver original
  1. $vlineas = file("Hola.txt");
  2.          
  3.          foreach ($vlineas as $sLinea)
  4.          { //Recorro el array de lineas vlineas y en cada recorrido sLinea toma el
  5.              
  6.                echo $sLinea;
  7.            
  8.          }

si te sale "array" es que la variable que intentas imprimir es un array y no lo puede imprimir, para imprimir un array:

Código PHP:
Ver original
  1. print_r($array);

para verlo ordenado en el navegador:

Código PHP:
Ver original
  1. echo "<pre>";
  2. print_r($array);
  3. echo "</pre>";
__________________
http://zital.no-ip.org
____________________

Euskerie ahuen eta bijotzan
  #3 (permalink)  
Antiguo 12/02/2012, 05:25
 
Fecha de Ingreso: febrero-2012
Mensajes: 29
Antigüedad: 12 años, 9 meses
Puntos: 2
Respuesta: Novato en php(duda basica)

Hola, pero al poner:

Código PHP:
fopen($sLinea."\n","w"); 
Con el parametro "w" no le estoy diciendo que si no existe que lo cree?
  #4 (permalink)  
Antiguo 12/02/2012, 05:36
 
Fecha de Ingreso: febrero-2012
Mensajes: 29
Antigüedad: 12 años, 9 meses
Puntos: 2
Respuesta: Novato en php(duda basica)

No se si me explico bien, yo lo que quiero es crear "n" ficheros.

Donde cada fichero sera creado por cada linea que exista en otro fichero.

Es decir si tengo un fichero llamado Hola.txt que contiene las lineas:

Que tal
como
estas

Que me cree 3 ficheros:

Quetal.txt
como.txt
estas.txt

Uno por cada linea.
  #5 (permalink)  
Antiguo 12/02/2012, 05:52
Avatar de ZiTAL  
Fecha de Ingreso: marzo-2004
Ubicación: Bermio (Bizkaia)
Mensajes: 1.545
Antigüedad: 20 años, 8 meses
Puntos: 62
Respuesta: Novato en php(duda basica)

porque le metes "\n" al nombre del fichero? puede que ese sea el error, de todas formas igual te interesa mñas esto:

http://php.net/file_put_contents

y fijate si tienes permisos de escritura para crear el fichero.
__________________
http://zital.no-ip.org
____________________

Euskerie ahuen eta bijotzan
  #6 (permalink)  
Antiguo 12/02/2012, 06:59
 
Fecha de Ingreso: febrero-2012
Mensajes: 29
Antigüedad: 12 años, 9 meses
Puntos: 2
Respuesta: Novato en php(duda basica)

Hola Zital , gracias por las respuestas.

Quitando el "\n", que lo puse porque lei por ahi que alguien le funciono poniendolo:

$vlineas = file("Hola.txt");
foreach ($vlineas as $sLinea)
{

$DescriptorFichero = fopen("$sLinea","w");

}

Me genera el error:
Código PHP:
Warningfopen(Que tal ) [function.fopen]: failed to open streamInvalid argument in C:xampphtdocsPhpProject1index.php on line 19

Warning
fopen(que haces ) [function.fopen]: failed to open streamInvalid argument in C:xampphtdocsPhpProject1index.php on line 19 
Me crea un fichero con el nombre de la ultima linea del fichero "Hola.txt", eso ya me pasaba antes, por eso le puse el "\n"....ahora intentare usar el comando que me has dicho, pero es que igualmente flipo.....:$
  #7 (permalink)  
Antiguo 12/02/2012, 07:18
 
Fecha de Ingreso: febrero-2012
Mensajes: 29
Antigüedad: 12 años, 9 meses
Puntos: 2
Respuesta: Novato en php(duda basica)

Hola, pues sigue igual ahora me genera:

Código PHP:
Warningfile_put_contents(Que tal ) [function.file-put-contents]: failed to open streamInvalid argument in C:xampphtdocsPhpProject1index.php on line 21 
vamos que no le gusta el parametro que le estoy metiendo....
  #8 (permalink)  
Antiguo 12/02/2012, 07:27
Avatar de ZiTAL  
Fecha de Ingreso: marzo-2004
Ubicación: Bermio (Bizkaia)
Mensajes: 1.545
Antigüedad: 20 años, 8 meses
Puntos: 62
Respuesta: Novato en php(duda basica)

Código PHP:
Ver original
  1. <?php
  2. $file = file('a.txt');
  3. print_r($file);
  4.  
  5. foreach($file as $f)
  6. {
  7.         // quitamos los espacios en blanco
  8.         $f = preg_replace("/\s+/", "", $f);
  9.         if($f!='')
  10.                 file_put_contents($f.".txt", "\n");
  11. }
  12. ?>
__________________
http://zital.no-ip.org
____________________

Euskerie ahuen eta bijotzan
  #9 (permalink)  
Antiguo 12/02/2012, 12:18
 
Fecha de Ingreso: febrero-2012
Mensajes: 29
Antigüedad: 12 años, 9 meses
Puntos: 2
Respuesta: Novato en php(duda basica)

Ostras! Mira que acabo de probarlo y va bien! Gracias tio! Me ha venido muy bien! El problema supongo que era porque recibia espacios en blanco o algo asi no?

Merci! :D

Etiquetas: variables
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:44.