Parse error: syntax error, unexpected T_OBJECT_OPERATOR in /home/sites/.../publi [Résolu]

Messages postés
7
Date d'inscription
mercredi 13 septembre 2006
Dernière intervention
5 septembre 2008
- - Dernière réponse : Loki6
Messages postés
286
Date d'inscription
dimanche 27 novembre 2005
Dernière intervention
27 décembre 2009
- 27 déc. 2009 à 14:25
j'ai un problème j'ai installer un script php, mais ça ne marche pas,
un message d'erreur s'affiche :
Parse error: syntax error, unexpected T_OBJECT_OPERATOR in /home/sites/....../public_html/demo/web/youtube.php on line 32

et le code concerné c'est :
function video($id)
    {
        $this->idvideo = $id;
                                $feed = ("http://gdata.youtube.com/feeds/api/videos/".$id);
        $this->dom = getFeed($feed);
        $this->video = $this->dom->getElementsByTagName('entry')->item(0);
        $this->title = $this->video->getElementsByTagName('title')->item(0)->textContent;
       
    }

alors d'apres vous quel est le problème !!!

merci infiniment
Afficher la suite 

Votre réponse

12 réponses

Meilleure réponse
Messages postés
12336
Date d'inscription
mardi 10 février 2004
Dernière intervention
30 juillet 2012
3
Merci
T_OBJECT_OPERATOR c'est justement : "->"
et php n'en veut pas apres les appels de fonctions.

je l'ai dit des le debut, et j'ai donne un exemple, jvais pas lui pondre tout son code tout cuit non plus...

Merci coucou747 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 105 internautes ce mois-ci

Commenter la réponse de coucou747
Messages postés
12336
Date d'inscription
mardi 10 février 2004
Dernière intervention
30 juillet 2012
0
Merci
salut

ici :

$this->video = $this->dom->getElementsByTagName('entry')->item(0);
$this->title = $this->video->getElementsByTagName('title')->item(0)->textContent;

tu ne peux pas mettre -> apres un appel de fonction (en fait, ca depend de la version de php.)

$a $this->dom->getElementsByTagName('entry'); $this->video $a->item(0);
$a $this->video->getElementsByTagName('title'); $a $a->item(0)
$this->title = $a->textContent;
Commenter la réponse de coucou747
Messages postés
7
Date d'inscription
mercredi 13 septembre 2006
Dernière intervention
5 septembre 2008
0
Merci
merci pour votre réponse en faite j'ai remplacé par votre code mais ça marche pas encore :
je poste tout le code

code
<?

class Youtube
{
    var $dom, $idvideo, $title, $video;

    function videoTitle()
    {
        return $this->title;
    }
   
    function pagination()
    {
        return true;
    }
       
    function tag($tag, $page = 1)
    {        if ($page <0) $page 1;
       
        $start = ($page-1)*10 + 1;
        $tag = str_replace(' ', '+', $tag);
        $feed = ('http://gdata.youtube.com/feeds/api/videos?vq='.$tag.'&start-index='.$start.'&max-results=10&orderby=updated&alt=rss');
        $this->dom = getFeed($feed);
    }
   
    function video($id)
    {
        $this->idvideo = $id;
        $feed = ("http://gdata.youtube.com/feeds/api/videos/".$id);
        $this->dom = getFeed($feed);
        $a = $this->dom->getElementsByTagName('entry');
        $this->video = $a->item(0);
        $a = $this->video->getElementsByTagName('title');
        $a = $a->item(0);
        $this->title = $a->textContent;
    }
   

    function player()
    {
        ?>
        <object width="425" height="355">
            idvideo?>" />
           
            idvideo?>" type="application/x-shockwave-flash" wmode="transparent" width="425" height="355">
        </object>
        <?
    }
   
