<object width="425" height="355"><param name="movie" value="http://www.youtube.com/v/Mh7tZqvUqII&hl=fr"></param><param name="wmode" value="transparent"></param><embed src="http://www.youtube.com/v/Mh7tZqvUqII&hl=fr" type="application/x-shockwave-flash" wmode="transparent" width="425" height="355"></embed></object>

Bonjour bonjour,

Vous avez tous pu reconnaitre le code d'intégration d'une vidéo youtube ^^ Mon problème est le suivant ! Je veux juste savoir s'il existe un moyen simple de récupérer l'url de la vidéo, mais pas juste pour la récupérer mais pour pouvoir la modifier et la réinjecter dans le code d’intégration au deux endroits ou elle apparait, je sais sa parait bisard mais sa me sera grandement utile ^^ j'ai essayer les expressions régulière mais j'ai pas reussi a trouver une expression qui colle bien :( alors si quelqu'un a une meilleur idée ? je l'en remercie mille fois d'avance ^^

8 réponses


Leny
Réponse acceptée
preg_replace( '/\"http:\/\/www.youtube.com\/(^\"]+)\"/', '$1?version=3', $sCodeYoutube );

Voilà pour ton soucis en particulier.

Mais je suis convaincu que ta logique ici est un peu trop prise de chou : pourquoi stocker l'entièreté du code youtube dans ta base de donnée, alors que, de ligne en ligne, la seule chose qui change, c'est l'ID de la vidéo (dans ton exemple, Mh7tZqvUqII ) ?

Du coup, en ne stockant que cet ID, tu as juste à générer le code d'intégration comme suit :

<object width="425" height="355">
    <param name="movie" value="http://www.youtube.com/v/<?=$sVideoID; ?>&hl=fr?version=3">
    </param><param name="wmode" value="transparent"></param>
    <embed src="http://www.youtube.com/v/<?=$sVideoID; ?>&hl=fr?version=3" type="application/x-shockwave-flash" wmode="transparent" width="425" height="355"></embed>
</object>

Tu y gagnes deux avantages : de un, tu prends moins de place dans ta db, et de deux, si Youtube change quelques trucs dans le code d'intégration, ce ne sera probablement pas l'ID, et donc tu ne devras pas te taper toutes ta db pour mettre à jour le code d'intégration. Dans le principe, donc, le grand problème ici est la répétition du code. Or, il ne faut jamais (ou le moins possible) se répèter dans son code. Justement pour éviter ce genre de cas.

Pas trop compris ce que tu veux faire

plasma49
Auteur

Encore ^^ lol c'est complexe mais pour faire un truc simple ^^ j'ai un code d’intégration que je récupère d'une BD, et dans ce code je veux changer le lien de la vidéo qui apparait à 2 endroits dans les param et dans le embed ! J'ai essayer avec les expressions régulière mais j'arrive pas a en trouver une de convenable pour pouvoir le reconstituer après comme il faut :s Est ce un peu plus claire ^^

Hello,

Et ça :

<object width="425" height="355"><param name="movie" value="http://www.youtube.com/v/<?php echo $maVar; ?>&hl=fr"></param><param name="wmode" value="transparent"></param><embed src="http://www.youtube.com/v/<?php echo $maVar; ?>&hl=fr" type="application/x-shockwave-flash" wmode="transparent" width="425" height="355"></embed></object>

? ça devrait peut être le faire ^^

Sinon, ce qui est stocké dans la base c'est toute la balise object ???

Les balises Youtube sont toujours sur le même nombre de caractères ?

plasma49
Auteur

salut ^^ alors ouii encore une fois mal expliquer alors ^^ oui c'est toute la variable du code d’intégration qui est stocké dans ma base de donnée et c'est pour sa que c'est plus compliquer en faite le truc c'est que la version du code d’intégration que je récupère et pas terrible, et je voudrai en récupérant mon code sur la page le modifier, et ajoutant a l'url "?verison=3"

plasma49
Auteur

avec une expression régulière si le code ne change pas sa dois pouvoir se faire non mais j'y arrive pas je vois pas comment faire :
En gros avoir sa dans ma base de donnée :

<object width="425" height="355">
    <param name="movie" value="http://www.youtube.com/v/Mh7tZqvUqII&hl=fr">
    </param><param name="wmode" value="transparent"></param>
    <embed src="http://www.youtube.com/v/Mh7tZqvUqII&hl=fr" type="application/x-shockwave-flash" wmode="transparent" width="425" height="355"></embed>
</object>

Et en le récupérant injecter la version du lecteur :

<object width="425" height="355">
    <param name="movie" value="http://www.youtube.com/v/Mh7tZqvUqII&hl=fr?version=3">
    </param><param name="wmode" value="transparent"></param>
    <embed src="http://www.youtube.com/v/Mh7tZqvUqII&hl=fr?version=3" type="application/x-shockwave-flash" wmode="transparent" width="425" height="355"></embed>
</object>

voila voila j'éspére avoir était plus clair cette fois ^^

plasma49
Auteur

j'avais c'est vraiment pas idiot du tout ^^ je m’entêtais a essayer de résoudre mon problème comme il venais sans essayer de chercher une autre solution ^^ Je te remercie grandement ^^

plasma49
Auteur

Nikel après avoir modifier sa marche encore mieux qu'avant j'ai réduit de moitié mes code presque vraiment merci ^^