J'essaie de rechercher et de vérifier les détails en double qui sont disponibles dans la base de données en utilisant php.L'utilisateur entre plusieurs noms, puis un numéro de téléphone pour vérifier les doublons. Voici ma fonction. J'ai juste coupé quelques parties parce que c'était trop long.Arrêter le traitement et évaluer la valeur suivante dans la boucle foreach
function gtc($names,$phone)
{
$pageNumb=20;
$position = array(5);
$sepname=explode(",","$names");
foreach ($sepname as $sepname1)
{
for ($page=0;$page<=$pageNumb;$page=$page + 1)
{
$turl="http://192.168.111.2119/search.php?qry=$sepname1&page=$page";
$search=curl_init();
curl_setopt($search,CURLOPT_URL,$turl);
curl_setopt($search,CURLOPT_RETURNTRANSFER,1);
curl_setopt($search,CURLOPT_FAILONERROR,true);
curl_setopt($search,CURLOPT_AUTOREFERER,true);
$result=curl_exec($search);
$dom = new DOMDocument();
@$dom->loadHTML($result);
$xpath=new DOMXPath($dom);
$elements = $xpath->evaluate("//div[@id='inf']");
foreach ($elements as $element)
{
$position[$sepname1] = $position[$sepname1] + 1;
foreach($position as $key=>$val)
$contct = $element->getElementsByTagName("contact")->item(0)->nodeValue;
if (preg_match("/$phone/i",$contct)) {
echo "Found In Database>";
}
}
ob_flush();
flush();
}
}
}
?>
La fonction fonctionne parfaitement, mais le seul problème que j'ai est bien une correspondance est trouvée, il va jusqu'à la dernière page qui est donnée dans la boucle, puis passe par le nom suivant. Je voudrais savoir est-il possible de faire quand une correspondance est trouvée arrêter le traitement, puis rechercher le nom suivant?
Je ne veux pas utiliser exit(); car il arrête complètement l'exécution
Le format d'entrée est comme ci-dessous
noms des entrées utilisateur: john, Sam, Michael, Steve
Numéro de téléphone: 0084554741
Toute aide sera appréciée
Peut-être que vous voulez ajouter que vous pouvez dire continuer combien de boucles pour échapper à. –
@Kristoffer Je laisse cela pour l'OP pour savoir sur les pages de manuel respectifs :) – Gordon