couper un string [RESOLU] - PHP - Programmation
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
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 ?
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é?
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.
Marsh Posté le 19-08-2009 à 11:33:08
Je vais essayer split en effet.
MErci pour le retour
Marsh Posté le 19-08-2009 à 11:45:46
Les filles n'aiment pas qu'on coupe leur string... (ça c'est fait)
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"...
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
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.
Marsh Posté le 19-08-2009 à 20:06:51
il m'affiche cela now:
Array ( [0] => )
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/> )
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:
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 ?
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 ?
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 ...
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 ?
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?
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
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