[PHP] preg_replace vervang inhoud van html tag

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Hoi,

ik ben hier al een hele poos aan het klooien om een preg_replace voor elkaar te krijgen in PHP.

Ik wil de inhoud van een bepaalde htmltag (<h1 class="title"></h1>) met classname zoeken binnen een string en deze vervangen door een andere inhoud (dmv preg_replace)

code:
1
2
$content = '<body><h1 class="title">oorspronkelijke inhoud</h1></body>';
$newh1 = "Nieuwe inhoud";


wie kan me hier even mee helpen? thx ;)

[ Voor 7% gewijzigd door Verwijderd op 28-10-2008 21:13 ]


Acties:
  • 0 Henk 'm!

  • Icekiller2k6
  • Registratie: Februari 2005
  • Laatst online: 18:29
zoek op regex...
bestaat volgens mij ook een php functie voor
http://be2.php.net/strip-tags

[ Voor 70% gewijzigd door Icekiller2k6 op 28-10-2008 21:19 ]

MT Venus E 5KW (V151) P1 HomeWizard | Hackerspace Brixel te Hasselt (BE) - http://www.brixel.be | 9800X3D, 96GB DDR5 6000MHZ, NVIDIA GEFORCE 4090, ASRock X670E Steel Legend, Seasonic GX1000


Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

Dat is zo te zien allang gebeurd, anders was de topicstarter niet uitgekomen op preg_replace. ;)
bestaat volgens mij ook een php functie voor
http://be2.php.net/strip-tags
Die haalt alle HTML-tags weg, die vervangt ze niet "door iets anders."

@topicstarter: wat had je zelf al geprobeerd en wat gaat daar precies mee mis? Zie ook Programming Beleid - De "quickstart" :)

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
-NMe- schreef op dinsdag 28 oktober 2008 @ 21:24:
[...]

Dat is zo te zien allang gebeurd, anders was de topicstarter niet uitgekomen op preg_replace. ;)

[...]

Die haalt alle HTML-tags weg, die vervangt ze niet "door iets anders."

@topicstarter: wat had je zelf al geprobeerd en wat gaat daar precies mee mis? Zie ook Programming Beleid - De "quickstart" :)
Ik heb al een uur trial & error met alle verschillende vormen van regex achter de rug... ben er tenslotte ook niet echt een kampioen in. Kan iemand me hiermee op gang helpen?

Acties:
  • 0 Henk 'm!

  • Icekiller2k6
  • Registratie: Februari 2005
  • Laatst online: 18:29
-NMe- schreef op dinsdag 28 oktober 2008 @ 21:24:
[...]

Dat is zo te zien allang gebeurd, anders was de topicstarter niet uitgekomen op preg_replace. ;)

[...]

Die haalt alle HTML-tags weg, die vervangt ze niet "door iets anders."

@topicstarter: wat had je zelf al geprobeerd en wat gaat daar precies mee mis? Zie ook Programming Beleid - De "quickstart" :)
ah gezien zijn voorbeeld:
PHP:
1
2
$content = '<body><h1 class="title">oorspronkelijke inhoud</h1></body>';
$newh1 = "Nieuwe inhoud";

leek het me dat gewoon alles weg moet..

MT Venus E 5KW (V151) P1 HomeWizard | Hackerspace Brixel te Hasselt (BE) - http://www.brixel.be | 9800X3D, 96GB DDR5 6000MHZ, NVIDIA GEFORCE 4090, ASRock X670E Steel Legend, Seasonic GX1000


Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

Verwijderd schreef op dinsdag 28 oktober 2008 @ 21:26:
[...]

Ik heb al een uur trial & error met alle verschillende vormen van regex achter de rug... ben er tenslotte ook niet echt een kampioen in. Kan iemand me hiermee op gang helpen?
Dat kan, wel, maar ik denk dat het zinniger is als we je erop wijzen wat je fout doet en waarom, waardoor het ook handig is als je dus post wát je al gedaan hebt. Post dus even een (of meer) regexen die je al geprobeerd hebt, daar ga je meer van leren dan wanneer we het "voorzeggen". :)
Haar. :P

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

  • MueR
  • Registratie: Januari 2004
  • Laatst online: 14:53

MueR

Admin Tweakers Discord

is niet lief

offtopic:
-NMe- betwetert

Anyone who gets in between me and my morning coffee should be insecure.


Acties:
  • 0 Henk 'm!

  • OxiMoron
  • Registratie: November 2001
  • Laatst online: 08-07 14:27
PHP:
1
2
3
4
$content = '<body><h1 class="title">oorspronkelijke inhoud</h1></body>';
$newh1 = 'Nieuwe inhoud';

$newcontent = preg_replace("/(<h1 class=\"title\">)[^<]*(<\/h1>)/iu",'$1'.$newh1.'$2',$content)


Zoiets dan.

Albert Einstein: A question that sometime drives me hazy: Am I or are the others crazy?


Acties:
  • 0 Henk 'm!

  • pedorus
  • Registratie: Januari 2008
  • Niet online
(Jammer dat het nu is 'voorgezegd'.)
En dan matched net niet alles, of juist dingen in comments die je niet wil. regexp is hier eigenlijk gewoon niet voor.
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
$content = '<body><h1 class="title">oorspronkelijke inhoud</h1></body>';
$newh1 = "Nieuwe inhoud";

$doc = new DOMDocument();
$doc->loadHTML($content);

$h1s = $doc->getElementsByTagName('h1');
foreach($h1s as $h1) {
    if ($h1->getAttribute('class') == 'title') {
        $h1->nodeValue = $newh1;
    }
}

echo $doc->saveHTML();

Vitamine D tekorten in Nederland | Dodelijk coronaforum gesloten


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
pedorus schreef op woensdag 29 oktober 2008 @ 09:55:
(Jammer dat het nu is 'voorgezegd'.)
En dan matched net niet alles, of juist dingen in comments die je niet wil. regexp is hier eigenlijk gewoon niet voor.
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
$content = '<body><h1 class="title">oorspronkelijke inhoud</h1></body>';
$newh1 = "Nieuwe inhoud";

$doc = new DOMDocument();
$doc->loadHTML($content);

$h1s = $doc->getElementsByTagName('h1');
foreach($h1s as $h1) {
    if ($h1->getAttribute('class') == 'title') {
        $h1->nodeValue = $newh1;
    }
}

echo $doc->saveHTML();
bedankt guys!

Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

En heb je hier ook iets van geleerd? Want anders heeft dit topic natuurlijk ook geen zin gehad. :) Weet je wat je fout deed en waarom?

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.

Pagina: 1