kluthi
Goto Top

Zeichenketten aus String (Text) ausschneiden und in Array packen?

Aus einen Text sollen bestimmte Bereiche ausgeschnitten werden und in ein Array gepackt werden

Hallo,

ich habe ein Problem in php.
Ich habe ein Text der etwa so aussieht:

Text Text Text Text
Text Text Text Text
Text Text Text Text
[kommentar]
Text Text Text Text
Text Text Text Text
Text Text Text Text
[/kommentar]
Text Text Text Text
Text Text Text Text
Text Text Text Text
Text Text Text Text
Text Text Text Text
[kommentar]
Text Text Text Text
Text Text Text Text
Text Text Text Text
[/kommentar]
Text Text Text Text
Text Text Text Text
Text Text Text Text


Der ganze Text befindet sich in einem String.
Jetzt will ich alle Teile zwischen [kommentar] und [/kommentar]
ausschneiden und in ein Array packen, sodass ich die verändern kann.

Ich hoffe das ist verständlich und hoffe das mir jemand helfen kann

Gruß kluthi

Content-ID: 62473

Url: https://administrator.de/forum/zeichenketten-aus-string-text-ausschneiden-und-in-array-packen-62473.html

Ausgedruckt am: 23.12.2024 um 03:12 Uhr

kluthi
kluthi 27.06.2007 um 14:18:19 Uhr
Goto Top
das hilft nicht wirklich, den es kann ja auch sein das nicht nur 2 sondern 3 container in dem text sind.
EvilMoe
EvilMoe 27.06.2007 um 14:48:38 Uhr
Goto Top
explode ist schon richtig das speicher dir immer ab [kommentar] alles in einen array.
Dieses Beispiel sollte funktionieren
// $data sollte den kompletten string enthalten

$str = explode('[kommentar]' , $data);  

$kommentar=array();
foreach( $str as $id => $str)
{
	$pos=strpos($str, '[/kommentar]');  
	$kommentar=substr($str, 0, $pos);
}

echo var_dump($kommentar);
kluthi
kluthi 27.06.2007 um 16:02:39 Uhr
Goto Top
ok, danke das geht.

Kann mir den auch noch einer sagen, wie ich dann die Kommentar-ausschnitte, nachdem ich die verändert habe, wieder in den string einfügen kann? Also an der stelle, an der sie waren!?
EvilMoe
EvilMoe 28.06.2007 um 15:12:38 Uhr
Goto Top
Sie wurden doch nie entfernt. Die Variable $data enthält immernoch den kompletten String inclusive den Kommetaren.
kluthi
kluthi 28.06.2007 um 16:05:15 Uhr
Goto Top
wenn ich den inhalt dann veränder, ist der dan an der gleichen stelle auch verändert!?
EvilMoe
EvilMoe 28.06.2007 um 16:14:42 Uhr
Goto Top
Ohh sry hab dich falsch verstanden. Was du nun vor hast funktioniert nach dem selben Prinzip, ausser das du nun in der Schleife den Kommetar nicht in einen Array speicherst sondern ersetzt (str_replace). SOllte ungefär dann so aussehen.

$str = explode('[kommentar]' , $data);  

$kommentar=array();
foreach( $str as $id => $str)
{
    $pos=strpos($str, '[/kommentar]');  
    $kommentar=substr($str, 0, $pos);
   
   // ersetzt den alten mit dem neuen kommentar
    $ndata = str_replace($kommentar, 'Der neue Kommentar', $data);  

}
// $ndata enthält jetzt den String mit den neuen Kommentar