Что означает символ «~» в следующем:
preg_match_all("~<img [^>]+>~", $inputw, $output);
Я предполагаю, что они начинаются и заканчивают маркеры, такие как ^ и $.
Это разделитель
Разделителем может быть любой символ, не являющийся буквенно-цифровым, без обратного слэш-символа.
Как сказал Намби, вы можете выбрать разделитель в регулярном выражении. Однако, если разделитель появляется в шаблоне, он должен сбежать. Зная это, представьте себе следующую ситуацию
'/\/var\/www\/test/' # delimited with / '~/var/www/test~' # delimited with ~
Последнее не требует выхода из /
поскольку теперь разделитель ~
. Гораздо чище, не так ли?
В качестве общего руководства вам предлагается выбрать разделитель, который не является образцом самого шаблона, я предполагаю, что ~
широко распространен в качестве альтернативы /
поскольку он редко появляется в образце реального мира.
Грязный маленький секретный разделитель, который они не говорят вам ->
http://uk.php.net/manual/en/regexp.reference.delimiters.php
Примеры:
Сопряженные разделители ( raw: \d{2}Some\{33\}\w{5}
)
{\d{2}Some\\{33\\}\w{5}}
разбираются в \d{2}Some\\{33\\}\w{5}
и
{\d{2}Some\{33\}\w{5}}
разбираются в \d{2}Some{33}\w{5}
Un-Paired delimiters ( raw: \d{2}Some\+33\+\w{5}
)
+\d{2}Some\+33\+\w{5}+
анализируются на \d{2}Some+33+\w{5}
и
+\d{2}Some\\+33\\+\w{5}+
не будут разбираться, потому что разделитель не экранирован.