Modifier une chaine de caractère:

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Modifier une chaine de caractère:

par Tomsawyer » 26 juin 2008, 00:11

Je viens de tester avec la methode preg_replace mais ca marche pas. les width et height ne se changent pas.

j'ai tester aussi ca:
$string =preg_replace('/width="(4[0-9]+[0-9]+)"/i', 'width="220"', $string);
$string =preg_replace('/height="(3[0-9]+[0-9]+)"/i', 'height="170"', $string);
mais rien à faire ca marche pas non plus :cry:

par iclo » 26 juin 2008, 00:09

savageman t'a donné un exemple, avec une regexp qui correspond à la suggestion de Ryle.

par Tomsawyer » 26 juin 2008, 00:07

tu as un exemple Ryle?
Je vois pas trop comment faire.

par Ryle » 25 juin 2008, 20:52

C'est un peu sauvage comme méthode de remplacement, et si jamais l'un des chiffres que tu essayes de remplacer est déjà dans l'url (id ou autre) elle ne fonctionnera plus...

Utilises plutot les expressions régulières pour repérer la chaine width="xxx", éventuellement récupérer sa valeur et la tester pour ne la modifier que si elle est supérieure à 220, et remplace là avec la même expression régulière si nécessaire :)

Edit : damn, grilled ! :)

par savageman » 25 juin 2008, 20:49

Tu fais toujours le remplacement sur $string2, donc ta chaîne de départ (en gros, seul le $i=400 sert à quelque chose).
De plus, ereg_replace() est plutôt déprécié : il faut utiliser preg_replace() à la place, str_replace() si c'est possible (et c'est possible ici) ou encore strtr(). Enfin, ton code est peu élégant et peu performant.

Je te conseille ceci :
$string = preg_replace('`width="\d+"`', 'width="220"', $string);
$string = preg_replace('`height="\d+"`', 'height="170"', $string);

Modifier une chaine de caractère:

par Tomsawyer » 25 juin 2008, 18:28

Bonjour à tous,

Sur un de mes sites, les membres on la possibilité d'intégrer leurs vidéo youtube ou dailymotion.
Il colle le code fourni par daily ou youtube dans un éditeur que j'ai créer.

Jusque là tous va bien.

Pour des raisons ergonomiques les vidéos doivent avoir un format adapter sur le site soit:
width="220"
height="170"

Or le code daily par exemple donne width="420" et un height different suivant les vidéo.
Sachant que le height est généralement compris entre 200 et 400.

dans un premier temps j'ai ecrit un petit code pour transformer le code dailymotion:
$width = '220';  // original=420
$height = '170';  // original est variable est compris entre 200 et 400
$string = $url; // url = code daily
$string2 = $string = ereg_replace('420', $width, $string);
$stringfinale = ereg_replace('355', $height, $string2);
ce code ne marche que si la vidéo originale possède une hauteur de 355

du coup j'ai modifier mon code pour une hauteur comprise entre 200 et 400


$height = '170';  // original=355
$string = $url;
$string2 = $string = ereg_replace('420', $width, $string);
for (heightbis=200; $heightbis < 400; $heightbis++)
 { 
$stringfinale = ereg_replace($heightbis, $height, $string2);
}  
mais ca marche pas :?

some help?

merci d'avance