PHP - Удаление <? php?> отмечает от строки

Что лучший способ состоит в том, чтобы удалить эти теги из строки, для подготовки его к тому, что он был передан оценке ()?

для, например, строка может быть что-то вроде этого:

<?php
  echo 'hello world';
  ?>
  Hello Again
  <?php

  echo 'Bye';
?>

Очевидно, str_replace не будет работать потому что эти два тега PHP в средней потребности быть там (1-е и последняя потребность, которая будет удалена)

5
задан Alex 1 July 2010 в 01:55
поделиться

2 ответа

Звучит как плохая идея, но если вы хотите удалить начальный и конечный, вы можете сделать

$removedPhpWrap = preg_replace('/^<\?php(.*)(\?>)?$/s', '$1', $phpCode);

Это должно сделать это (не проверено).

Скажите, пожалуйста, также, почему вы хотите это сделать? Я на 95% уверен, что есть способ лучше.

4
ответ дан 13 December 2019 в 22:01
поделиться

Обычно вы не хотите передавать функцию eval. Если вы хотите просто удалить теги, string_replace отлично выполните эту работу, однако вам может быть лучше использовать regex.

preg_replace(массив('/<(?| %)=? (php)?/', '/(%|?) >/'), массив('',''), $str);

Это относится к старым тегам asp, коротким тегам php, эхо-тегам php и обычным тегам php.

4
ответ дан 13 December 2019 в 22:01
поделиться
Другие вопросы по тегам:

Похожие вопросы: