Я проверяю, есть ли какая-либо из игл /cgi-bin /css etc
в стоге сена $dir
.Более короткий способ писать strpos с несколькими иглами в стоге сена в PHP
Чтобы проверить несколько игл, я должен написать ||
после каждого strpos()
.
Я видел здесь некоторые другие темы, но никто из них не показал самый простой код.
Я нахожусь под впечатлением, что, насколько простота и свернутом кода, это лучший способ идти о сравнении малое количество (10 или меньше) нескольких игл в стоге сена с StrPos.
Если вы знаете более короткий и более предпочтительный способ сделать это, пожалуйста, оставьте ответ ниже.
Но без особо сложного кода. Массив будет в порядке, но сохраните его простым и коротким.
Код:
if (strpos($dir, '/cgi-bin') || strpos($dir, '/css') || strpos($dir, '/images') || strpos($dir, '/includes') || strpos($dir, '/test') !== false)
continue;
Это абсолютно все! Но что означает '?:' Перед иглой 'cgi-bin'? – Mike
Также я могу просто написать это, как это, вместо фигурных скобок? 'if (preg_match ('#/(?: cgi-bin | css | images | includes | test) #', $ dir)) continue;' – Mike
'?:' После левой скобки делает группу не захватывающей: http://stackoverflow.com/questions/3512471/non-capturing-group. Вы можете написать его без фигурных скобок, но я не рекомендую: http://stackoverflow.com/questions/359732/why-is-it-considered-a-bad-practice-to-omit-curly-braces ? LQ = 1 – Barmar