Могу ли я использовать PHP preg_replace для данных UTF-8, если соответствующий текст - это ascii?

У меня есть такая строка UTF-8:

$string = "<html> some chars in any language so could be double-byte </html>";

Я хочу потерять <html> и </html>

Это нормально:

$string = preg_replace("/<html>/", "", $string); 
$result = preg_replace("/<\/html>/", "", $string);

я не прошу совета повторно. регулярное выражение (я не проверял и уверен, что это можно было бы сделать лучше). Вопрос в том, что если часть, которую я сопоставляю, просто ascii (а не многобайтовая), нужно ли мне использовать многобайтовые функции регулярного выражения или достаточно preg?


person Community    schedule 07.08.2014    source источник


Ответы (1)


Во-первых, preg подходит для utf — просто добавьте модификатор u. И да, пока вы вводите ascii, можно опустить u. Из-за того, как работает utf8, если вы имеете дело только с asciis, вы не можете сломать другие символы, отличные от ascii.

И, конечно же, вы не должны использовать регулярные выражения для управления HTML!

person georg    schedule 07.08.2014