socket_read(PHP 4 >= 4.1.0) socket_read - читает максимум length байтов из сокета. Описаниеstring socket_read (resource socket, int length [, int type])
Функция socket_read() читает из сокета socket, созданного функцией socket_accept(), максимальное количество байтов length. В ином случае вы можете использовать \r, \n или \0 для окончания чтения (в зависимости от параметра type; см. ниже). Возвращает данные как строку при успехе, FALSE при ошибке. Код ошибки может быть запрошен функцией socket_last_error(). Это код можно передать в socket_strerror() для получения текстового объяснения ошибки.
Необязательный параметр type является именованной константой:
См. также socket_accept(), socket_bind(), socket_connect(), socket_listen(), socket_last_error(), socket_strerror() и socket_write(). |
||||||||||
|
||||||||||
Разные утверждения (любого вида) могут следовать друг за другом. Например,
(?<=\d{3})(?<!999)foo
совпадает с "foo" с предшествующими тремя цифрами, которые не являются "999".
Заметьте, что каждое утверждение применяется независимо в той же точке строки-субъекта.
Сначала выполняется проверка, что предшествующие три символа это цифры, затем
проверяется, что эти же три цифры не являются числом "999". Этот патэрн не совпадает
с "foo" с предшествующими шестью цифрами, первые из которых являются цифрами,
а последние три не образуют "999". Например, он не совпадает с "123abcfoo".
Это сделает патэрн
(?<=\d{3}...)(?<!999)foo
На этот раз первое утверждение просматривает предшествующие шесть символов,
проверяя, что первые три являются цифрами, а затем второе утверждение проверяет,
что предшествующие три символа не являются "999".
Утверждения могут вкладываться в любом сочетании. Например,
(?<=(?<!foo)bar)baz
совпадает с "baz" с предшествующим "bar", перед которым, в свою очередь, нет
"foo", а
(?<=\d{3}(?!999)...)foo
это другой патэрн, который совпадает с "foo" с предшествующими тремя цифрами
и любыми тремя символами - не "999".
Субпатэрны утверждений не являются захватывающими субпатэрнами и не могут повторяться, поскольку нет смысла утверждать одно и то же несколько раз (это смотря в какой стране ... - прим. перев.). Если утверждение любого типа содержит захватывающие субпатэрны, они обсчитываются для целей нумерации захватывающих субпатэрнов всего патэрна. Однако захват подстрок выполняется только для положительных утверждений, так как это не имеет смысла для отрицательных утверждений.
Утверждения обсчитываю максимум до 200 субпатэрнов.
| |