2015-06-21 6 views
0

Я искал множество примеров в StackOverflow, чтобы этот вопрос не был избыточным. Я не видел ответа, который сработал для моей ситуации. Заранее спасибо!!PHP - использование strpos() для поиска любого из нескольких слов в HTML-странице

Я создал сценарий автоответчика, используемый для ответа на входящие звонки для строительного бизнеса. Данные входящего свинца перечислены внутри HTML-документа (внутренней веб-страницы). Потому что из разных соглашений с другими компаниями есть некоторые города, в которых они не могут участвовать в тендерах на работу в нашей области.

Это код, который я использовал, чтобы успешно проверить для экземпляра одного города в $ странице ($ страница быть страницы HTML):

<?php 
$flag == false; 
     //checks for cities we do not serve// 
if(strpos($page, 'Lakeland') !== false){ 
$flag == true; 
} 

if($price != 0 && $flag == false){ 
     // SENDS QUOTE 

if(strpos($page, '"success":true')){ 
    echo "Status: SENT QUOTE" . PHP_EOL; 
?> 

Что мне действительно нужно сделать, это иметь его проверьте больше, чем один город (например, Лейкленд или Зефрихиллс или Тарпон-Спрингс и т. д.), если ЛЮБОЙ из этих городов указан на странице, $ flag == true; и перестает отправлять цитату. Я попытался следующий, не помог .... с этим кодом он вводит сообщение, но не представит автоматический ответ на любые отведения:

<?php 
$flag == false; 

if (strpos($page, 'Lakeland') !== false || strpos($page, 'Zephryhills') !== false || strpos($page, 'Tarpon Springs') !== false){ 
$flag == true; 

if($price != 0 && $flag == false){ 
    // SENDS QUOTE 

if(strpos($page, '"success":true')){ 
    echo "Status: SENT QUOTE" . PHP_EOL; 
?> 

@Vishwa Таким образом, массив, как это, с последующим ваш код?

$cities = array('Lakeland', 'Zephyrhills', 'Tarpon Springs'); 
+0

Рассмотрим 'preg_match' и список альтернатив вместо этого длинного' состояния if'. – mario

+0

Что такое '$ price'? – Anonymous

+0

Где код, который отправляет ответ? – billynoah

ответ

0

Если вы можете поместить этот список городов в массив (я полагаю, вы могли бы), эта функция может вам помочь.

function arraypos($html , $cities) 
{ 
    foreach ($cities as $city) { 
     if (strpos($html, $city) !== FALSE) return true; 
    } 
    return false; 
} 

Теперь, вы можете просто использовать

$flag == arraypos($page, $array_of_cities); 
+0

Итак, массив вроде этого, за которым следует ваш код? $ cities = array ('Lakeland', 'Zephyrhills', 'Tarpon Springs'); – AntonioG33

+0

Любая проблема с этим? – Vishwa