Функция PHP похожа на эту функцию JavaScript - PullRequest
3 голосов
/ 30 апреля 2010

Мне нужна аналогичная функция в PHP для этой функции JavaScript

text = text.replace(/ffc/g, "Hello");

Я думаю, что preg_replace подойдет, но я не уверен, как написать выражение ..

Я хочу, чтобы регулярное выражение было похоже на /ffc/g, что выше. Что мне нужно, это точно соответствовать полному слову и регистру при выполнении замены ...

Ответы [ 5 ]

5 голосов
/ 30 апреля 2010
$text = preg_replace('/ffc/', 'replacement text',  $subject);

Онлайн руководство по PHP довольно удивительно, и одна из лучших возможностей языка:

http://php.net/preg_replace

1 голос
/ 30 апреля 2010

Просто используйте функцию str_replace следующим образом:

$text = str_replace('ffc', 'Hello', $text);

Использование регулярного выражения в данном случае является чрезмерным использованием.

0 голосов
/ 30 апреля 2010

Исходя из вашего требования о замене полного слова, я бы предложил следующее:

$text = preg_replace ('/\bffc\b/', 'Hello', $text);

Заменяет все экземпляры 'ffc' и чувствителен к регистру

0 голосов
/ 30 апреля 2010

preg_replace (); будет делать.

Explaination:

preg_replace  (  mixed $pattern  ,  mixed $replacement  ,  mixed $subject  [,  int $limit = -1  [,  int &$count  ]] )
The pattern to search for. It can be either a string or an array with

строки.

The e modifier makes preg_replace() treat the replacement

параметр в виде кода PHP после соответствующая замена ссылок сделанный. Совет: убедитесь, что замена составляет правильную строку кода PHP, в противном случае PHP будет жаловаться на ошибка разбора в строке, содержащей preg_replace ().

Строка или массив со строками для заменить. Если этот параметр является строкой и параметр шаблона является массивом, все шаблоны будут заменены этим строка. Если оба шаблона и параметры замены массивов, каждый шаблон будет заменен замена аналога. Если есть меньше элементов в замене массив, чем в массиве шаблонов, любой дополнительные шаблоны будут заменены пустая строка.

replacement may contain references of the form \\n or (since PHP 4.0.4)

$ n, причем последняя форма предпочтительный Каждая такая ссылка будет заменен захваченным текстом по шаблону в скобках. N может быть от 0 до 99 и \ 0 или $ 0 относится к тексту, сопоставленному Весь шаблон. Открывающие скобки отсчитывается слева направо (начиная из 1) для получения номера захват подшаблонов. Использовать обратную косую черту в замен, это должно быть удвоено ("\\" PHP строка).

When working with a replacement pattern where a backreference is

, за которым сразу следует другой номер (то есть размещение буквенного числа сразу после согласованного рисунка), вы не можете использовать знакомый \ 1 обозначение для вашей обратной ссылки. \ 11, например, запутал бы preg_replace (), так как он не знает хотите ли вы \ 1 обратную ссылку сопровождаемый литералом 1, или \ 11 обратная ссылка, за которой ничего не стоит. В В этом случае решение заключается в использовании \ $ {1} 1. Это создает изолированный 1 доллар обратная ссылка, оставляя 1 как буквальный.

When using the e modifier, this function escapes some characters

(а именно ', ", \ и NULL) в строки, которые заменяют обратные_связи. Это сделано для обеспечения что синтаксические ошибки не возникают из использование обратных ссылок с одним или двойные кавычки (например, 'STRLEN (\' $ 1 \ ') + StrLen ( "$ 2")'). Делать уверен, что вы знаете строку PHP синтаксис, чтобы точно знать, как интерпретируемая строка будет выглядеть так.

Строка или массив со строками искать и заменять.

If subject is an array, then the search and replace is performed on

каждая запись предмета и возврат значение также является массивом.

Максимально возможные замены для каждый шаблон в каждой строке темы.

Если указано, эта переменная будет заполнено количеством замен сделанный. По умолчанию -1 (без ограничений).

preg_replace () возвращает массив, если параметр субъекта является массивом, или иначе строка.

Если совпадения найдены, новый предмет будет возвращен, в противном случае тема будет возвращен без изменений или NULL, если произошла ошибка.

0 голосов
/ 30 апреля 2010
str_replace($needle, $replacement, $haystack);
...