<?php header('Content-Type: text/html; charset='.CHARSET); $search = !isset($_GET['search']) ? '' : strtolower($_GET['search']); if (!$search) return; list($searchStr, $filtre) = explode(',', $search); $searchStr = trim($searchStr); $filtre = str_replace(' ', '', $filtre); if( strlen($filtre) != 5 && strlen($filtre) != 2 ){ $filtre = ''; } try { $O = $client->searchMandataires( $searchStr, array('V', 'N', 'H', 'A', 'M'), //types de mandataires $filtre); $tableResults = array(); $tableResults = $O['result']; }catch (SoapFault $fault){ echo 'Erreur durant la recherche'; exit; } $output = array(); $output[] = array( 'label' => "A l'adresse du bien vendu", 'id' => 'adresse' ); /* REGEX Code Postal : ^(F-)?((2[A|B])|[0-9]{2})[0-9]{3}$ (?<!/BP /i) Ne pas avoir la présence de BP devant les 5 chiffres */ //Recherche des codes postaux if( count($tableResults)>0 ){ $i=0; foreach ($tableResults as $code=>$lib){ $tabResults[$i]['code'] = $code; $tabResults[$i]['lib'] = htmlspecialchars_decode( html_entity_decode($lib), ENT_QUOTES); preg_match('/(?<!bp )((2[A|B])|[0-9]{2})[0-9]{3}( )/i', $lib, $matches); $tabResults[$i]['cp'] = $matches[0]; $i++; } foreach ($tabResults as $key => $row){ $code[$key] = $row['code']; $lib[$key] = $row['lib']; $cp[$key] = $row['cp']; } //Classement du tableau array_multisort($cp, SORT_NUMERIC, $tabResults); $firephp->log($tabResults,'tabResults'); //Affichage des valeurs foreach ($tabResults as $item){ $output[] = array( 'label' => $item['lib'], 'id' => $item['code'] ); } } echo json_encode($output);