String zerlegen und wieder zusammensetzen

ulf123

Erfahrenes Mitglied
hallo

Ich habe einen String mit ganz vielen Optionen..

z.B so

bla1 "a"
bla2 "b"
bla3 "c"
bla4 "d"
bla5 "e"

jetzt will ich bei - bla2 "b" - das b einzeln auslesen.
das ist nur ein kleines Prob das könnt ich mit explode() machen

bloß wie ersetz ich das b durch einen anderen wert.. und füge den String wieder zuammen

danke MfG Ulf
 
hmm ich komm da net ganz mit zu recht
$string ='bla "a" \n bla2 "b" \n bla3 "c" \n bla4 "d" \n bla5 "e" \n ';

$teile = explode('bla2 "', $string);



so jetzt hab ich

$teile[0] = 'bla "a" \n';
$teile[1] = 'b" \n';

wie bekomm ich das b jetzt allein?
 
Ich kapiere nicht was du vorhast, aber ich würde es in einen Array packen:
PHP:
$array=array("bla" => "a","bla2" => "b","bla3" => "c","bla2" => "b","bla4" => "d","bla5" => "e");
und dann kannste es so ausgeben :

echo $array['bla2'];

und in einen String kiregste es so wieder :
PHP:
foreach ($array as $key => $row)
$string.=$key.' "'.$row.'" \n';
}
 
Vielleicht wäre es noch einfacher mit preg_replace(), wenn du was ersetzen willst, sonst preg_match():

PHP:
$str =  
'bla1 "a"
bla2 "b"
bla3 "c"
bla4 "d"
bla5 "e"';

$array = explode("\n", $str);
foreach($array as $key=>$value) {
     $array[$key] = preg_replace('!bla\d"(.*?)"!', "", $value); //Müsste eigentlich so stimmen, bin aber auch nicht so der RegExp-Profi
}

Dimension hat gesagt.:
Die preg_*-Funktionen solten eher hergenommen werden, als die ereg*-Funktionen, da sie schneller sind:
phpmanual hat gesagt.:
Anmerkung: Die Funktion preg_match(), die eine zu Perl kompatible Syntax regulärer Ausdrücke verwendet, ist häufig die schnellere Alternative zu ereg().
 
neh neh das problem ist ja das es eine config ist..

so wenn ich es aus der datei lese dann kann ich zeile für zeile checken
das würde so aussehn
PHP:
$filename = "temp.txt";
$suche = 'bla2';
$handle = fopen ($filename, "r");
while (!feof($handle)) {
     $buffer = fgets($handle, 4096);
         if(strpos($buffer, $suche)!==false){
         $anfang = strpos($buffer, '"');
         $ende = strrpos($buffer, '"');
         $string = substr($buffer, $anfang+1, $ende-$anfang-1);
         echo $string;
         }
}
fclose ($handle);


jetzt hab ich das aber nicht in einer datei sondern in einer datenbank in einem LONGTEXT feld.
 
Zurück