Bonjour,
Voila je rencontre un petit problème avec mon code.
J'ai deux problèmes avec str_replace, les voici :
$truc1 = str_replace("'", "", $truc);
$truc2 = str_replace('–', '-', $truc1);
Mais ca ne modifie absolument rien :/
Merci de votre aide
pour le tiret je vois pas mais pour l'apostrophe je crois que si tu l'echappe ca devrait fonctionner
str_replace("\'","",$truc)
Non, marche pas non plus. J'avais déjà essayé :(
$truc = str_replace('\'', '', $truc2);
Bonjour.
Montres-nous plutôt le code concerné au lieu de te perdre dans tes explications.
Pour remplacer une apostrophe par un espace, il te suffit de faire :
$new_string = str_replace("'", " ", $string);
Et pour replacer le underscore par un tiret :
$new_string = str_replace('_', '-', $string);
Tout simplement.
Euh pas besoin de m'agresser :) Il y a des explications et le code concerné juste en dessous. Je l'ai mis en forme pour le plaisir des yeux.
Ni l'un ni l'autre ne fonctionne. Et je ne pense pas que ce soit un underscore vu qu'il est au milieu (sinon ça aurait fonctionné).
Merci de ta réponse.
Salut !
J'ai tester sur le lien que nous a filer @Blobby ce bout de code
$string = "j'ai envie de tester un code_postal";
$new_string = str_replace(["'","_"], [" ","-"], $string);
echo $new_string;
ça me retourne : "j ai envie de tester un code-postal".
ça marche non ?
Merci à tous pour vos réponses !
@Blobby Ahah voilà je cherchais le nom merci beaucoup :) Quand j'execute le code sur ton site je ne trouve pas ou est le résultat ? Du moins quand on fait : echo "truc"; ça ne m'affiche pas "truc".
Oui je recupère bien, je vais vous montrez.
@Airday strtr n'a rien donné :/
@Underscreen Je mis mon code bien proprement comme le tiens, merci. Non ça ne fonctionne pas :(
Je vais vous montrer mon code :
$title_link = get_the_title();
$title_link_f1 = str_replace([" ","é", "è", "'", "à", "–"], ["-","e", "e", "", "a", "-"], $title_link);
echo "<pre>";
var_dump(get_the_title());
var_dump($title_link);
var_dump($title_link_f1);
echo "</pre>";
Le résultat :
string(29) "cliént’t – noram"
string(29) "cliént’t-–-noram"
string(28) "client’t-–-noram"
Comment on se sert de votre site ? Une idée de mon erreur ?
Encore merci !
Bonjour,
Test avec ça
$title_link_f1 = str_replace([" ","é", "è", "'", "à", html_entity_decode('–', ENT_COMPAT, 'UTF-8')]], ["-","e", "e", "", "a", "-"], $title_link);
Merci pour vos réponses !
J'ai testé en mettant en dure $title_link et ça fonctionne très bien. Ca doit être la fonction get_the_title() qui empêche certaines choses ... Je cherche :/
Bonjour,
Toujours pas trouvé ... Je comprends pas pourquoi avec ce que sort get_the_title() on ne peut pas convertir..
Par tout hasard : ton get_the_title() ne te retournerait pas un objet ?
Si oui, le soucis peut venir de là
Merci @Kareylo pour ta réponse.
Et bien j'ai cherché dans la documentation de Wordpress mais je n'ai pas trouvé la réponse.
Si c'est un objet quelle est le traitement à effectuer ? Merci !
Si c'est du wordpress, ça te retourne juste une chaine de caractère, donc c'est bizarre que ça ne passe pas...
Pourtant je me contente de faire cela
$title_link = get_the_title();
$title_link_f1 = $title_link;
$title_link_f2 = str_replace([" ","é", "è", "'", "’", "à", "–"], ["-","e", "e", "", "", "a", "-"], $title_link_f1);
echo "<pre>";
var_dump($title_link);
var_dump($title_link_f2);
echo "</pre>";
Il y a une alternative à get_the_title() ?
Bonjour,
Je m'avance sans avoir testé mais tu as éventuellement besoin de passer par la librairie PHP mbstring. http://php.net/manual/fr/ref.mbstring.php
Pour cela tu dois t'assurer qu'elle est active :
1/ créé un fichier info.php avec le code suivant :
<?php
phpinfo();
2/ vérifié que tu as bien une section mbstring dedans.
3/ si c'est pas le cas, il faut l'activer. Si tu nous donnes ton environnement (Windows XAMPP, Mac MAMP, Debian PHP FPM ?), je pourrais t'aider.