CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

probleme str_replace

snoooper
snoooper
Niveau 9
31 décembre 2007 à 11:18:44

Bonjour

j´ai mis, sur la page
http://www.legypteantique.com/xhtml0/str-replacage.php, le code suivant

<?

function RemoveAccents($string)
{

$string= strtr($string,

"ÀÁÂÃÄÅàáâãäåÒÓÔÕÖØòóôõöøÈÉÊËèéêëÇçÌÍÎÏìíîïÙÚÛÜùú
ûüÿÑñ",

"aaaaaaaaaaaaooooooooooooeeeeeeeecciiiiiiiiuuuuuu
uuynn");
return $string;
}

$texte="Osiris a dit à Amon: <strong>Bonjour</strong>";

$texte = RemoveAccents ($texte);
$texte = str_replace("osiris","Rê",$texte);
echo "$texte";
?>

Pourqoi cela m´affiche t-il: Osiris a dit a Amon: Bonjour et non point "Rê a dit à amon: bonjour"?

Cordialement

deepblue
deepblue
Niveau 16
31 décembre 2007 à 11:23:50

$texte="Osiris a dit à Amon: <strong>Bonjour</strong>";
// Osiris a dit à Amon: <strong>Bonjour</strong>

$texte = RemoveAccents ($texte);
// Osiris a dit a Amon: <strong>Bonjour</strong>

$texte = str_replace("osiris","Rê",$texte);

// Osiris a dit a Amon: <strong>Bonjour</strong>

http://fr2.php.net/manualal/fr/function.str-replace.php
Regarde les notes

snoooper
snoooper
Niveau 9
31 décembre 2007 à 14:45:16

OK merci beaucoup :-). Sinon cette page ne dit pas si on peut limiter pour éviter de saturer uen page en liens, à par exemple deux liens par mot à remplacer. Sais tu si avec str_replace c´est possible???

deepblue
deepblue
Niveau 16
31 décembre 2007 à 14:52:32

j´ai rien compris à ce que tu voulais xD

snoooper
snoooper
Niveau 9
31 décembre 2007 à 14:57:09

et surtout, car le but ici est de faire des liens internes à un site, dois-je metre comme variable $texte tout l´article oup uis-le lui dire "va chercher dans le texte le mot "lorem" ou "ipsum" et fais moi en un lien???

deepblue
deepblue
Niveau 16
31 décembre 2007 à 14:59:59

Explique ce que tu veux faire car je n´ai pas compris.

snoooper
snoooper
Niveau 9
31 décembre 2007 à 16:12:00

Excuse moi de ne pas avoir été assez clair.

En gros, j´aimerais afficher un texte, et qu´un script remplace certains mots que je définirai d´avance par un lien pointant vers l´article en question. Si bien que a chaque nouvel article créé je n´aurai qu´ a placer la fonction pour generer automatiquement des liens internes. je pourrai également en quelques clics modifier les liens voulus, ...

En gros, faire comme sur Wikipedia automatiquement

deepblue
deepblue
Niveau 16
31 décembre 2007 à 17:42:42

Ok, c´est tout de suite plus clair.
Je n´ai jamais vraiment reflechie au problème, voila comme je vois la chose actuellement :

$texte = "ton texte, il peut venir de n´importe où, comme une base de données par exemple";

$remplace = array(
"mot1 à remplacer" => "par quoi il faut le remplacer",
"mot2" => "ce par quoi il faut le remplacer",
"mot3" => "idem"
);

foreach($remplace as $mot => $par) {
$texte = preg_replace("`".preg_quote($mot)."`iU", $par, $texte);
}

Non testé, peut etre bourrin mais c´est la meilleur solution que j´ai a la minute où j´écris :)

deepblue
deepblue
Niveau 16
31 décembre 2007 à 17:51:43

t´as aussi str_ireplace mais faut php 5 et je sais pas si les accentes passent

snoooper
snoooper
Niveau 9
01 janvier 2008 à 01:17:35

OK, mais on est "obligé" de mettre ´article dans une variable, sous la forme $texte = "ton texte, il peut venir de n´importe où, comme une base de données par exemple";

On ne peut pas mettre

$texte = str_replace("Osiris","A",$texte);
$texte = str_replace("oSiris","B",$texte);
$texte = str_replace("osIris","C",$texte);
$texte = str_replace("osiRis","D",$texte);

Mon Texte?

Sinon merci infiniment pour ton aide, et bonne année 2008

deepblue
deepblue
Niveau 16
01 janvier 2008 à 06:05:06

