Foros del Web » Programando para Internet » PHP »

Error en código PHP del tipo T_OBJECT_OPERATOR

Estas en el tema de Error en código PHP del tipo T_OBJECT_OPERATOR en el foro de PHP en Foros del Web. Estimados forer@s, necesito de su ayuda con un script que me está dando dolores de cabeza. Realmente no recuerdo de dónde lo bajé pero funcionaba ...
  #1 (permalink)  
Antiguo 30/04/2013, 20:54
Avatar de 2D6
2D6
 
Fecha de Ingreso: enero-2006
Ubicación: Posadas, Misiones
Mensajes: 60
Antigüedad: 18 años, 3 meses
Puntos: 4
Pregunta Error en código PHP del tipo T_OBJECT_OPERATOR

Estimados forer@s, necesito de su ayuda con un script que me está dando dolores de cabeza. Realmente no recuerdo de dónde lo bajé pero funcionaba perfecto hasta el día de ayer.

El script en cuestión es:
Código PHP:

//Conecto a la BD
require_once ("conn.php");

$rss = new DOMDocument();
//Cargo el Feed RSS
$rss->load('https://api.twitter.com/1/statuses/user_timeline.rss?user_id=201519348&count=20');

$feed = array();
foreach (
$rss->getElementsByTagName('item') as $node) {
  
$item = array ( 
    
'title' => $node->getElementsByTagName('title')->item(0)->nodeValue,
    
'link' => $node->getElementsByTagName('link')->item(0)->nodeValue,
    
'date' => $node->getElementsByTagName('pubDate')->item(0)->nodeValue,
    );
  
array_push($feed$item);
}

$limit 20;
for(
$x=0;$x<$limit;$x++)
{
  
  
$title $feed[$x]['title'];
  
$link $feed[$x]['link'];
  
$date $feed[$x]['date'];
  
  
//Saco el usuario de twitter
    
$titulo_noticia str_replace('USER_TWITTER:','',$title);
    
$fecha_noticia date('Y-m-d H:i:s',strtotime($date));
    
$link_noticia $link;

    
//Busco si no hay un tweet igual cargado
    
$tweetRepe mysql_query ("SELECT * FROM noticias WHERE titulo_noticia = '$titulo_noticia'");
    
$numeroTweetRepe=mysql_num_rows($tweetRepe);
    if (
$numeroTweetRepe == '0')
    {
      
mysql_query ("INSERT INTO noticias ... ");
    }
    else
    {
      
//No hago nada
    
}

Lo que hace esto es: cargar los tweets de la cuenta vía RSS, guardar los valores en variables, corregir algunos detalles (como sacar el nombre de usuario) y guardarlo en la tabla noticias.

El problema es que, no sé porqué, ahora me está dando error:
Código PHP:
Parse errorsyntax errorunexpected T_OBJECT_OPERATORexpecting ')' in  ...  on line 11 
La linea 11 es esta
Código PHP:
'title' => $node->getElementsByTagName('title')->item(0)->nodeValue
La primera del $array ().

Gracias por la ayuda!
  #2 (permalink)  
Antiguo 30/04/2013, 21:16
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 12 años, 9 meses
Puntos: 793
Respuesta: Error en código PHP del tipo T_OBJECT_OPERATOR

Cambia pubDate por pubdate y debería funcionar.
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP
  #3 (permalink)  
Antiguo 30/04/2013, 21:26
Avatar de 2D6
2D6
 
Fecha de Ingreso: enero-2006
Ubicación: Posadas, Misiones
Mensajes: 60
Antigüedad: 18 años, 3 meses
Puntos: 4
Respuesta: Error en código PHP del tipo T_OBJECT_OPERATOR

Gracias Andres pero lamentablemente eso no solucionó el problema.
¿Alguna otra idea?
  #4 (permalink)  
Antiguo 30/04/2013, 21:29
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 12 años, 9 meses
Puntos: 793
Respuesta: Error en código PHP del tipo T_OBJECT_OPERATOR

A mi me funciona perfectamente, que más errores te da?

Prueba con SimpleXML

Código PHP:
Ver original
  1. <?php
  2.  
  3. $sxe = new SimpleXMLElement('https://api.twitter.com/1/statuses/user_timeline.rss?user_id=201519348&count=20', null, true);
  4.  
  5. $feed = array();
  6.  
  7. foreach ($sxe->channel->item as $node) {
  8.     $feed[] = array (
  9.     'title' => $node->title,
  10.     'link' => $node->link,
  11.     'date' => $node->pubDate
  12.     );
  13. }

y con DOM esto me funciona:

Código PHP:
Ver original
  1. $rss = new DOMDocument();
  2.  
  3. $rss->load('https://api.twitter.com/1/statuses/user_timeline.rss?user_id=201519348&count=20');
  4.  
  5. $feed = array();
  6.  
  7. foreach ($rss->getElementsByTagName('item') as $node) {
  8.   $feed[] = array (  
  9.     'title' => $node->getElementsByTagName('title')->item(0)->nodeValue,
  10.     'link' => $node->getElementsByTagName('link')->item(0)->nodeValue,
  11.     'date' => $node->getElementsByTagName('pubDate')->item(0)->nodeValue,
  12.     );
  13. }
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP
  #5 (permalink)  
Antiguo 30/04/2013, 21:52
Avatar de 2D6
2D6
 
Fecha de Ingreso: enero-2006
Ubicación: Posadas, Misiones
Mensajes: 60
Antigüedad: 18 años, 3 meses
Puntos: 4
Respuesta: Error en código PHP del tipo T_OBJECT_OPERATOR

Ups...
Parece que tenes razón, el código está perfecto. Al parecer el problema está en otro lado.
Al no tener habilitado CRON tuve que recurrir al sucio truco de incluir el script (llamándolo con 'require_once') en la sección inicio y así ejecutarlo cada vez que alguien ingresa a la web.

Si escribo la URL donde está el archivo que tiene el script funciona, el error lo muestra (sigue siendo el mismo) cuando es llamado con 'require_once'.

<strike>Voy a ver si lo transformo en una función y que la ejecute a ver que pasa, ya vuelvo...</strike>

Mismo error... :(

Última edición por 2D6; 30/04/2013 a las 21:56 Razón: No solucionó el problema
  #6 (permalink)  
Antiguo 30/04/2013, 22:04
Avatar de 2D6
2D6
 
Fecha de Ingreso: enero-2006
Ubicación: Posadas, Misiones
Mensajes: 60
Antigüedad: 18 años, 3 meses
Puntos: 4
Respuesta: Error en código PHP del tipo T_OBJECT_OPERATOR

Me olvidaba, SimpleXML no está habilitado en el servidor que uso :(

Etiquetas: errores, parse, rss
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 12:50.