Foros del Web » Creando para Internet » Sistemas de gestión de contenidos »

Problema con foreach

Estas en el tema de Problema con foreach en el foro de Sistemas de gestión de contenidos en Foros del Web. Saludos, Necesito una vez mas vuestra ayuda para salir de un problema. Tenia instalado LinkMan sin problemas en un servidor pero al pasar a otro ...
  #1 (permalink)  
Antiguo 09/04/2008, 04:50
Avatar de David_dfd  
Fecha de Ingreso: febrero-2005
Ubicación: Tenerife
Mensajes: 311
Antigüedad: 19 años, 2 meses
Puntos: 2
Problema con foreach

Saludos,

Necesito una vez mas vuestra ayuda para salir de un problema.

Tenia instalado LinkMan sin problemas en un servidor pero al pasar a otro me esta dando fallos. Algunos ya los he solucionado pero otros me traen por el camino de la amargura.


El error que no he podido solucionar es el siguiente.

Al mostrar los enlaces me da este error:

Warning: Invalid argument supplied for foreach() in /home/usuario/public_html/carpeta/links.php on line 42


Este es el codigo de links.php
Código PHP:
<?php

require "settings.php";
require_once(
"header.txt");

$lines = array ();
$lines=file($settings['linkinfo.txt']);

echo 
"<p class=\"linkman\"><center>";

foreach (
$lines as $thisline)
{
    
$thisline=trim($thisline);
    if (!empty(
$thisline)) {
        list(
$name,$email,$title,$url,$recurl,$description)=explode($settings['delimiter'],$thisline);
        if (
$settings['clean'] != 1) {$url="go.php?url=".$url;}
        echo 
"<font face=\"Verdana\" size=\"2\"><a href=\"$url\" target=\"_new\" class=\"linkman\">$title</a></font>&nbsp;<font face=\"Verdana\" size=\"2\" color=\"#FFFFFF\">-</font>\n";
    }
}

?>
Alguien puede ayudarme?? Muchas gracias
  #2 (permalink)  
Antiguo 09/04/2008, 05:07
Avatar de jerkan  
Fecha de Ingreso: septiembre-2005
Mensajes: 1.607
Antigüedad: 18 años, 7 meses
Puntos: 19
Re: Problema con foreach

Se queja porque $lines no es un array.

Acostumbráte a comprobar que la variable que le pones al foreach es un array o no.

Un saludo
  #3 (permalink)  
Antiguo 09/04/2008, 05:40
Avatar de David_dfd  
Fecha de Ingreso: febrero-2005
Ubicación: Tenerife
Mensajes: 311
Antigüedad: 19 años, 2 meses
Puntos: 2
Re: Problema con foreach

Y como podria solucionarlo

Disculpame pero mis conocimientos de PHP son casi nulos

Muchas gracias
  #4 (permalink)  
Antiguo 09/04/2008, 06:16
Avatar de korg1988  
Fecha de Ingreso: junio-2006
Ubicación: Santa Fe, Argentina
Mensajes: 825
Antigüedad: 17 años, 10 meses
Puntos: 19
De acuerdo Re: Problema con foreach

Código PHP:
<?php 

require "settings.php"
require_once(
"header.txt"); 

$lines = array (); 
$lines=file($settings['linkinfo.txt']); 

echo 
"<p class=\"linkman\"><center>"

if(
is_array($lines)){
foreach (
$lines as $thisline

    
$thisline=trim($thisline); 
    if (!empty(
$thisline)) { 
        list(
$name,$email,$title,$url,$recurl,$description)=explode($settings['delimiter'],$thisline); 
        if (
$settings['clean'] != 1) {$url="go.php?url=".$url;} 
        echo 
"<font face=\"Verdana\" size=\"2\"><a href=\"$url\" target=\"_new\" class=\"linkman\">$title</a></font>&nbsp;<font face=\"Verdana\" size=\"2\" color=\"#FFFFFF\">-</font>\n"
    } 
}


?>
</span>asi podes ponerle una proteccion para que no realize el foreach si no es un array!... ahora si queres leer todas las lineas que tiene el archivo dentro de si mismo tenes que hacer asi
Código PHP:
 <?php 

require "settings.php"
require_once(
"header.txt"); 

echo 
"<p class=\"linkman\"><center>"

    
$abrir fopen("linkinfo.txt""r");
    while(
$leer fread($abrirfilesize("linkinfo.txt")))
    {
        
//leer te va a ir tirando el contenido del archivo.... suerte!
    
}
    
fclose($abrir);


?>
  #5 (permalink)  
Antiguo 09/04/2008, 09:25
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Re: Problema con foreach

Tema trasladado a Aplicaciones Prefabricadas
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 19:29.