#php #string #preg-match
#php #строка #preg-match
Вопрос:
Я пытаюсь найти специальные символы с такими символами, как <?
, <?php
или ?>
в строке. Приведенный ниже код позволяет найти «php» в строке в любом месте, независимо от того, является ли это PHP
, php
или phpaPHPa
.
<?php
$searchfor = "php";
$string = "PHP is the web scripting language of choice.";
if (preg_match("/".$searchfor."/i", $string)) {
echo "A match was found.";
} else {
echo "A match was not found.";
}
?>
Мне нужен аналогичный код, который находит в строке специальные символы, такие как <?
, <?php
или ?>
. Есть предложения?
Ответ №1:
Вы можете использовать тот же код. Просто убедитесь, что специальные символы регулярного выражения экранируются при их использовании в сопоставлении. Вопросительный знак должен быть экранирован, чтобы ваш $searchfor
стал <?php
Комментарии:
1. Это было просто! Я просто читал и узнавал о регулярных выражениях. Спасибо за помощь. Теперь я могу закончить создание этой новой функции.
Ответ №2:
Использование strpos (или stripos) будет быстрее, чем использование регулярных выражений…
if(false === strpos($text, '<?'))
echo 'Match was not found';
else
echo 'Match was found';
Комментарии:
1. Нет. strpos не находит сгруппированные слова подходящими. халфдан попал в точку.