htmlpagedom icon indicating copy to clipboard operation
htmlpagedom copied to clipboard

Find a string in HTML and replace it with link

Open ahoiroman opened this issue 8 years ago • 1 comments

Hello,

I would like to use your class to search a html-code for specific human-readable strings (that are shown in the browser - no hidden HTML-stuff) and replace them with a link.

E.G.

  • Search for all strings like "test"
  • Replace all of them with <a href="test.html" title="test">test</a>

I did that by using the simple HTML DOM parser and it has a massive overhead. Is it possible to use your class to solve this in an elegant way?

ahoiroman avatar Jul 06 '17 05:07 ahoiroman

@ahoiroman perhaps share your current code, will give some ideas to others.

I would say (not tested) to do something like:

// find appropriate node, perhaps;
$tags = $crawler->filter('div');

// walk over the nodes
$tags->each(function (HtmlPageCrawler $node): void {
	$html = '<a href="test.html" title="test">test</a>';
    $node->replaceWith($html);
});

glensc avatar Mar 10 '21 10:03 glensc