Что такое неверный путь в соответствии с fnmatch?

я использую fnmatch() соответствовать некоторым простым выражениям в PHP, потому что это намного более производительно и проще, чем использование preg_match(), Я использую более 15 ГБ данных, поэтому производительность имеет значение. Тем не менее, для некоторых строк (я не знаю, какие) я получаю предупреждение:

PHP Warning: fnmatch() expects parameter 2 to be a valid path, string given in /some/path/file.php on line xx

я понимаю fnmatch тесно связан с путями и системой, на которой он работает (он доступен только в POSIX-системах), но документация для второго параметра описывает его следующим образом:

строка

Протестированная строка. Эта функция особенно полезна для
имена файлов, но также могут использоваться в обычных строках.

Средний пользователь может быть использован для оболочки шаблонов или, по крайней мере, в их
простейшая форма для «?» и подстановочные знаки ‘*’, поэтому вместо fnmatch () вместо
preg_match () для ввода выражения поиска во внешнем интерфейсе может быть намного больше
удобно для не программирующих пользователей.

http://php.net/manual/en/function.fnmatch.php

Так что, похоже, есть ошибка в PHP или в документации. Но независимо от этого, было бы очень полезно, если бы кто-то знал, что вызвало это предупреждение.

Что fnmatch() считать неверный путь?

1

Решение

Я бы предложил запустить var_dump (). Это сообщение об ошибке может появиться, когда путь имеет нулевой байт, в основном из соображений безопасности. Если это не сработает, проверьте длину строки и убедитесь, что это то, что вы ожидаете, на случай, если есть другие невидимые байты.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]