    function view($tag)
    {
        $videos = $this->dom->getElementsByTagName('item');
       
        foreach ($videos as $video)
        {
            $id = $video->getElementsByTagName('guid')->item(0)->textContent;
            $id = explode('/', $id);
            $id = $id[6];
           
            echo '
';
            $title = $video->getElementsByTagName("title")->item(0)->textContent;
                echo '['.BASE_URL.'/0/video/'.$tag.'/'.$id.'.html '.$title.']

';
               
                $fotos = $video->getElementsByTagNameNS("http://search.yahoo.com/mrss/", "thumbnail");
                $tiempo = $video->getElementsByTagNameNS("http://gdata.youtube.com/schemas/2007", "duration");
                $tiempo = $tiempo->item(0)->getAttribute("seconds");
               
merci de mettre sur la route parceque je commence à perdre les pédalles
Commenter la réponse de khalidovs
Messages postés
12336
Date d'inscription
mardi 10 février 2004
Dernière intervention
30 juillet 2012
0
Merci
la, t'as rien remplace du tout...
Commenter la réponse de coucou747
Messages postés
7
Date d'inscription
mercredi 13 septembre 2006
Dernière intervention
5 septembre 2008
0
Merci
ooops donc pour la function video que dois'je faire ???
Commenter la réponse de khalidovs
Messages postés
49
Date d'inscription
mardi 26 avril 2005
Dernière intervention
31 août 2008
0
Merci
ou est votre objet $dom ? 
<code>$dom=new DOMDocument();?
</code> oublié
sinon
$this->dom = getFeed($feed);
pas un objet
le resultat n'est pas un objet
pour faire :
        $a = $this->dom->getElementsByTagName('entry');

(ou est votre function getFeed ? verifie son resultat)
 il s'agit d'un feed RSS ? comme le genre on doit instancier $doc
$doc = new DOMDocument();
$doc->load('http://www.site.com/fichier.xml');
$arrFeeds = array();
foreach ($doc->getElementsByTagName('item') as $node) {
$itemRSS = array (
'title' => $node->getElementsByTagName('title')->item(0)->nodeValue,
'desc' => $node->getElementsByTagName('description')->item(0)->nodeValue,
'link' => $node->getElementsByTagName('link')->item(0)->nodeValue,
'date' => $node->getElementsByTagName('pubDate')->item(0)->nodeValue
);
array_push($arrFeeds, $itemRSS);
}

ou bien
Commenter la réponse de walid2876
Messages postés
7
Date d'inscription
mercredi 13 septembre 2006
Dernière intervention
5 septembre 2008
0
Merci
bonjour, merci walid2876 pour votre réponse que j'ai mal compris et je vous donne le script entier
svp pourriez vous me corriger cette erreur
 
<?

class Youtube
{
    var $dom, $idvideo, $title, $video;

    function videoTitle()
    {
        return $this->title;
    }
   
    function pagination()
    {
        return true;
    }
       
    function tag($tag, $page = 1)
    {        if ($page <0) $page 1;
       
        $start = ($page-1)*10 + 1;
        $tag = str_replace(' ', '+', $tag);
        $feed = ('http://gdata.youtube.com/feeds/api/videos?vq='.$tag.'&start-index='.$start.'&max-results=10&orderby=updated&alt=rss');
        $this->dom = getFeed($feed);
    }
   
    function video($id)
    {
        $this->idvideo = $id;
        $feed = ("http://gdata.youtube.com/feeds/api/videos/".$id);
        $this->dom = getFeed($feed);
        $this->video = $this->dom->getElementsByTagName('entry')->item(0);
        $this->title = $this->video->getElementsByTagName('title')->item(0)->textContent;
    }
   

    function player()
    {
        ?>
        <object width="425" height="355">
            idvideo?>" />
           
            idvideo?>" type="application/x-shockwave-flash" wmode="transparent" width="425" height="355">
        </object>
        <?
    }
   
    function view($tag)
    {
        $videos = $this->dom->getElementsByTagName('item');
       
        foreach ($videos as $video)
        {
            $id = $video->getElementsByTagName('guid')->item(0)->textContent;
            $id = explode('/', $id);
            $id = $id[6];
           
            echo '
';
            $title = $video->getElementsByTagName("title")->item(0)->textContent;
                echo '['.BASE_URL.'/0/video/'.$tag.'/'.$id.'.html '.$title.']

';
               
                $fotos = $video->getElementsByTagNameNS("http://search.yahoo.com/mrss/", "thumbnail");
                $tiempo = $video->getElementsByTagNameNS("http://gdata.youtube.com/schemas/2007", "duration");
                $tiempo = $tiempo->item(0)->getAttribute("seconds");
               
                $i = 0;
                echo '
';
                foreach ($fotos as $foto)
                {
                    $url = $foto->getAttribute("url");
                    echo '['.BASE_URL.'/0/video/'.$tag.'/'.$id.'.html ]';
                    $i++;
                    if ($i > 2) break;
                }
                echo '
';
               
                echo '['.BASE_URL.'/0/video/'.$tag.'/'.$id.'.html '._VIEW.'] '._DURATION.': '.minutes($tiempo).'

';
               
                echo ''.cut($video->getElementsByTagName("description")->item(0)->textContent).'

';
               
                $tags = $video->getElementsByTagName("category");
               
                echo '
'; echo 'tags: ';
                foreach ($tags as $palabra)
                {
                    if (strpos($palabra->textContent, "http") === FALSE)
                        echo '['.BASE_URL.'/0/tag/'.$palabra->textContent.'.html '.$palabra->textContent.'] ';
                }
                echo '
';
               
            echo '
';
           
        }
    }
   
    function videoInfo()
    {   
            $id = $this->video->getElementsByTagName("id")->item(0)->textContent;
            $id = explode("/", $id);
            $id = $id[6];
           
            echo '
';
                $title = $this->video->getElementsByTagName("title")->item(0)->textContent;
               
                $tiempo = $this->video->getElementsByTagNameNS("http://gdata.youtube.com/schemas/2007", "duration");
                $tiempo = $tiempo->item(0)->getAttribute("seconds");
               
                echo ''._DURATION.': '.minutes($tiempo).'

';
               
                echo ''.$this->video->getElementsByTagName("description")->item(0)->textContent.'

';
               
                $tags = $this->video->getElementsByTagNameNS("http://www.w3.org/2005/Atom", "category");
               
                echo '
'; echo 'tags: ';
                foreach ($tags as $palabra)
                {
                    if (strpos($palabra->getAttribute("term"), "http") === FALSE)
                        echo '['.BASE_URL.'/0/tag/'.$palabra->getAttribute( '.$palabra->getAttribute("term").'] ';
                }
                echo '
';
               
            echo '
';
    }
}

?>

la sur la linge 32 que j'ai marqué en gras et soulingé qui'il ya error ;
merci à tous
Commenter la réponse de khalidovs
Messages postés
12336
Date d'inscription
mardi 10 février 2004
Dernière intervention
30 juillet 2012
0
Merci
je te l'ai deja corrige plus haut...
Commenter la réponse de coucou747
Messages postés
7
Date d'inscription
mercredi 13 septembre 2006
Dernière intervention
5 septembre 2008
0
Merci
merci coucou747 et toi aussi walid2876. mais ce script m'énerve enormément, svp pourriez vous me donner un solution à se script, 
Commenter la réponse de khalidovs
Messages postés
28
Date d'inscription
lundi 30 mars 2009
Dernière intervention
27 octobre 2012
0
Merci
coucou747 a bien précisé qu'il ny a pas de -> après les fonctions comme GetElementByTagName() par exemple et je vois qu'il en reste un peu partout je ne suis qu'un novice mais demander un script entier ce n'est pas demander de l'aide.

corrige d'abord les erreurs, TOUTES les erreurs et si ça marche toujours pas reviens poser une question.

l'erreur qui t'a été signalée se trouve ligne 32 et est  "parse error, unexpected T_OBJECT_OPERATOR"

quand t'as une erreur de ce type ça veut dire que le T_OBECT_OPERATOR que tu places n'en est pas un.

perso je sais pas ce qu'est un T_OBJECT_OPERATOR et je suis sur que toi non plus, si tu t'étais renseigné sur son origine tu aurais peut etre été capable de résoudre ton problème.

vas sur php.net et regarde la description de la fonction que tu utilises ligne 32 et tu comprendras sans doute quel est le type d'objet attendu.
ciao.
Commenter la réponse de executals
Messages postés
7
Date d'inscription
mercredi 13 septembre 2006
Dernière intervention
5 septembre 2008
0
Merci
merci coucou747 j'ai bien compris votre réponse, donc je dois réécrire le code. c'est très génant pour moi parceque je susi débutant alors il me faut des semaines pour le faire.

merci bcp
Commenter la réponse de khalidovs
Messages postés
286
Date d'inscription
dimanche 27 novembre 2005
Dernière intervention
27 décembre 2009
0
Merci
j'arrive après la bataille et peut-être qu'en 2008 ça n'existait pas encore, mais si php5 est installé sur le serveur, on peut forcer la prise en compte de php5 au lieu de php4 avec un fichier .htaccess à la racine, contenant les lignes suivantes :
AddHandler x-httpd-php5 .php 
AddType application/x-httpd-php5 .php

++
Loki
Commenter la réponse de Loki6

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.