Pb : split()

Eléphanteau du PHP | 26 Messages

30 mai 2007, 10:56

Bonjour,

Je souhaite couper les resultats d'une requete d'un moteur de recherche.
Pour cela, je recupère le delimiteur associé au moteur de recherche que je split.
$query = sprintf('select MOT_DELIMITEUR from MOTEURDERECHERCHE 
                      where ID_MOTEURDERECHERCHE=%d',$IdMoteurDeRecherche);
$result_Delimiteur = mssql_query($query) or die("Requete Sql non valide");
$rowDel = mssql_fetch_array($result_Delimiteur);

$delimiteur = $rowDel["MOT_DELIMITEUR"];
$tab = split($delimiteur, $fp);
Cela fonctionne correctement pour la plupart des moteurs de recherche.
En revanche, pour l'un d'entre eux, le délimiteur est : <a class='res' et le split ne me renvoie pas le tableau attendu (6 attributs au lieu de 100 !!!)

Je pense que le problème vient du guillement que j'ai essayé de résoudre grace à preg_quote()
Sans succès :(

Mammouth du PHP | 505 Messages

30 mai 2007, 11:27

split() est basé sur ereg, c'est lent et pas perein, ereg vas disparaitre.
a la rigueur preg_split sera beaucouop plus rapide et lui, restera dans php.

Mais dans ton cas, les 2 fonctions utilise une regex pour le découpage, hors tu n'utilises pas de regex mais une chaine .... Ce n'est donc pas ces fonctions que tu dois utiliser.
Une bete explode() ferait l'affaire AMHA.

Eléphanteau du PHP | 26 Messages

30 mai 2007, 11:41

split() est basé sur ereg, c'est lent et pas perein, ereg vas disparaitre.
a la rigueur preg_split sera beaucouop plus rapide et lui, restera dans php.

Mais dans ton cas, les 2 fonctions utilise une regex pour le découpage, hors tu n'utilises pas de regex mais une chaine .... Ce n'est donc pas ces fonctions que tu dois utiliser.
Une bete explode() ferait l'affaire AMHA.
Après tests, tout marche parfaitement bien avec explode

Merci pour tout :wink: