Строковая разница в PHP - PullRequest
1 голос
/ 26 июня 2011

У меня есть входная строка $ foo, которая содержит как буквенно-цифровые, так и не буквенно-цифровые символы.

Я использую ereg_replace для $ foo, чтобы заменить все ненужные символы пустыми. Теперь я хочу знать, что это были за «стертые» символы. Как я могу это сделать?

Ответы [ 3 ]

1 голос
/ 26 июня 2011

Вы можете использовать

$foo = "something";
$bar = ereg_replace(...);
array_diff(chunk_split($foo, 1), chunk_split($bar, 1));
1 голос
/ 26 июня 2011

В PHP 5.3:

$text = 'Hello, World!';
$stripped = '';
$text = preg_replace_callback('/([^A-Za-z0-9]+)/',
   function($m) use (&$stripped) { $stripped .= $m[0]; return ''; }, $text);

echo "$text\n$stripped\n";

Выход:

HelloWorld
, !
1 голос
/ 26 июня 2011

Если вы используете регулярное выражение для замены, почему бы вам просто не использовать то же регулярное выражение и выполнить «preg_match», а затем «preg_replace»

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...