Foros del Web » Programando para Internet » PHP »

FOPEN como poner URL en cada linea

Estas en el tema de FOPEN como poner URL en cada linea en el foro de PHP en Foros del Web. Bien tengo este codigo: Código PHP: <? if ( $_GET [ 'players' ] ==  $players ) {  $players  =  $players ; } $DescriptorFichero  =  fopen ( "$players.txt" , "r" ...
  #1 (permalink)  
Antiguo 07/03/2005, 08:31
 
Fecha de Ingreso: febrero-2005
Mensajes: 143
Antigüedad: 19 años, 2 meses
Puntos: 0
FOPEN como poner URL en cada linea

Bien tengo este codigo:

Código PHP:
<?

if ($_GET['players'] == $players) { $players $players; }

$DescriptorFichero fopen("$players.txt","r"); 

#Hasta que no lleguemos al final del fichero 
while(!feof($DescriptorFichero)){ 

 
    
$buffer fgets($DescriptorFichero,4096); 


    echo 
$buffer."<BR>"


?>
Lo que quiero es que cada linea sea tb una URL osea si algo.txt es

Código:
Chete
alguien
otro
Que me lo lista en la web asi

Chete(con link a URL algo?user=chete)
alguien(con link a URL algo?user=alguien)
otro(con link a URL algo?user=otro)

Me entendeis? como puedo hacer eso?
  #2 (permalink)  
Antiguo 07/03/2005, 09:06
Avatar de Torus  
Fecha de Ingreso: enero-2002
Ubicación: Tú buscame y me encontraras
Mensajes: 413
Antigüedad: 22 años, 3 meses
Puntos: 0
hola Chete
Me parece que prar que te recoja los datos como tu dices, deberias meterlos antes con ese formato
Código PHP:
$escribe_fichero=fopen("players.txt","a+");
fwrite($escribe_fichero,"Chete \n"); 
con la (/n) para hacer un salto de carro.
y la lectura de la siguiente forma
Código PHP:
fgets($lectura_fichero); 
Puedes quitar el parametro de longitud para que te lea linea a linea
segun el manual de php dice:
Cita:
El parámetro longitud se hizo opcional en PHP 4.2.0, si se omite, se asume 1024 como la longitud de línea. A partir de PHP 4.3, al omitir longitud, la lectura de la secuencia continuará hasta que se alcance el final de la línea. Si la mayoría de líneas en el archivo superan los 8KB, es más eficiente en términos de recursos espicificar la longitud máxima de línea en su script.
Espero que te haya servido de ayuda.
__________________
Hay tanto que aprender y tan poco tiempo
  #3 (permalink)  
Antiguo 07/03/2005, 09:11
 
Fecha de Ingreso: febrero-2005
Mensajes: 143
Antigüedad: 19 años, 2 meses
Puntos: 0
a ver creo que no me as entendido,lo que quiero es que cada linea la transforme en una $var digamos,osea si es

echo "algo.php?user='.$user.'"

$user seria cada linia me entiendes?
  #4 (permalink)  
Antiguo 07/03/2005, 09:37
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Usa file() para leer tu archivo hacia un array y de ahí un foreach() para leer tu archivo y componer tu HTML restante de link ...

Código PHP:
$lineas=file("nose.txt");
foreach(
$lineas as $linea){
   echo 
"<a href=\"algo.php?user=".urlencode(trim($linea))."\"><br>";

Un saludo,
  #5 (permalink)  
Antiguo 07/03/2005, 09:45
 
Fecha de Ingreso: febrero-2005
Mensajes: 143
Antigüedad: 19 años, 2 meses
Puntos: 0
ahora mismo tengo el codigo

Código PHP:
<?
if ($_GET['players'] == $players) { $players $players; }
$lineas=file("$players.txt"); 
foreach(
$lineas as $linea){ 
   echo 
'<a href=\"algo.php?user=".urlencode(trim($linea))."\"><br>'
}
?>
y no me recoje nada me sale la pagina en blanco
  #6 (permalink)  
Antiguo 07/03/2005, 10:22
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Pero .. aclara:

Esto:
$lineas=file("$players.txt");

que valor toma $players.txt ? toma el nombre de tu archivo correcto?


Esto de aquí:
echo '<a href=\"algo.php?user=".urlencode(trim($linea))."\" ><br>';

no sé por qué cambias las comillas .. usalo como lo puse .. para eso escapo las comillas dobles si las requiero usar:

Código PHP:
echo "<a href=\"algo.php?user=".urlencode(trim($linea))."\"><br>"
(de todas formas .. en tu caso .. revisa el código fuente que se genera .. el HTML y observa que es lo que se generó .. ).

Un saludo,
  #7 (permalink)  
Antiguo 07/03/2005, 10:27
 
Fecha de Ingreso: febrero-2005
Mensajes: 143
Antigüedad: 19 años, 2 meses
Puntos: 0
aver pongo algo.php?players=ak

y coje ak.txt pero no muestra nada..

Que codigo HTML?
  #8 (permalink)  
Antiguo 07/03/2005, 10:34
 
Fecha de Ingreso: febrero-2005
Mensajes: 143
Antigüedad: 19 años, 2 meses
Puntos: 0
Estoy tonto ya lo solucionao la linea

echo "<a href=\"algo.php?user=".urlencode(trim($linea))."\" ><br>";

la cambie por :

echo '<a href="algo.php?user='.urlencode(trim($linea)).'">' .urlencode(trim($linea)).'</a><br>';

si no hay texto para enalazar es normal que no muestre nada xD

Gracias por la ayuda :)

Y otra pregunta puedo hacer que lo ordene alfabeticamente la lista?

Última edición por Chete; 07/03/2005 a las 10:35
  #9 (permalink)  
Antiguo 07/03/2005, 10:34
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Cita:
Iniciado por Chete
aver pongo algo.php?players=ak

y coje ak.txt pero no muestra nada..

Que codigo HTML?
En tu navegador .. ver->código fuente!

Prueba con

Código PHP:
echo "<pre>";
print_r($lineas);
echo 
"</pre>"
antes del foreach() para observar si está tomando bien el archivo en un array la función file()

Un saludo,
  #10 (permalink)  
Antiguo 07/03/2005, 10:36
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Cita:
Iniciado por Chete
Estoy tonto ya lo solucionao la linea

echo "<a href=\"algo.php?user=".urlencode(trim($linea))."\" ><br>";

la cambie por :

echo '<a href="algo.php?user='.urlencode(trim($linea)).'">' .urlencode(trim($linea)).'</a><br>';

si no hay texto para enalazar es normal que no muestre nada xD

Gracias por la ayuda :)

Y otra pregunta puedo hacer que lo ordene alfabeticamente la lista?
Ops!

Ese fué un detallito que se me pasó .. por eso te comentaba que vieses el código "HTML" generado y hasta evaluar que tiene tu variable .. Por lo menos que esto te sirva para aprender cosas de como "evaluar" un problema, por qué estas técnicas son aplicables para todo desarrollo que hagas.

Un saludo,
  #11 (permalink)  
Antiguo 07/03/2005, 10:37
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Por cierto .. el urlencode() no sé si sabes para que sirve .. pero se usa para "codifcar" un URL y así no tengas problemas con caracteres como un espacio .. ñ, acentos .. etc. No lo uses en el nombre del link ...

Código PHP:
echo '<a href="algo.php?user='.urlencode(trim($linea)).'">'.trim($linea).'</a><br>'
Un saludo,
  #12 (permalink)  
Antiguo 07/03/2005, 10:40
 
Fecha de Ingreso: febrero-2005
Mensajes: 143
Antigüedad: 19 años, 2 meses
Puntos: 0
ah ok thx,y como puedo ordenarlo alfabeticamente?
  #13 (permalink)  
Antiguo 07/03/2005, 12:44
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Pues .. como array que es $lineas .. ordenalo con las funciones de tratamiento de arrays .. por ejemplo con la función sort(), eso antes de atacar el bucle foreach()

http://www.php.net/manual/en/ref.array.php

Un saludo,
  #14 (permalink)  
Antiguo 07/03/2005, 13:28
 
Fecha de Ingreso: febrero-2005
Mensajes: 143
Antigüedad: 19 años, 2 meses
Puntos: 0
perfecto :D
Añadi la linea

Código PHP:
sort($lineasSORT_DESC); 
antes del foreach como as dicho ,gracias por todo :D

jeje soy pesadito pero tengo otro problema xD

si ponen a secas lokesea.php salen errores

Código:
Warning: file(): Unable to access .txt in /home/webcindario/team-eg/rated/index.php on line 3

Warning: file(.txt): failed to open stream: No such file or directory in /home/webcindario/team-eg/rated/index.php on line 3

Warning: sort() expects parameter 1 to be array, boolean given in /home/webcindario/team-eg/rated/index.php on line 4

Warning: Invalid argument supplied for foreach() in /home/webcindario/team-eg/rated/index.php on line 5
Es normal por ke no se asigna la $var y no pilla ningun archivo,pero,como puedo evitar que salgan los errores? que en vez de eso salga "no existe el clan" ppor ejemplo?

Última edición por Chete; 07/03/2005 a las 13:31
  #15 (permalink)  
Antiguo 07/03/2005, 14:26
 
Fecha de Ingreso: febrero-2005
Mensajes: 143
Antigüedad: 19 años, 2 meses
Puntos: 0
he probao con

Código PHP:
<? 
if ($_GET['players'] == $players && $_GET['players'] == file_exists($lineas)) {  
$lineas=file("$players.txt"); 
sort($lineasSORT_DESC);
foreach(
$lineas as $linea){ 
   echo 
'<a href="http://classic.zone.msn.com/Profile/RatingsPlayer.asp?Players=&Teams=&PlayerID='.urlencode(trim($linea)).'&TeamID=&pguest=" target="blank_">'.trim($linea).'</a><br>'


else { 
echo 
'no existe';
}
?>
pero no va alguno sabe como hacerlo? :S
  #16 (permalink)  
Antiguo 07/03/2005, 14:52
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Cita:
Iniciado por Chete
perfecto :D
Añadi la linea

Código PHP:
sort($lineasSORT_DESC); 
antes del foreach como as dicho ,gracias por todo :D

jeje soy pesadito pero tengo otro problema xD

si ponen a secas lokesea.php salen errores

Código:
Warning: file(): Unable to access .txt in /home/webcindario/team-eg/rated/index.php on line 3

Warning: file(.txt): failed to open stream: No such file or directory in /home/webcindario/team-eg/rated/index.php on line 3

Warning: sort() expects parameter 1 to be array, boolean given in /home/webcindario/team-eg/rated/index.php on line 4

Warning: Invalid argument supplied for foreach() in /home/webcindario/team-eg/rated/index.php on line 5
Es normal por ke no se asigna la $var y no pilla ningun archivo,pero,como puedo evitar que salgan los errores? que en vez de eso salga "no existe el clan" ppor ejemplo?
Ya que tu "clan" lo asignas a un archivo en el servidor .. verifica si existe antes de pretender abrirlo:

Código PHP:

// no sé para que haces esto?
// if ($_GET['players'] == $players) { $players = $players; } 

if (isset($_GET['players']){
   
$players=$_GET['players'];

  if (
file_exists("$players.txt")){
    
// tu código actual ...
    
$lineas=file("$players.txt"); 
    
sort($lineasSORT_DESC); 
    foreach(
$lineas as $linea){ 
        echo 
'<a href="http://classic.zone.msn.com/Profile/RatingsPlayer.asp?Players=&Teams=&PlayerID='.urlencode(trim($linea)).'&TeamID=&pguest=" target="blank_">'.trim($linea).'</a><br>'
    } 
  } else {
     echo 
"Clan no existe ...";
  } 
} else {
  echo 
"Debes seleccionar un Clan";

Un saludo,
  #17 (permalink)  
Antiguo 07/03/2005, 14:59
 
Fecha de Ingreso: febrero-2005
Mensajes: 143
Antigüedad: 19 años, 2 meses
Puntos: 0
anda mira nunca se acuesta uno sin saber algo nuevo,no sabia ke se podia meter un IF en un if xD
  #18 (permalink)  
Antiguo 07/03/2005, 15:03
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Pues si .. (y no sólo en PHP .. en cualquier lenguaje ..) se denomina "anidado" .. y pueden ser if() .. for() .. y cualquier tipo de bucles o estructuras "condicionales" en general.

Un saludo,
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 06:51.