PHP > Besoin d'aide pour un bout de code
7 messages • Page 1 sur 1
Consultez la formation au référencement naturel Google de WebRankInfo / Ranking Metrics
PHP > Besoin d'aide pour un bout de code
Bonjour,
J'aurai besoin d'idées pour mettre en place un bout de code en PHP.
Je voudrai en fait remplacer des mots par d'autres dans mon forum, sauf si ils se trouvent entre les balises [url]et[/url].
La chaine de caractère s'appelle $chaine. Il faudrait en fait faire :
si ce n'est pas entre [url]et[/url].
Auriez-vous des idées ?
Merci.
J'aurai besoin d'idées pour mettre en place un bout de code en PHP.
Je voudrai en fait remplacer des mots par d'autres dans mon forum, sauf si ils se trouvent entre les balises [url]et[/url].
La chaine de caractère s'appelle $chaine. Il faudrait en fait faire :
- Code: Tout sélectionner
$chaine= str_replace("Mot11", "Mot22", $chaine);
si ce n'est pas entre [url]et[/url].
Auriez-vous des idées ?
Merci.
Ok merci, mais pour savoir qu'il y a balise [URL], comment faire ?
Une boucle for avec :
?
J'ai essayé mais en vain...
Une boucle for avec :
- Code: Tout sélectionner
"$chaine[$i]$chaine[$i+1]$chaine[$i+2]$chaine[$i+3]$chaine[$i+4]"=="[URL]"
?
J'ai essayé mais en vain...
-

La Chaise sauvage - WRInaute passionné

- Messages: 691
- Inscription: Lun Avr 11, 2005 10:37
sinon, je ne garantis pas l'efficacité pour de gros volumes de texte, mais cette solution fonctionne :
ce qui s'utilise évidemment comme ceci :
Et le résultat :
Evidemment, si quelqu'un a des conseils quant à a l'optimisation de ceci, je suis preneur, c'est du vite fait
edit : moui... ma fonction a quelques problèmes... notamment quand le mot recherché est en majuscules, ou quand il est collé à une balise ouvrante ou fermante... enfin bref c'est du bricolage, quoi
- Code: Tout sélectionner
function gcvoiron_replace($cherche,$remplace,$chaine){
$flag = TRUE;
$tab = explode(' ',$chaine);
$i=0;
foreach($tab as $mot){
if($flag){
if(strpos(strtolower($mot),'[url]') !== FALSE) {
$flag = FALSE;
} else {
$mot = str_replace($cherche,$remplace,$mot);
}
}
if(strpos(strtolower($mot),'[/url]') !== FALSE) {
$flag = TRUE;
}
$res .= $mot.' ';
$i++;
}
return $res;
}
ce qui s'utilise évidemment comme ceci :
- Code: Tout sélectionner
$string = "ceci est un test youpi [url]ceci est un test[/url] blabla test youpi ceci est un test youpi [URL] ceci est un test [/URL] blabla test youpi";
$ok = gcvoiron_replace('test','ok',$string);
echo 'Phrase initiale : '.$string;
echo '<br/>Phrase produite : '.$ok;
Et le résultat :
Phrase initiale : ceci est un test youpi [url]ceci est un test[/url] blabla test youpi ceci est un test youpi [url]ceci est un test[/url] blabla test youpi
Phrase produite : ceci est un ok youpi [url]ceci est un test[/url] blabla ok youpi ceci est un ok youpi [url]ceci est un test[/url] blabla ok youpi
Evidemment, si quelqu'un a des conseils quant à a l'optimisation de ceci, je suis preneur, c'est du vite fait
edit : moui... ma fonction a quelques problèmes... notamment quand le mot recherché est en majuscules, ou quand il est collé à une balise ouvrante ou fermante... enfin bref c'est du bricolage, quoi
Dernière édition par La Chaise sauvage le Jeu Fév 08, 2007 9:53, édité 1 fois.
-

La Chaise sauvage - WRInaute passionné

- Messages: 691
- Inscription: Lun Avr 11, 2005 10:37
une deuxième solution, qui corrige certains des bugs que je viens de relever (mais pas le point évoqué par hawkeye)
par contre là c'est sûr, il y a de la place pour optimiser (les regex, c'est pas trop mon point fort...) je vais aller vaquer à mes occupations... et je le laisse à titre d'exercice pour les suivants
par contre là c'est sûr, il y a de la place pour optimiser (les regex, c'est pas trop mon point fort...) je vais aller vaquer à mes occupations... et je le laisse à titre d'exercice pour les suivants
- Code: Tout sélectionner
function gcvoiron_replace($cherche, $remplace, $chaine, $b='url'){
$chaine = preg_replace('#\['.$b.'\]#i','['.strtolower($b).']',$chaine); // passe les balises recherchees en minuscule
$chaine = preg_replace('#\[\/'.$b.'\]#i','[/'.strtolower($b).']',$chaine);
$chaine = str_replace('['.$b.']',' ['.$b.']',$chaine); // rajoute un espace avant
$chaine = str_replace('[/'.$b.']','[/'.$b.'] ',$chaine); // et après les balises recherchees
$flag = TRUE;
$tab = explode(' ',$chaine);
$i = 0;
foreach($tab as $mot){
if($flag){
if(strpos(strtolower($mot),'['.$b.']') !== FALSE) {
$flag = FALSE;
} else {
$mot = preg_replace('#'.$cherche.'#i',$remplace,$mot);
}
}
if(strpos(strtolower($mot),'[/'.$b.']') !== FALSE) {
$flag = TRUE;
}
$res .= $mot.' ';
$i++;
}
return $res;
}
7 messages • Page 1 sur 1
Formation recommandée sur ce thème :
Formation Référencement naturel Google : apprenez une méthode efficace pour optimiser à fond le référencement naturel dans Google de façon durable... Formation animée par Olivier Duffez et Fabien Facériès, experts en référencement naturel.
Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.
Lectures recommandées sur ce thème :
- La formule du PageRank de Google
- 1ère faille de sécurité découverte sur Google Chrome
- Keyword Search Engine : le choix des bons mots-clés
- Google Page Creator
- Aperçu des différents types de redirection
- Vocabulaire du référencement : noms de domaine et URL
- Affichage de la description DMOZ dans MSN Search
- Le simulateur de vol de Google Earth
- Google Code Search : moteur de recherche de codes sources
- [besoin aide] petit code php
- [Resolu]Question sur un bout de code php, merci...
- besoin petite aide mais préciseuse pour 2 lignes de code
- svp aide code (php ou java..)
- besoin aide pour php
- besoin d'une aide en php (formulaire)
- Besoin d'aide pour un petit code php
- Besoin d'aide sur du code php/mysql
- A quoi sert ce bout de code?
- Problème avec un bout de code en PERL
- Champ d'un formulaire et bout de code
- Enlever un bout de code pour un bon réf.
- explication sur un petit bout de code javascript
- besoi d'aide sur un bout de code cherché
- Demande d'info sur un bout de code d'un htaccess
Consultez la description détaillée des produits ou services de Google suivants : Google Code
- Analyseur d'entête HTTP
Cet outil vous permet de connaître le code HTTP renvoyé par le serveur pour une page donnée.
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités






le forum