nicht schlecht!
nur leider ist das mit der stringflexibilitaet sogar so weit...
$str = "1;2'dfd','sdf';sd';3;4'felix'"
ich hab jetzt aber mitlerweile eine eigene (leider sehr komplizierte loesung)
----------------------------------------
$article_array = preg_split("(;[1-7])",$article_str);
preg_match_all("(;[1-7])",$article_str,$matches,PREG_OFFSET_CAPTURE);
for($i=1;$i<count($article_array);$i++)
{
if(strlen($article_array[$i])==0)
{
$article_array[$i] = substr($matches[0][$i-1],1);
}
else
{
$pos = strpos($article_str,$article_array[$i]);
$article_array[$i] = substr($article_str,$pos-1,1).$article_arra[$i];
}
}
----------------------------------------
wer lust hat kann sich es mal reinziehen, wer nicht verpasst auch nichts grosses (ist eher ein gewurschtel glaub ich)
danke an alle fuer ihren rat!
wer jedoch noch konkret eine regex auf lager hat mit der man das problem dann in einer zeile loesen kann: her damit!!!!
preg_split() regex
Einklappen
X
-
vielleicht versteh ich das problem wirklich nicht so richtig
aber noch brauchst du keine regex:Code:$str ="1'abc';7'def';3'ghi';4'jkl';5'mno'"; $str ="1'abc';4'jkl';5'mno'"; $str = "1'\"a'aaa;aa';2'bbb;b;b';5'c;ccc'"; $testarray = explode("';",$str); for($i=0;$i<count($testarray);$i++) { if($i == count($testarray)-1) { echo $i.": ".$testarray[$i]."<BR>"; } else { echo $i.": ".$testarray[$i]."'<BR>"; } }
Einen Kommentar schreiben:
-
ABER SIE SEHEN NICHT IMMER SO AUS!
sorry, aber stellt euch einfach vor das
$str = "1'"a'aaa;aa';2'bbb;b;b';5'c;ccc'"
und dann koenne a,b,c noch sonst welche sondzezeichen sein,und die ausgabe soll immer noch:
i: 1'"a'aaa;aa'
i: 2'bbb;b;b'
i: 5'c;ccc'
sein.
darum brauch ich ja die regex!!!!!
das einzige was in diesen sonderzeichen und sonst welche nicht einhalten ist (als regex ausgedrueckt): ";([1-7])" oder "#;([1-7]{1})#" oder wie man das sonst noch darstellen kann!
danke fuer antwortenZuletzt geändert von funkyflixx; 24.06.2003, 18:03.
Einen Kommentar schreiben:
-
solange dein string so aussieht, wie die beiden beispiele,
reicht auch ein explode() mit dem trennzeichen ";"
Einen Kommentar schreiben:
-
naja,
leider ist mein string schon ein bischen variable
sollte also fuer
z.B:
--------------------------
$str ="1'abc';4'jkl';5'mno'";
mit ergebnis:
i:1'abc'
i:4'jkl'
i:5'mno'
----------------------------
auch funktionieren......
geht aber so nicht!
danke trotzdem fuer deine bemuehnungen!
Einen Kommentar schreiben:
-
wie wärs damit:
Code:$str ="1'abc';2'def';3'ghi';4'jkl';5'mno'"; $testarray = preg_split("#;([1-7]{1})#",$str); for($i=0;$i<count($testarray);$i++) { echo "i: ".$i." ".$testarray[$i]."<BR>"; }
Einen Kommentar schreiben:
-
preg_split() regex
Hallo,
ich moechte einen string in ein array verwandeln, dabei moechte ich das bei jedem ; mit einer zahl dahinter ein neues arrayelement anfeangt.
waere es dann auch noch moeglich das in den arrayelementen noch die zahl enthalten ist die hinter dem ; steht (also das teile des trennoperators gleichzeitig arrayelement werden)?
prog:
------------------------------------------
$str ="1'abc';2'def';3'ghi';4'jkl';5'mno';
$testarray = preg_split("bekomm ich nicht hin hier!",$str);
foreach($testarray as $i)
{
echo "i: ".$i."<BR>";
}
-----------------------------------------
so das die ausgabe dann
i: 1'abc'
i: 2'def'
i: 3'ghi'
i: 4'jkl'
i: 5'mno'
waere. ich hab es mit ";([1-7]){1}" und aehnlichem versucht und es leider nicht hinbekommen!
Danke.
Ps: es ist wichtig das der trennparamenter ; mit ner zahl dahinter ist und nicht nur ; alleine!Zuletzt geändert von funkyflixx; 24.06.2003, 16:34.Stichworte: -
Einen Kommentar schreiben: