Découper un chaine! [Résolu]

aze555666 208 Messages postés mardi 13 avril 2004Date d'inscription 26 janvier 2009 Dernière intervention - 10 avril 2005 à 13:50 - Dernière réponse : aze555666 208 Messages postés mardi 13 avril 2004Date d'inscription 26 janvier 2009 Dernière intervention
- 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
Afficher la suite 

Votre réponse

7 réponses

Meilleure réponse
tucsoufle 1251 Messages postés mardi 15 juillet 2003Date d'inscription 30 septembre 2007 Dernière intervention - 10 avril 2005 à 14:29
3
Merci
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

Merci tucsoufle 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 101 internautes ce mois-ci

Commenter la réponse de tucsoufle
aze555666 208 Messages postés mardi 13 avril 2004Date d'inscription 26 janvier 2009 Dernière intervention - 10 avril 2005 à 16:11
0
Merci
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.
Commenter la réponse de aze555666
malalam 10918 Messages postés lundi 24 février 2003Date d'inscription 2 mars 2010 Dernière intervention - 10 avril 2005 à 16:14
0
Merci
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.
Commenter la réponse de malalam
tucsoufle 1251 Messages postés mardi 15 juillet 2003Date d'inscription 30 septembre 2007 Dernière intervention - 10 avril 2005 à 16:19
0
Merci
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
Commenter la réponse de tucsoufle
tucsoufle 1251 Messages postés mardi 15 juillet 2003Date d'inscription 30 septembre 2007 Dernière intervention - 10 avril 2005 à 16:20
0
Merci
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
Commenter la réponse de tucsoufle
aze555666 208 Messages postés mardi 13 avril 2004Date d'inscription 26 janvier 2009 Dernière intervention - 10 avril 2005 à 16:36
0
Merci
merci, ça marche.
Commenter la réponse de aze555666
aze555666 208 Messages postés mardi 13 avril 2004Date d'inscription 26 janvier 2009 Dernière intervention - 10 avril 2005 à 16:43
0
Merci
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.
Commenter la réponse de aze555666

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.