Suppression des articles d'une chaine

zuzen -  
 zuzen -
Bonjour,
Je cherche depuis un bon moment mais je n'arrive pas à trouver

Comment supprimer les articles d'une chaîne de caractères avec php

Si j'ai :
$str="Les jours de demain";
ou bien
$str="La fille d'à côté";

Obtenir :
$res = "jours de demain";
ou encore :
$res = "fille d'à côté";

Merci bien !
A voir également:

12 réponses

IdleMan Messages postés 254 Statut Membre 60
 
$res =str_replace("Les jours de demain", "jours de demain ",$str);

echo $res ;


idem pour la sconde phrase : )

Explication :

La fonction str_replace(); prend 3 arguments , le premier est le mot a remplacer , le second est le mot qui remplace , le troisieme est la chaine dans laquelle il faut effectuer les remplacements .
0
zuzen
 
Au fait, $str peut prendre d'autres valeurs, pas necessairement "Les jours de demain"
0
IdleMan Messages postés 254 Statut Membre 60
 
Dans quel contexte veut tu supprimer des caracteres ?

tu peut remplacer

$res =str_replace("Les jours de demain", "jours de demain ",$str);

echo $res ;

par

$aremplacer="Les jours de demain";
$remplacement="jours de demain ";

$res =str_replace($aremplacer, $remplacement ,$str);

echo $res ;

et remplacer juste les deux variables .

Donne moi des precision sur l'utilisation que tu veut en faire .
0
zuzen
 
En fait, $str peut prendre n'importe quel valeur, c'est un titre pris d'une base de données et il me faut enlever les articles s'il y a, en tenant compte que les articles peuvent être "l'", "la", "les", "unes", "un" etc.

Merci de votre aide
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
IdleMan Messages postés 254 Statut Membre 60
 
Dans ce cas c'est très simple , lorsque tu recupere ton titre tu le sotck dans une variable , ici nous la nommons $title

voila le code :

$title =str_replace("le", "",$title);
$title =str_replace("la", "",$title);
$title =str_replace("les", "",$title);
$title =str_replace("Le", "",$title);
$title =str_replace("La", "",$title);
$title =str_replace("Les", "",$title);

echo $title ;

La le code est tres simplifiée pour que tu comprenne , donc pas tres pro (repetition de la fonction et des variables)

tu peut faire ça sous forme de tableau c'est deja plus joli.
0
zuzen
 
Oui, j'y avais pensé mais cela va supprimer tous les articles partout dans le titre mais je ne veux que supprimer le premier.

Par exemple le $titre="L'homme de l'avenir"
donnerai $res="homme de avenir"

et je voudrai $res="home de l'avenir"

Je veux seulement virer le premier article.
0
IdleMan Messages postés 254 Statut Membre 60
 
Dans ce cas tu reprend exactement le meme code mais tu utilise preg_replace au lieu de str_replace ,

preg_replace fait la meme chose mais l'applique uniquement a la premiere occurence (au premier mot clé) trouvé

pour plus d'infos :
https://phpsources.net/code/php/chaine/245_remplace-seulement-lepremiere-occurence-d-une-chaine
0
zuzen
 
Merci bien, je vais tester ça !
0
zuzen
 
Au fait c'est presque ça mais j'ai tojours un problème de substitution, voici mon code :

$str="La casa de las niñas";

$articulo = array ('/la_/', '/las_/');
$titulo=preg_replace($articulo,'', $str, 1);
echo "Titulo final: $titulo";

Et j'obtiens : "Título final: casa de niñas"

C'est à dire, que l'script me vire le premire article "la", mais aussi les second "las"

J'ai ajouté cet ligne : if ((strpos($str, $articulo))==0) pour m'assurer que le $articulo est en au debut de phrase, mais rien à faire.

Merci encore
0
IdleMan Messages postés 254 Statut Membre 60
 
Logique qu'il te vire les deux , tu a mis deux expressions dans ton tableau , il vire donc le premier la et le premier las donc il ne reste plus d'article .

Pour la solution ... je t'admet qu'il faut que j'y réfléchisse ^^ mais je suis un peu gris la donc demain la solution me viendra plus clairement :) .
0
zuzen
 
Encore merci ;)
0
zuzen
 
Au fait,
J'avais pas dit que les articles peuvent exister ou non, c'est à dire qu'il y aurait des titres avec ou sans articles.
0