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

khalidovs 7 Messages postés mercredi 13 septembre 2006Date d'inscription 5 septembre 2008 Dernière intervention - 30 août 2008 à 02:42 - Dernière réponse : Loki6 286 Messages postés dimanche 27 novembre 2005Date d'inscription 27 décembre 2009 Dernière intervention
- 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
coucou747 12336 Messages postés mardi 10 février 2004Date d'inscription 30 juillet 2012 Dernière intervention - 3 sept. 2008 à 05:24
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

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 72 internautes ce mois-ci

Commenter la réponse de coucou747
coucou747 12336 Messages postés mardi 10 février 2004Date d'inscription 30 juillet 2012 Dernière intervention - 30 août 2008 à 13:18
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
khalidovs 7 Messages postés mercredi 13 septembre 2006Date d'inscription 5 septembre 2008 Dernière intervention - 30 août 2008 à 16:11
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
coucou747 12336 Messages postés mardi 10 février 2004Date d'inscription 30 juillet 2012 Dernière intervention - 30 août 2008 à 16:19
0
Merci
la, t'as rien remplace du tout...
Commenter la réponse de coucou747
khalidovs 7 Messages postés mercredi 13 septembre 2006Date d'inscription 5 septembre 2008 Dernière intervention - 30 août 2008 à 23:15
0
Merci
ooops donc pour la function video que dois'je faire ???
Commenter la réponse de khalidovs
walid2876 49 Messages postés mardi 26 avril 2005Date d'inscription 31 août 2008 Dernière intervention - 31 août 2008 à 16:14
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
khalidovs 7 Messages postés mercredi 13 septembre 2006Date d'inscription 5 septembre 2008 Dernière intervention - 1 sept. 2008 à 13:31
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
coucou747 12336 Messages postés mardi 10 février 2004Date d'inscription 30 juillet 2012 Dernière intervention - 1 sept. 2008 à 13:44
0
Merci
je te l'ai deja corrige plus haut...
Commenter la réponse de coucou747
khalidovs 7 Messages postés mercredi 13 septembre 2006Date d'inscription 5 septembre 2008 Dernière intervention - 1 sept. 2008 à 19:20
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
executals 28 Messages postés lundi 30 mars 2009Date d'inscription 27 octobre 2012 Dernière intervention - 2 sept. 2008 à 22:56
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
khalidovs 7 Messages postés mercredi 13 septembre 2006Date d'inscription 5 septembre 2008 Dernière intervention - 5 sept. 2008 à 01:32
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
Loki6 286 Messages postés dimanche 27 novembre 2005Date d'inscription 27 décembre 2009 Dernière intervention - 27 déc. 2009 à 14:25
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.