jer666 Posté(e) le 24 octobre 2007 Partager Posté(e) le 24 octobre 2007 Bonjour, sur mon site de video je propose des videos dailymotion au format 520 * 410. Aprés un changement de design je desirerais que toutes les videos soient au format 410 * 360. De plus j'aimerais que toutes mes videos peu importe la taille d'origine et peu importe la taille des lecteurs dailymotion soit proposer dans ce format sans avoir a modifier quoi que ce soit Donc je cherche un moyen de remplacer dans mon source du lecteur les valeurs de width="XXX" et height="XXX" Je connaissais str_replace pour réaliser ce type d'opération, sauf que la mon soucis c'est queje ne connais pas par avance les valeur XXX de width et height. donc ca ne peux pas marcher. Je ne trouve pas de fonction dans le manuel php qui puisse m'aider. auriez vous ca dans votre poche svp merci par avance pour votre aide toujours aussi dynamique et experte Lien vers le commentaire Partager sur d’autres sites More sharing options...
ZyriK Posté(e) le 24 octobre 2007 Partager Posté(e) le 24 octobre 2007 Le regex est ton ami Lien vers le commentaire Partager sur d’autres sites More sharing options...
jer666 Posté(e) le 25 octobre 2007 Auteur Partager Posté(e) le 25 octobre 2007 ya rien de plus simple? j'ai pas le temps d'apprendre les expression régulière pour un broutille comme ca :) Lien vers le commentaire Partager sur d’autres sites More sharing options...
windu.2b Posté(e) le 26 octobre 2007 Partager Posté(e) le 26 octobre 2007 Les Regexp sont là pour rechercher des chaines de caractères dont on ne connait pas le contenu exact, ce qui est ton cas. A la limite, tu peux te "contenter" de rechercher 'width' et height' et de bidouiller ensuite leurs valeurs Lien vers le commentaire Partager sur d’autres sites More sharing options...
Mephisto Posté(e) le 8 mai 2008 Partager Posté(e) le 8 mai 2008 $width = str_replace(" .*$", "", str_replace("^.width=", "", $str)); $height = str_replace(" .*$", "", str_replace("^.height=", "", $str)); et tu verifies que t'as pas recuperer des quotes/doubles-quotes/fermeture de balise Lien vers le commentaire Partager sur d’autres sites More sharing options...
theocrite Posté(e) le 9 mai 2008 Partager Posté(e) le 9 mai 2008 Quelque chose comme preg_replace ('/width\s*=\s*"\s*[0-9]+/', 'width="520', $string); Lien vers le commentaire Partager sur d’autres sites More sharing options...
Bab00n Posté(e) le 9 mai 2008 Partager Posté(e) le 9 mai 2008 str_replace ? "Si vous n'avez pas besoin de règles de remplacement compliquées, utilisez cette fonction de préférence à ereg_replace() et preg_replace()." Apres comme l'on dis les autre les regexp c'est bien !! c'est pas du temps de perdu de les apprendre. Lien vers le commentaire Partager sur d’autres sites More sharing options...
theocrite Posté(e) le 9 mai 2008 Partager Posté(e) le 9 mai 2008 Je connaissais str_replace pour réaliser ce type d'opération, sauf que la mon soucis c'est queje ne connais pas par avance les valeur XXX de width et height. Lien vers le commentaire Partager sur d’autres sites More sharing options...
locutyx Posté(e) le 13 mai 2008 Partager Posté(e) le 13 mai 2008 Je connaissais str_replace pour réaliser ce type d'opération, sauf que la mon soucis c'est queje ne connais pas par avance les valeur XXX de width et height. Si tu n'aime pas les expressions régulières, une solution un peu bourrin est de séparer ta chaine en morceaux, de remplacer les morceaux à remplacer et de tout recoller. "explode" va être ton ami pour commencer, on va remplacer width="xxx" par width="100" 1 remplace width=" par width="||| avec un bon vieux str replace 2 tu utilise un $tab = explode("|||", $tachaine) maintenant, tu as un tableau avec : [0]=> ttzeiuhsqhjjhjdsffr width=" [1]=> xxx" rqrreqiihklfdsffdshjhhhb à ce niveau, tu sais que ce qui est avant le premier " est ton nombre, on va donc l'isoler. Tu remplace donc " par |||" et tu recoupe avec un $tab2 = explode("|||", $tab[1], 2) On utilise deux car tu ne veux faire la cassure que sur le premier élément à ce niveau, tu as donc 3 chaines $tab[0]= ttzeiuhsqhjjhjdsffr width=" $tab2[0]= xxx $tab2[1]= " rqrreqiihklfdsffdshjhhhb la chaine que tu souhaite, c'est $tab[0]."520".$tab2[1] Bien sûr, tu vérifie d'abord que ta chaine ne contenait pas au départ un ||| quelque part auquel cas tu tente avec un autre truc bizarre. De la même manière, tu peux recommencer avec le height Là, tu te dis qu'une bonne expression régulière, ça a parfois du bon C'est ainsi que je te conseille de perdre un peu de temps sur ce site qui va te permettre en moins de 10 minutes de pouvoir te la péter grave devant tes collègues et tes potes: tutoriel très bien fait Lien vers le commentaire Partager sur d’autres sites More sharing options...
qui.dominatur Posté(e) le 17 mai 2008 Partager Posté(e) le 17 mai 2008 +1 pour le tuto du siteduzero.com J'ai appris grâce à ce site et il suffit de le compléter avec le manuel php. En étant un novice du php, je peux dire que cette fonction mérite vraiment qu'on s'y intéresse car avoir les résultats sous forme de tableau est vraiment TRES pratique. Et à mon avis c'est plus simple d'utiliser les regex plutôt que la fonction explode comme indiqué ci-dessus. Lien vers le commentaire Partager sur d’autres sites More sharing options...
Messages recommandés
Archivé
Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.