#php
#php
Вопрос:
в foreach есть много URL-адресов:
http://encrypted.google.com
http://www.bing.com
http://login.yahoo.com
как сделать, если URL содержит google.com
переход, иначе эхо.
что-то помещенное должно быть
http://www.bing.com
http://login.yahoo.com
Спасибо.
Ответ №1:
Как насчет этого?
<?php
if(strpos($link, 'google.com') === false){
// does not have google.com
}else{
// does have google.com
}
?>
Ответ №2:
foreach($urls as $u) {
if(stripos($u,'google.com')) continue;
echo $u;
}
Комментарии:
1. -1 Это не сработает для URL-адресов, начинающихся с
google.com
. Внимательно прочитайте документацию. Я вижу, что многие люди тоже этого не сделали.2. Обратите внимание, что stripos может возвращать значения, которые оцениваются как false, хотя на самом деле не являются false , поэтому вам нужно то, что есть в другом ответе, который использует !== false . Одна из радостей динамического набора текста.
3. Я понимаю это, но в этом случае все URL начинаются с http://. Если бы это было не так, то вы бы хотели использовать проверку !== false .
4. вы не должны рисковать надежностью кода только ради того, чтобы не вводить
!== false
Ответ №3:
foreach ($yourUrls as $url){
if(strpos($url, 'google.com')){
continue;
}else{
echo $url;
}
}
Комментарии:
1. Кажется немного излишним. Если у вас есть
if...else
, вам не нужноcontinue
, и наоборот.2. Верно, но это понятнее, например, если вы хотите добавить дополнительный код позже. Нет реальной причины не делать этого, поскольку это не будет иметь никакого ощутимого значения