Découper un chaine!

Résolu
aze555666 Messages postés 208 Date d'inscription mardi 13 avril 2004 Statut Membre Dernière intervention 26 janvier 2009 - 10 avril 2005 à 13:50
aze555666 Messages postés 208 Date d'inscription mardi 13 avril 2004 Statut Membre Dernière intervention 26 janvier 2009 - 10 avril 2005 à 16:43
slt
je cherche à découper une chaine au niveau des espaces, pour avoir chacun des mots dans une variable.
voila le code:

<?
$texte="lol et maintenant lolons";
$texte=trim($texte);


$long2=-1;
for($a=1;$a!=5;$a++){
$long1=$long2+1;
$long2=strpos($texte," ");
$$a=substr($texte,$long1,$long2);
$length=strlen($texte);
$texte=substr($texte,$long2,$length);
$texte=trim($texte);
}



for($a=1;$a!=5;$a++){print("````");$t=$$a;print($t);}


phpinfo();
?>

Le but serait qu'il me retourne "````lol````et````maintenant````lolons"
(évidemment, la présentation sert juste d'essai, je dois en fait faire des vérifications pour chaque mot avant de l'afficher, avec ou sans ajout selon qu'il est dans ma base sdl)

Or, il me retourne: "````lol````ai````ntenant lo```` "

je sais qu'il y a un pb dans ma source, mais je ne trouve pas lequel.
a moins qu'il existe une fonction permettant de faire ça d'un coup???

merci d'avance

7 réponses

tucsoufle Messages postés 1250 Date d'inscription mardi 15 juillet 2003 Statut Membre Dernière intervention 30 septembre 2007 1
10 avril 2005 à 14:29
salut,

en gros tu veut remplacer les espaces par une chaine différentes, c'est ça?

bref, si c'est ça : essaye ce code et dit moi si ça te va?

<?php

$texte="lol et maintenant lolons";

$texte = str_replace(" ","...",$texte);

echo $texte;

?>


Je te donne une idée, tu me donnes une idée, nous avons chacun deux idées.
Mon site Internet
3
aze555666 Messages postés 208 Date d'inscription mardi 13 avril 2004 Statut Membre Dernière intervention 26 janvier 2009
10 avril 2005 à 16:11
non, je ne veut pas remplacer les espaces, mais couper ma chaine à leur niveau, et mettre chacun des morceaux dans une variable. Le but est de remplacer tous les mots qui sont dans ma db par des liens, automatiquement. si part exemple le texte est "j'habite ici et pas là", et que le mot "ici" est dans ma base, alors le script doit retourner "j'habite [mot.php?mot=ici ici ]et pas là."
enfin, je vais essayer avec ta méthode: utiliser la fonction str_replace pour chaque mot de la base.
merci.
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
10 avril 2005 à 16:14
Hello;

pour decouper une chaine en fonction d'un caractere ou d'une chaine, la fonction c'est explode().

$chaine = "j'habite ici et pas là".
$tab_chaine = explode (' ', $chaine);
print_r ($tab_chaine);

cela te renvoit un tableau avec chaque mot de ta chaine.
0
tucsoufle Messages postés 1250 Date d'inscription mardi 15 juillet 2003 Statut Membre Dernière intervention 30 septembre 2007 1
10 avril 2005 à 16:19
désolé j'avais pas compris ca comme ça dans ton exemple !!!
dans ce cas, tu a la fonction explode :

<?php

$texte="lol et maintenant lolons";

$decoupage = explode(" ", $texte);

?>

$decoupage est un tableau contenant les differentes chaines

à toi de le gérer à ta maniére maintenant

Je te donne une idée, tu me donnes une idée, nous avons chacun deux idées.
Mon site Internet
0

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

Posez votre question
tucsoufle Messages postés 1250 Date d'inscription mardi 15 juillet 2003 Statut Membre Dernière intervention 30 septembre 2007 1
10 avril 2005 à 16:20
bah ! salut malalam

un peut de retard pour moi lool

Je te donne une idée, tu me donnes une idée, nous avons chacun deux idées.
Mon site Internet
0
aze555666 Messages postés 208 Date d'inscription mardi 13 avril 2004 Statut Membre Dernière intervention 26 janvier 2009
10 avril 2005 à 16:36
merci, ça marche.
0
aze555666 Messages postés 208 Date d'inscription mardi 13 avril 2004 Statut Membre Dernière intervention 26 janvier 2009
10 avril 2005 à 16:43
voilà ce que j'ai fait pendant que vous repostiez :
<?php
function liens($texte)
{


$db = mysql_connect('localhost', '', '') or die('Erreur de connexion '.mysql_error());
mysql_select_db('',$db) or die('Erreur de selection '.mysql_error());
$sql = "SELECT mot FROM mots";
$req = mysql_query($sql);
while($data = mysql_fetch_assoc($req))
{
$mot=$data['mot'];
$texte=str_replace($mot,"$mot",$texte);
}
return($texte);
}
?>

maintenant, ça marche.
0
Rejoignez-nous