Comment faire strpos insensible à la casse
Comment puis-je changer la strpos pour le rendre non sensible à la casse. La raison en est que si la product->name
est MadBike et le terme de recherche est vélo il ne sera pas echo-moi le lien.
Ma principale préoccupation est la vitesse d'exécution du code.
<?php
$xml = simplexml_load_file('test.xml');
$searchterm = "bike";
foreach ($xml->product as $product) {
if (strpos($product->name, $searchterm) !== false ) {
echo $product->link;
} }
?>
Vous devez vous connecter pour publier un commentaire.
Vous êtes à la recherche pour
stripos()
Si ce n'est pas disponible pour vous, puis il suffit d'appeler
strtolower()
sur les deux chaînes de la première.MODIFIER:
stripos()
ne fonctionnera pas si vous voulez trouver une sous-chaîne avec diacritiques signe.Par exemple:
stripos("Leży Jerzy na wieży i nie wierzy, że na wieży leży dużo JEŻY","jeży");
retournefalse
, mais il devrait revenirint(68)
.strtolower()
première; en moyenne, il (stripos
) semble prendre environ 2,5 fois plus (questrpos
). Puis à nouveau, vous pouvez toujours le faire (stripos
) un million de fois par seconde, donc je ne m'inquiéterais pas tellement -- l'optimisation prématurée est la racine de tous les maux.http://www.php.net/manual/en/function.stripos.php
stripos() n'est pas sensible à la casse.
"je" dans stripos() signifie pas sensible à la casse
rendre à la fois le nom de & $searchterm minuscules avant $strpos.