<?php
// this is your $this->row->product_description value for demonstration purposes:
$html = <<<HTML
Some text yatta yatta
<hr id="system-readmore" />
Some more text blah blah
HTML;
list($introtext, $description) = explode('<hr id="system-readmore" />', $html, 2);
var_dump($introtext);
var_dump($description);
echo "\n---\n";
var_dump(trim($introtext)); // this is tidier, with leading trailing/whitespace characters removed
var_dump(trim($description)); // this is tidier, with leading trailing/whitespace characters removed
echo "\n---\n";
list($introtext, $description) = preg_split('~\s*<hr id="system-readmore" />\s*~', $html, 2);
var_dump($introtext); // no trim() call, no leading/trailing whitespace characters displayed
var_dump($description); // no trim() call, no leading/trailing whitespace characters displayed
string(22) "Some text yatta yatta
"
string(25) "
Some more text blah blah"
---
string(21) "Some text yatta yatta"
string(24) "Some more text blah blah"
---
string(21) "Some text yatta yatta"
string(24) "Some more text blah blah"
Output for 8.3.5
Warning: PHP Startup: Unable to load dynamic library 'sodium.so' (tried: /usr/lib/php/8.3.5/modules/sodium.so (libsodium.so.23: cannot open shared object file: No such file or directory), /usr/lib/php/8.3.5/modules/sodium.so.so (/usr/lib/php/8.3.5/modules/sodium.so.so: cannot open shared object file: No such file or directory)) in Unknown on line 0
string(22) "Some text yatta yatta
"
string(25) "
Some more text blah blah"
---
string(21) "Some text yatta yatta"
string(24) "Some more text blah blah"
---
string(21) "Some text yatta yatta"
string(24) "Some more text blah blah"