Иногда бывает необходимо на скорую руку вырезать из какого-то текста, кода, запроса лишнюю на данный момент информацию, например автоматически сгенерированные комментарии /* comments text */, не несущие смысловой нагрузки.
Ниже описан наипростейший пример, поменяв маску в котором можно быстро вырезать вообще что угодно из длинных строк (например, html-теги) типа кода страниц сайтов.
Будем считать, что исходный текст с комментариями уже есть, и работать над ним будет функция preg_replace.
Создадим микро-форму для посылания этого текста на наш web-сервер:
<form action="http://localhost/php/removing_comments.php" method="post"> <textarea cols="100" rows="50" name="query">Вставьте текст</textarea> <input type="submit" value="Удалить комментарии" /> </form> |
В папку php на сервере наложим скрипт removing_comments.php:
$string = $_POST[query]; $pattern = '#/\*[^\/*]+\*/#i'; $replacement = ''; echo '<pre>'.stripslashes(preg_replace($pattern, $replacement, $string)).'< /pre>'; |
Примечания:
1 — берем наш текст из соотвествующего элемента массива POST
2 — маска регулярного выражения ищет отдельные комментарии
3 — заменяем на ничего
4 — т.к. пересылаемый через POST текст автоматически подвергается обработке функцией addslashes у нас не возникнет проблем при наличии кавычек в тексте. Чтобы удалить экранирующие обратные слэши используем stripslashes.
Соответственно, если на второй строке поменять маску на ищущую определенные теги, например на <div>, то будут вырезаться они.
Пример
Было:
$a = 1; /* first var */ $b = 2; /* second var */ $c = $a + $b; /* summ */
Стало:
$a = 1; $b = 2; $c = $a + $b;