|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | |
|
Membre habitué
![]() Inscription : juin 2006 Messages : 264 ![]() |
Bonjour,
Je voulais savoir si preg_match() et str_replace() utilisés comme ci-dessous# sont compatibles, Code :
$fichier = str_replace(preg_match("#([0]{1})#", $fichier), "RFQ", $fichier); Citation:
En vous remerciant |
|
|
|
00
|
|
|
#2 |
|
Invité(e)
Messages : n/a ![]() |
Bonjour,
que vient faire ton preg_match ici ? tu en a nullement besoin pour faire ce que tu as à faire. un str_replace('0','RFQ',$fichier) suffit amplement. $fichier contient quoi ? si tu veux que $fichier contienne tout le contenu de ton fichier CSV alors il faut faire un : Code :
str_replace('0','RFQ',file_get_contents('chemin_fichier')) P.S : ton erreur est tout à fait normal est très explicite, il attend une variable de type string et tu lui met le retour de la fonction preg_match, donc pas correct. Cordialement. |
00
|
|
|
#3 |
|
Membre Expert
![]() Inscription : février 2005 Messages : 1 797 ![]() |
Salut,
oui mais à priori ca ne vas pas faire ce que tu veux car la tu remlplaces la valeur de retour de preg_match qui est le nombre de fois où le masque a été trouvé. Pourquoi tu n'utilises pas directement preg_replace ? [edit]+ 1 pour le str_replace vu la complexité du motif utilisé |
|
|
00
|
|
|
#4 |
|
Membre habitué
![]() Inscription : juin 2006 Messages : 264 ![]() |
Oui mais si il ya d'autre tarifs, ex : 10(espace)990->1RFQ(espace)99RFQ est remplacé aussi
|
|
|
00
|
|
|
#5 |
|
Invité(e)
Messages : n/a ![]() |
Dans ce cas donne le contenu de ton fichier CSV, car sa change tout.
Cordialement. |
00
|
|
|
#6 |
|
Membre habitué
![]() Inscription : décembre 2005 Messages : 137 ![]() |
Code :
$text = str_replace (";0;",";RFQ;",$text); |
|
|
00
|
|
|
#7 |
|
Membre habitué
![]() Inscription : juin 2006 Messages : 264 ![]() |
c'est pas que je chipote mais le bricolage ça tient pas longtemps, ex :
si la chaine contient ;0;0;0;0; on obtient ;RFQ;0;RFQ;0; parce que le suivant est 0; dont si on recherche tous les 0; et il suffit qu'il y ait un tarif qui se termine par 0 (ex:1 990) et la c'est pas bon non plus... Résultat : ;RFQ;RFQ;RFQ;RFQ;1 99RFQ; Une regex est donc appropriée. |
|
|
00
|
|
|
#8 |
|
Membre habitué
![]() Inscription : décembre 2005 Messages : 137 ![]() |
Faut savoir
Tu veux remplacer tous les 0 de ton fichier (0 => RFQ, 10 =>1RFQ, 506 =>5RFQ6, etc...) ou seulement le "zero" seul (0 => RFQ, 502 => 502, etc...) ? |
|
|
00
|
|
|
#9 | |
|
Membre habitué
![]() Inscription : juin 2006 Messages : 264 ![]() |
oui
Citation:
|
|
|
|
00
|
|
|
#10 |
|
Membre habitué
![]() Inscription : décembre 2005 Messages : 137 ![]() |
Oui ? Oui à quoi ?
|
|
|
00
|
|
|
#11 | ||
|
Membre Expert
![]() Inscription : février 2005 Messages : 1 797 ![]() |
Y a surement plus simple mais c'est ce qui me vient à l'esprit :
Code :
|
||
|
|
00
|
|
|
#12 |
|
Membre chevronné
![]() Étudiant Inscription : août 2005 Messages : 632 ![]() |
Perso je t'aurai plus mis ça (pour la fonction de Djakisback) :
Code :
$str = preg_replace_callback('`[^;]+`', 'replace', $str);
|
|
|
00
|
|
|
#13 |
|
Membre habitué
![]() Inscription : juin 2006 Messages : 264 ![]() |
oui ça fonctionne mieux comme ça.
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com