Что лучший способ состоит в том, чтобы удалить эти теги из строки, для подготовки его к тому, что он был передан оценке ()?
для, например, строка может быть что-то вроде этого:
<?php
echo 'hello world';
?>
Hello Again
<?php
echo 'Bye';
?>
Очевидно, str_replace не будет работать потому что эти два тега PHP в средней потребности быть там (1-е и последняя потребность, которая будет удалена)
Звучит как плохая идея, но если вы хотите удалить начальный и конечный, вы можете сделать
$removedPhpWrap = preg_replace('/^<\?php(.*)(\?>)?$/s', '$1', $phpCode);
Это должно сделать это (не проверено).
Скажите, пожалуйста, также, почему вы хотите это сделать? Я на 95% уверен, что есть способ лучше.
Обычно вы не хотите передавать функцию eval. Если вы хотите просто удалить теги, string_replace отлично выполните эту работу, однако вам может быть лучше использовать regex.
preg_replace(массив('/<(?| %)=? (php)?/', '/(%|?) >/'), массив('',''), $str);
Это относится к старым тегам asp, коротким тегам php, эхо-тегам php и обычным тегам php.