Как изменить strpos, чтобы сделать его не чувствительным к регистру. Причина в том, что product->name
MadBike, а поисковый термин – это байк, он не будет эхо меня ссылку. Моя главная проблема – скорость кода.
<?php $xml = simplexml_load_file('test.xml'); $searchterm = "bike"; foreach ($xml->product as $product) { if (strpos($product->name, $searchterm) !== false ) { echo $product->link; } } ?>
Вы ищете stripos()
Если это вам не доступно, просто strtolower()
вызовите strtolower()
в обеих строках.
EDIT :
stripos()
не будет работать, если вы захотите найти substr с диакритическим знаком.
Например:
stripos("Leży Jerzy na wieży i nie wierzy, że na wieży leży dużo JEŻY","jeży");
возвращает false, но должен int (68).
http://www.php.net/manual/en/function.stripos.php
stripos () не чувствителен к регистру.
'i' в stripos () означает нечувствительность к регистру
if(stripos($product->name, $searchterm) !== false){ //'i' case insensitive echo "Match = ".$product->link."<br />; }
введите имя и $ searchterm в нижнем регистре до $ strpos.
$haystack = strtolower($product->name); $needle = strtolower($searchterm); if(strpos($haystack, $needle) !== false){ echo "Match = ".$product->link."<br />; }