Как определить, что preg_replace () не совпадает или не совпадает с самого начала? - PullRequest
0 голосов
/ 04 июня 2009

Оба условия возвращают false, как вы можете их различить?

Можно ли это сделать без использования третьего параметра?

Ответы [ 4 ]

0 голосов
/ 28 июля 2013

Создать временную переменную, содержащую строку поиска.

После замены проверьте, если новая строка == временная переменная.

Если эквивалентно возвращать ложь, иначе возвращать истину.

0 голосов
/ 22 июня 2009

Возможно, вы говорите о strpos , который возвращает false, если ничего не соответствует, или 0, если «игла» соответствует самому началу «стога сена». Оба значения 'falsey', поэтому вам нужно явно проверить их с помощью оператора тройного равенства:

if (strpos($haystack, $needle) === false) {
    // $needle NOT found in $haystack.
} else {
    // $needle was found in $haystack.
}
0 голосов
/ 04 мая 2010

preg_replace может иметь несколько ссылок, поэтому, если вы сначала сделали ссылку на что-то вроде /^(.){min,max}, где min / max - это минимальное / максимальное количество символов, которые вы пытаетесь найти в начале, это совпадение будет \\ 1 и следующий набор паренов будет \\ 2 и так далее.

Без дополнительной информации трудно сказать, сработает ли это или другое решение.

0 голосов
/ 04 июня 2009

Возможно, вы можете поместить здесь пример кода, но вы можете посмотреть на пятый аргумент: $count, то есть количество выполненных замен.

...