mit str_replace machbar?

splat

Erfahrenes Mitglied
Hallo,

ich habe hier jede Menge dynamischen html Content in einer einzigen Variable, der in etwa so aussieht:

<p class="id">23</p>
<p class="id">6</p>
<p class="id">361</p>
usw...

Wie man sieht, ist dort alles gleich bis auf die ID.

Nun würde ich gerne
Code:
class="id">xxx
mit
Code:
class="id-xxx">xxx
ersetzen lassen.
Das müsste doch sicher mit str_replace irgendwie gehen, nur komme ich leider nicht drauf, wie ich das anstellen soll.. :)

Kann mir jemand einen Tip geben?

Gruß,
Marc
 
Aus der php-Online-Doku (die Du doch wohl kennst, oder ?):

PHP:
// Liefert: Sie sollten taeglich Pizza, Bier und Eiscreme essen.
$phrase = "Sie sollten taeglich Fruechte, Gemuese und Ballaststoffe essen.";
$gesund = array("Fruechte", "Gemuese", "Ballaststoffe");
$lecker = array("Pizza", "Bier", "Eiscreme");

$newphrase = str_replace($gesund, $lecker, $phrase);

Heißt für Dich:
PHP:
// in $meintext ist Dein html-Content gespeichert
$suchstring = "id";
$ersatz = "id-xxx";
$meintextneu = str_replace($suchstring, $ersatz, $meintext);

Sollte das nicht das Problem gewesen sein, formulierte bitte Deine Frage etwas genauer.

Gruß
Oliver
 
HTML:
<p class="id">23</p>
<p class="id">6</p>
<p class="id">361</p>

Daraus soll:

HTML:
<p class="id-23">23</p>
<p class="id-6">6</p>
<p class="id-361">361</p>

werden.

PHP:
<?php
$bla = '<p class="id">23</p>
<p class="id">6</p>
<p class="id">361</p>';
$new = explode("\n", strip_tags($bla));

$temp = "";
foreach($new as $id) {
	$temp .= "<p class='id-".$id."'>".$id."</p>\n";
}
echo $temp;
?>

Funktioniert zwar, ABER er macht sehr seltsame HTML Fehler, die ich mir nicht erklären kann (sinnlose Zeilenumbrüche im Source).

Ausgabe ist:
HTML:
<p class='id-23
'>23
</p>
<p class='id-6
'>6
</p>
<p class='id-361'>361</p>
Vielleicht hat ja jemand eine passende Idee... Habe etwas rumprobiert, aber ich geh jetzt erstmal frühstücken ;)
 
Zuletzt bearbeitet:
Hallo!
Vielleicht hat ja jemand eine passende Idee... Habe etwas rumprobiert, aber ich geh jetzt erstmal frühstücken ;)
PHP:
foreach($new as $id) {
    $id = trim($id);
    $temp .= "<p class='id-".$id."'>".$id."</p>\n";
}
Gruss Dr Dau
 
Vielen Dank an alle für die zahlreichen und hilfreichen Antworten!
Flex hat genau das getroffen, wonach ich gesucht habe. Jetzt funktioniert alles wunderbar :)

Gute Nacht ;-)
 
Zurück