Tompa Tompa - 8 months ago 64
PHP Question

PHP - Edit specific HTML content in file

I got a HTML file containing:

<p class="derp">Hello</p>

What I want to do is to do is to update the HTML file's p-tag, with specific instructions like this:

$value = "I am here to replace something!";
$index = 1;

$page_source = file_get_contents($file_name);
// Something here to replace the second p-tag with $value
file_put_contents($file_name, $page_source);

I have tried 2 different methods to do this (loadHTML, preg_replace), but I want to hear your opinion on which might be the best fit in my situation.

Very greatful for answers!

Answer Source

I personally prefer native PHP extensions. They are way faster than any other 3rd-party lib - depends on your task, but that is generally the case - and I get all the control I need over the document. DOM is the one I mostly use.

The best 3rd-party lib I have used so far, anyhow, is FluentDom; it provides a jQuery-like interface to navigate through the elements of the document and it may be installed using Composer.

I would not use regular expressions, unless I had to apply a really tiny change for which creating a new instance of DOMDocument would seem like a waste.

Edit: Gordon goes into much more details with this amazing answer.