[RESOLU]couper un string

couper un string [RESOLU] - PHP - Programmation

Marsh Posté le 17-08-2009 à 20:01:22    

Bonjour,  
 
J'aimerais couper des mots contenu dans un string suivant un groupe de caractere contenu dans ce srting et les mettre dans un tableau, par exemple:
sdsdsd 1111 dsdsdsd 1111 sdsdsdd 11111
 
 
Ne couper que lorsqu'il y a des 1111
Le resultat donnerait dans un tableau:
 
sdsdsd dsdsdsd sdsdsdd  
 
Merci


Message édité par brainoutsourcing le 29-08-2009 à 10:28:58

---------------
Externalisation de travaux web et graphiques (au minimum 25% d'économies constatées par rapport à la France) => www.brainoutsourcing.com
Reply

Marsh Posté le 17-08-2009 à 20:01:22   

Reply

Marsh Posté le 17-08-2009 à 20:03:41    

tu pourrais faire :  
explode(' 1111 ', $str)
 
apres si ton nombre est different, un coup de regexp et ca fera l'affaire

Reply

Marsh Posté le 19-08-2009 à 06:00:30    

En fait ma string est compise de la maniere suivante :
wdsdssada <BR> dsddsd <BR> dsdsd <BR>
 
Tout ce texte est contenu dans un seul champ de ma BDD, j'ai besoin de creer des champs independants pour chaque elements contenu entre les <BR>
 
J'ai donc besoin d'eclater cette string suivant les separateurs <BR>
 
est ce que cela peut marcher avec l'explode ?


---------------
Externalisation de travaux web et graphiques (au minimum 25% d'économies constatées par rapport à la France) => www.brainoutsourcing.com
Reply

Marsh Posté le 19-08-2009 à 09:18:21    

brainoutsourcing a écrit :

est ce que cela peut marcher avec l'explode ?


est-ce que tu as essayé?


Message édité par pataluc le 19-08-2009 à 09:18:31
Reply

Marsh Posté le 19-08-2009 à 10:02:24    

moi j'utilise la fonction split, ca marche trés bien pour faire ce genre de chose
apres peut etre que l'autre est mieux, je la connais pas.

Reply

Marsh Posté le 19-08-2009 à 11:33:08    

Je vais essayer split en effet.
 
MErci pour le retour


---------------
Externalisation de travaux web et graphiques (au minimum 25% d'économies constatées par rapport à la France) => www.brainoutsourcing.com
Reply

Marsh Posté le 19-08-2009 à 11:45:46    

Les filles n'aiment pas qu'on coupe leur string... (ça c'est fait)  :D  
 
Sinon... je préfère utiliser explode() qui est plus rapide, de manière générale, que split().
Mais bon, après ça reste du "fignolage"... :)

Reply

Marsh Posté le 19-08-2009 à 17:42:47    

AAhhh !!
Ca ne semble pas marcher chez moi .
 
Jai ce code :
 
$req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());  
$data = mysql_fetch_array($req);  
mysql_free_result ($req);  
mysql_close ();  
 
 
echo "data";
echo $data['product_attribute'];
$res = $data['product_attribute'];
echo "res" ;
echo $res;
 
//$tableau=split('<BR>',$chaine);
$tableau=explode('<br/>', $chaine) ;
echo "TABLEAU";
echo $tableau [3];
 
 
 
Le resultat donne  
 
sdssdsdsd
sd
sd
ssd
s
dss
ds
d
 
Mais le echo Tableau n'affiche rien


---------------
Externalisation de travaux web et graphiques (au minimum 25% d'économies constatées par rapport à la France) => www.brainoutsourcing.com
Reply

Marsh Posté le 19-08-2009 à 18:35:21    

si "tableau" est un array, c'est normal.
 
il faut faire print_r($tableau) pour l'afficher.


---------------
NewsletTux - outil de mailing list en PHP MySQL
Reply

Marsh Posté le 19-08-2009 à 20:06:51    

il m'affiche cela now:
 
Array ( [0] => )


---------------
Externalisation de travaux web et graphiques (au minimum 25% d'économies constatées par rapport à la France) => www.brainoutsourcing.com
Reply

Marsh Posté le 19-08-2009 à 20:06:51   

Reply

Marsh Posté le 20-08-2009 à 00:17:25    

tu fais $tableau=explode('<br/>', $chaine) ; mais es-tu sûr que $chaine contienne <br/> et pas <br> ou <BR> ou <br /> ? (soit dit en passant, il me semble qu'il vaut mieux écrire <br /> à <br/> )


---------------
NewsletTux - outil de mailing list en PHP MySQL
Reply

Marsh Posté le 21-08-2009 à 07:13:46    

Totu d'abord merci pour ces reponses:
 
Ma chaine contenu dans le champ de la base de donnee ressemble a cela:
 
First Name: <br/> Surname: <br/> E-mail: <br/> Pick Up Time: <br/> Flight Time: <br/> Drop off at: <br/> Return Time: <br/> Return Flight Time: <br/> Picking up from:


---------------
Externalisation de travaux web et graphiques (au minimum 25% d'économies constatées par rapport à la France) => www.brainoutsourcing.com
Reply

Marsh Posté le 21-08-2009 à 09:05:40    

Exact ca marche now  
 
thanks
 
 
Encore une question:
 
Comme vous pouvez le voir chaque case de mon tableau va contenir:
 
 
 [ AAAAA : BBBBB]  
 
J'ai besoin de former des couples car comme vouspouvez vous en doutez les valeurs entre chaque BR sont  
- Intitule d'un champ de saisie
- Valeur saisie dans ce champ par l'utilisateur
 
 
Je vais avoir besoin de generer dynamiquement (car le nombre d le formulaire de saisie au format HTML afin que l'utilisateur puisse faire des modifs (un formulaire Edit en fait) et cela en fonction :
- du nombre de champs present
- en remplissant les champs de saisie
 
J'ai donc besoin de faire un tableau avec deux cases pour chaque valeurs contenues entre chaque BR
 
Comment je peux faire ca ?


Message édité par brainoutsourcing le 21-08-2009 à 09:09:24

---------------
Externalisation de travaux web et graphiques (au minimum 25% d'économies constatées par rapport à la France) => www.brainoutsourcing.com
Reply

Marsh Posté le 21-08-2009 à 14:19:28    

j'ai avance dans mon problem et j'ai ecris le code suivant:
 
$tableau_ini=explode('<br/>', $res);
 
$num_elements_ini=sizeof($tableau_ini);
 
     for($i=0;$i < $num_elements_ini ;$i++)
     {
     $tableau1=explode(':', $tableau_ini [$i]);    
     $num_elements1=sizeof($tableau1);
          for($j=0;$j < $num_elements1 ;$j++)
          {
           // nombre = xxx;
           if ($j%2 == 0)  
           {
           $tableau2_pair [$j]=$tableau1 [$j];
           }  
           else  
           {
           $tableau2_impair [$j]=$tableau1 [$j];
           }
 
          }        
           
           
           //$tableau2_pair[$i]=explode(':',$tableau1[2*$i]);
           //$tableau2_impair[$i]=explode(':',$tableau1[2*$i+1]);
         
     }
     
 
echo "tableau_pair2";
print_r($tableau2_pair);
 
 
echo "tableau_impair2";
print_r($tableau2_impair);
 
 
Le resulatat ca me donne :
 
tableau_pair2Array ( [0] => File 3 Upload ) tableau_impair2Array ( [1] => No File Uploaded )  
 
Comment se fait il qu'il ne garde pas le reste des infos ?


---------------
Externalisation de travaux web et graphiques (au minimum 25% d'économies constatées par rapport à la France) => www.brainoutsourcing.com
Reply

Marsh Posté le 21-08-2009 à 17:44:22    

sachant que :
- tu as la condition if ($j%2 == 0)  
- tu incrémentes j de 1 en 1 ;
 
ton modulo sera donc toujours 0 ou 1, tu ne pourras avoir que 2 valeurs au plus ...


Message édité par NewsletTux le 21-08-2009 à 17:44:50

---------------
NewsletTux - outil de mailing list en PHP MySQL
Reply

Marsh Posté le 21-08-2009 à 18:42:35    

Ah zut, j'ai pique cette partie du code sur internet, en fait j'ai besoin de gerer le pair et l'impair et cette condition etait le faire d'avoir un j pair ?


---------------
Externalisation de travaux web et graphiques (au minimum 25% d'économies constatées par rapport à la France) => www.brainoutsourcing.com
Reply

Marsh Posté le 21-08-2009 à 19:51:26    

J'arrive enfin a faire ce que je veux, et voici le code que j'ai:
for($i=0;$i < $num_elements_ini ;$i++)
     {
     $tableau1[$i]=explode(':', $tableau_ini[$i]);
 
Ensuite je recupere mes valeurs comme suit $tableau[1][1] par exemple
 
J'en arrive donc a un point suivant qui est l'affichage de ces variables dans un champ de saisie ou une textarea
 
Pour cela j'utilise cette ligne sur laquelle je vais devoir operer une boucle:
 
echo "<form method=\"POST\" action=\"modifier.php\"><p>Texte : <textarea type=\"text\" name=\"texte\" value=\"" . $texte . "\"></textarea><br /><input type=\"submit\" value=\"Modifier\"></p></form> ";
 
 
Cependant, je pense qu'il y a un probleme dans la syntaxe car la valeur ne s'affiche pas dans le champ.
 
Quelqu'un peut m'aider?
 


---------------
Externalisation de travaux web et graphiques (au minimum 25% d'économies constatées par rapport à la France) => www.brainoutsourcing.com
Reply

Marsh Posté le 21-08-2009 à 20:38:57    

Bon ba finalement ca marche mon affaire j'arrive a pre remplir et a generer mes champs grace a ca:
 
for($i=0;$i < $num_elements_tableau1 ;$i++)
     {
$champ[i]=trim ($tableau1[$i][1]);
$title[$i]=$tableau1[$i][0];
echo "<form method=\"POST\" action=\"modifier.php\"><p>".$title[$i]. " : <textarea name=\"texte\">" .$champ[i]. "</textarea><br /><input type=\"submit\" value=\"Modifier\"></p></form> ";  
 
}
?>
 
Je dois faire la reconstruction de la chaine now pour ensuite tout renvoyer a la base avec un update


Message édité par brainoutsourcing le 21-08-2009 à 20:39:57

---------------
Externalisation de travaux web et graphiques (au minimum 25% d'économies constatées par rapport à la France) => www.brainoutsourcing.com
Reply

Marsh Posté le 23-08-2009 à 17:56:43    

Pour couper un string faut utiliser sa byte :o

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed