un array recalcitrant

Invité
Invité n'ayant pas de compte PHPfrance

08 déc. 2006, 14:03

bonjour
c est un bout de code pour un formulaire d autocomplete ajax
le principe est de comparer le $debut d une lettre avec les mots contenus dans $liste.

je cree un fichier texte avec comme donnee "lapin","bison","autruche" etcetc

ca marche nickel si je mets
$liste=array(lapin","bison","autruche");

avec
$liste=array($contenu_string);
ca ne marche pas

si quluqun peut m aider!
merci :)

Code : Tout sélectionner

<?php header('Content-Type: text/xml;charset=utf-8'); echo(utf8_encode("<?xml version='1.0' encoding='UTF-8' ?><options>")); if (isset($_GET['debut'])) { $debut = utf8_decode($_GET['debut']); } else { $debut = ""; } $debut = strtolower($debut); $fichier = 'texte.txt'; $contenu_string = file_get_contents($fichier); $liste=array($contenu_string); function generateOptions($debut,$liste) { $MAX_RETURN = 10; $i = 0; foreach ($liste as $element) { if ($i<$MAX_RETURN && substr($element, 0, strlen($debut))==$debut) { echo(utf8_encode("<option>".$element."</option>")); $i++; } } } generateOptions($debut,$liste); echo("</options>"); ?>

ViPHP
ViPHP | 1961 Messages

08 déc. 2006, 14:36

Bonjour,

La fonction file_get_contents() lit un fichier et le place dans une variable de type string (chaîne de caractères)

Ton traitement s'effectue sur un tableau (pas sur une chaîne).

Il te faut donc convertir ta chaîne en tableau.
Je suppose que le séparateur de mots est la virgule et qu'il n'y a pas d'espaces entre les mots
$liste=explode(',', $contenu_string);
Deux choses sont infinies, l'Univers et la sottise humaine!!
Mais je ne suis pas sur de ce que j'affirme au sujet de l'Univers.

A. Einstein

Invité
Invité n'ayant pas de compte PHPfrance

08 déc. 2006, 14:42

merci

:D

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

08 déc. 2006, 16:58

Modération :
Puisque ta question est résolue, j'ajoute le tag [Résolu]
pour indiquer aux personnes qui voudront consulter ce sujet qu'il contient une solution.

Tu peux réaliser cette opération toi-même
en cliquant sur le bouton [Mettre Résolu] qui s'affiche en haut à gauche de ce sujet
si tu as posté le 1er message en tant que membre (inscrit et identifié). ;)
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...