Я пытаюсь изменить строку в файле PHP, которая обрабатывает данные, поступающие из XML (около 600 станций). Php делает эти данные пригодными для использования медиа-плеером. Исходная строка – это
if (($title <> "")&& (strpos($link,"<") === false)&& preg_match("/Cha/i",$lang))
это дает мне около 50 станций, я хочу добавить несколько станций, которые не имеют «Ча» в $ lang, но «Soprts» и имеет «Китай» в своем $ title.
Поэтому я написал строку, подобную этой
if (($title <> "")&& (strpos($link,"<") === false)&& preg_match("/Cha/i",$lang)&& (preg_match("/China/i",$title)||preg_match("/Sports/i",$lang)))
Но теперь я получаю меньше результатов, чем раньше, теперь я получаю только станции, у которых есть CHA в $ lang и «China» в $ title. Все соответствующие станции, имеющие CHA в $ lang, но не «Китай» в $ title, исключены.
Поскольку у меня очень ограниченные знания в PHP, я не знаю, как правильно сортировать, кто-то предложил мне использовать stripos, но я не знаю, как его использовать, и его пример не работал.
Вы перевернули и / или в свой новый код. Вы хотите:
if (($title <> "")&& (strpos($link,"<") === false)&& (preg_match("/Cha/i",$lang)|| (preg_match("/China/i",$title)&&preg_match("/Sports/i",$lang))))
Корректно не кладите брекеты. Вы можете добавить несколько вариантов в regex, используя |
(означает OR
), попробуйте следующее:
if (($title <> "") && (strpos($link,"<") === false) && preg_match("/CHA|China|Sports/i",$lang))