Remplacer un caractère dans une chaine par une variable

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 : Remplacer un caractère dans une chaine par une variable

Re: Remplacer un caractère dans une chaine par une variable

par Hélène » 12 nov. 2010, 04:51

BRAVO !!!
c'est exactement ça que je cherchais, merci beaucoup.

Re: Remplacer un caractère dans une chaine par une variable

par Mazarini » 03 nov. 2010, 15:17

bonjour

$t = explode('<h2>',$texte);
£i = 0;
$r = '',
foreach ($t as $s) {
£i++;
$r .= '<h2 classe="element'.$i.'>".$s;
}

Re: Remplacer un caractère dans une chaine par une variable

par dunbar » 03 nov. 2010, 00:07

Salut,

Simplement comme ceci peut-être ?
<?php
<?php
$donnee = array('<h2>(ceci est un test1)</h2>',
                '<h2>(ceci est un test2)</h2>',
                '<h2>(ceci est un test3)</h2>');


	foreach($donnee as $key => $row)
	{

		$element = 'element'.($key +1);

		echo $remplacement = str_replace('<h2>', '<h2 class="'.$element.'">', $row);
		echo '<p>(.....)</p>';
    }

?>
A+
PS : Ceci dis la solution est trés discutable :)

Re: Remplacer un caractère dans une chaine par une variable

par stealth35 » 02 nov. 2010, 23:56

pas besion non plus avec jquery tu peux aller cherche tout les H2, de plus c'est plutot l'id pour l'identifiant uniquement et class pour le style :wink:

Re: Remplacer un caractère dans une chaine par une variable

par Hélène » 02 nov. 2010, 23:22

je voudrais avoir à la fin quelque chose comme
<h2 class="element1"> (...)</h2>
<p> (...) </p>
<h2 class="element2"> (...)</h2>
<p> (...) </p>
<h2 class="element3"> (...)</h2>
<p> (...) </p>
<h2 class="element4"> (...)</h2>
<p> (...) </p>
tu vois ? Car ainsi je pourrai appliquer un style CSS ainsi qu'une action Jquery dessus.
Pour l’instant je bataille juste avec le fait que je n'ai aucune indexation pour les h2.

Re: Remplacer un caractère dans une chaine par une variable

par stealth35 » 02 nov. 2010, 12:55

comment tu va créer tes classes CSS après ?

Re: Remplacer un caractère dans une chaine par une variable

par Hélène » 02 nov. 2010, 03:05

Merci. Concept un peu nouveau pour moi, je ne suis pas sur de bien comprendre.
Aurais-tu un exemple à me proposer ?

Re: Remplacer un caractère dans une chaine par une variable

par stealth35 » 02 nov. 2010, 01:25

ah oui ? Pourrais tu être plus précis ? Je ne connais pas
il faut creer un objet DOMDocument, tu charges ton html avec la methode loadHTML, apres il va falloir faire un requete xpath pourl es h2 c'est simple c'est //h2
ca va te rendre une liste de tout tes H2, il suffis de leur rajoute l'attribut class

(ca parait compliquer mais en 10 lignes c'est fais) :wink:

Re: Remplacer un caractère dans une chaine par une variable

par Hélène » 02 nov. 2010, 01:01

ah oui ? Pourrais tu être plus précis ? Je ne connais pas

Re: Remplacer un caractère dans une chaine par une variable

par stealth35 » 02 nov. 2010, 00:43

tu peux faire ca DOMDocument c'est fait pour manipuler le HTML

Re: Remplacer un caractère dans une chaine par une variable

par Hélène » 02 nov. 2010, 00:34

Bonsoir,
Euh.. pas vraiment. Je ne pense pas que les CSS puissent m'aider.

Je cherche à faire une boucle pour remplacer tous mes <h2> par un <h2 class="element_$i"> avec $i qui varie de 0 à x, x étant le nombre d’occurrences dans ma chaine de caractère.

Merci pour ta réponse

Re: Remplacer un caractère dans une chaine par une variable

par stealth35 » 01 nov. 2010, 23:31

tu peux le faire en CSS ca

Remplacer un caractère dans une chaine par une variable

par Hélène » 01 nov. 2010, 23:21

Bonjour,
Je cherche à faire la manipulation suivante: j'interroge une BDD pour ressortir le contenu d'un enregistrement.
Il s'agit d'une texte, composé d'en ensemble de titre et de textes sous la forme
<h2> (...) </h2>
<p> (...) </p>
J'aimerai maintenant pouvoir remplacer ces <h2> par quelque chose du genre
<h2 class='[b]element1[/b]'> (...) </h2>
<p> (...) </p>
<h2 class='[b]element2[/b]'> (...) </h2>
<p> (...) </p>
Je devine qu'il faut faire une boucle pour parcourir chaque h2 et le remplacer par un <h2 class='element$i'> et on incrémente $i=$i+1

Mais je n'y arrive pas. Si j'utilise ereg_replace ou plus exactement str_replace, la fonction me remplace tout avec la même valeur, sans faire de distinction entre les élements.

Merci pour votre aide