php, если url содержит `google.com ` не делать что-либо

#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. Верно, но это понятнее, например, если вы хотите добавить дополнительный код позже. Нет реальной причины не делать этого, поскольку это не будет иметь никакого ощутимого значения