"OK, mais on est "obligé" de mettre ´article dans une variable" > tu veux gêrer le remplacement comment alors ?

"On ne peut pas mettre"
ben tu peux mais si tu as des 10ènes de mots à gêrer...
Ce que je te propose est similaire, sauf que c´est insensible à la casse.
Pour info, tu peux passer des array en parametre de str_replace :

$avant = array(
"Osiris",
"oSiris",
"osIris",
"osiRis"
);

$apres = array(
"A",
"B",
"C",
"D"
);

$texte = str_replace($avant, $apres, $texte);

snoooper
snoooper
Niveau 9
01 janvier 2008 à 23:17:23

OK merci beaucoup deepblue pour ce code.

Simplement je ne vois pas mettre en variable

$texte = "Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Sed non risus. Suspendisse lectus tortor, dignissim sit amet, adipiscing nec, ultricies sed, dolor. Cras elementum ultrices diam. Maecenas ligula massa, varius a, semper congue, euismod non, mi. Proin porttitor, orci nec nonummy molestie, enim est eleifend mi, non fermentum diam nisl sit amet erat. Duis semper. Duis arcu massa, scelerisque vitae, consequat in, pretium a, enim. Pellentesque congue. Ut in risus volutpat libero pharetra tempor. Cras vestibulum bibendum augue. Praesent egestas leo in pede. Praesent blandit odio eu enim. Pellentesque sed dui ut augue blandit sodales. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Aliquam nibh. Mauris ac mauris sed pede pellentesque fermentum. Maecenas adipiscing ante non diam sodales hendrerit.

Ut velit mauris, egestas sed, gravida nec, ornare ut, mi. Aenean ut orci vel massa suscipit pulvinar. Nulla sollicitudin. Fusce varius, ligula non tempus aliquam, nunc turpis ullamcorper nibh, in tempus sapien eros vitae ligula. Pellentesque rhoncus nunc et augue. Integer id felis. Curabitur aliquet pellentesque diam. Integer quis metus vitae elit lobortis egestas. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Morbi vel erat non mauris convallis vehicula. Nulla et sapien. Integer tortor tellus, aliquam faucibus, convallis id, congue eu, quam. Mauris ullamcorper felis vitae erat. Proin feugiat, augue non elementum posuere, metus purus iaculis lectus, et tristique ligula justo vitae magna.

Aliquam convallis sollicitudin purus. Praesent aliquam, enim at fermentum mollis, ligula massa adipiscing nisl, ac euismod nibh nisl eu lectus. Fusce vulputate sem at sapien. Vivamus leo. Aliquam euismod libero eu enim. Nulla nec felis sed leo placerat imperdiet. Aenean suscipit nulla in justo. Suspendisse cursus rutrum augue. Nulla tincidunt tincidunt mi. Curabitur iaculis, lorem vel rhoncus faucibus, felis magna fermentum augue, et ultricies lacus lorem varius purus. Curabitur eu amet.

"

Donc je vais essayer plutot de faire ca en bdd. Tu prefere quelle solution pour la recup de texte? variable ou bdd?

cordialement

deepblue
deepblue
Niveau 16
01 janvier 2008 à 23:31:16

Bon, je commence a cerner ton problème : tu ne veus pas te faire chier à remplacer des mots "à la main" donc tu veux passer par un script qui le ferais à ta place (j´aurais fais pareil).
Voila ce que je te propose : dans l´hypothèse où tu pourrais le faire sur plusieurs textes, et qu´il serait à mon goût débile de mettre ce texte en dur dans ta page, il suffit donc de le mettre dans un fichier, et d´utliser la fonction file_get_contents($tonfichier) puis de traiter ce qu´elle te donne.
Exemple :

$texte = file_get_contents($tonfichier);
/*
tu modifies ce que tu veux dans $texte

  • /

echo $texte;

snoooper
snoooper
Niveau 9
03 janvier 2008 à 01:22:38

Disons qu´à la base cela ne me derange pas, mais le faire sur 200 ou 300 pages, plus par la suite, c´est tout de suite moins rigolo.

ok merci bcp. Donc pour ne pas multiplier les fichiers par deux par exemple article.php et article.txt ou le texte a traiter sera mis dedans, tu me conseille d´utiliser une bdd???

merci infiment pour ton aide, et bonne nuit

deepblue
deepblue
Niveau 16
03 janvier 2008 à 02:03:14

ouai prends une bd

Sous forums
  • Aide à l'achat Mac
  • Création de sites web
  • Création de Jeux
  • Linux
  • Programmation
  • Internet
  • Steam Deck
  • Macintosh
  • Hardware