socket_sendmsg(PHP 4 >= 4.1.0) socket_sendmsg - отправляет сообщение на сокет, независимо от того, является ли он ориентированным на соединение или нет. Описаниеbool socket_sendmsg (resource socket, resource iovec, int flags, string addr [, int port])
|
||||||||||
|
||||||||||
И при минимальном, и при максимальном количестве повторений, неудача того, что идёт следом, нормально вызывает повторное вычисление повторяемого элемента, с целью проверить, не даст ли совпадения повторение, иное количество раз, оставшейся части патэрна. Иногда нужно предотвратить это для изменения природы совпадения, либо чтобы вызвать неудачу раньше, чем это могло бы быть, если автор патэрна знает, что больше нет точек для работы.
Рассмотрим, например, патэрн \d+foo в применении к строке-субъекту
123456bar
После совпадения всех шести цифр и неудачи совпадения с "foo", нормальным действием
будет - попытаться снова только уже с пятью цифрами \d+ item, а затем с четырьмя,
и так далее, прежде чем окончательно потерпеть неудачу. Однократные субпатэрны
предоставляют средство для специфицирования действий, как только часть патэрна
совпала: тогда он не вычисляется повторно, и поиск совпадений немедленно завершается
при первой неудаче совпадения с "foo". Нотируется это другим видом специальных
скобок, начинающихся с (?>
(?>\d+)bar
Этот вид скобок "просматривает" содержащуюся в них часть патэрна, если она совпала,
а последующая неудача в патэрне предотвращает возвращение и повторный просмотр.
Возвращение после него к предыдущим элементам, однако, работает нормально.
Альтернативное описание таково, что субпатэрн этого типа совпадает со строкой символов, с которой мог бы совпасть идентичный отдельный субпатэрн, если он заякорен в текущей точке строки-субъекта.
| |