-1
votes

Utilisez les données de tableau enregistrées dans le fichier TXT (PHP)

J'essaie d'utiliser les données sauvegardées sur liste.txt via le formulaire Soumettre et d'l'afficher au hasard à la page.

index.php xxx

list.txt < / p> xxx


6 commentaires

Quel est votre problème?


Vous devez faire en sorte que $ liste un réseau réel en fractionnant les valeurs.


Pas clair ce que vous essayez de demander


Ne marche pas. Je comprends le concept. Mais pour une raison quelconque lorsque j'ai lu la liste à l'aide de fichiers_get_contents ou de fopen, cela ne fonctionne pas.


Chemin vers le fichier est valide? Vérifier $ myfile = fopen ('list.txt', "r") ou mourir ("ICI devrait être un message");


Et remarquez que la chaîne de retour Fread Vous souhaitez également exploser avant de la fusionner et de l'utiliser comme tableau


3 Réponses :


0
votes

Vous devez convertir la chaîne en une matrice en utilisant exploser () code>, puis pour ajouter des éléments supplémentaires si nécessaire:

    $list = fread($myfile,filesize('list.txt'));
    fclose($myfile);

    $bg0 = explode(', ',str_replace("'","",$list));
    $bg0[] = 'yellow';
    $i = rand(0, count($bg0)-1); // generate random number size of the array
    $selectedColor = "$bg0[$i]"; // set variable equal to which random color was chosen

    echo $selectedColor;


0 commentaires

1
votes

Je ne suis pas totalement sûr de ce que vous essayez d'atteindre ici, mais vous avez peu de problèmes:

1) SelectedColor P>

devrait être $ Selecteylcolor p>

2) Chargement de Le "tableau". p>

Vous ne pouvez pas simplement charger un texte et vous attendre à PHP de deviner le format. Si vous souhaitez charger le fichier et le traiter comme une matrice, vous devez instruire php à le faire. P>

Dans votre exemple, vous pouvez par exemple diviser le texte et couper les caractères non désirés: P>

<?php

  //$list = file_get_contents('list.txt'); //Tested without fopen

  $myfile = fopen('list.txt', "r") or die ("");

  $list = fread($myfile,filesize('list.txt'));

  $list = explode(',', $list);
  array_walk($list, function(&$elem) {
    $elem = trim($elem, ' \'');
  });

  $bg0 = array_merge($list , ['yellow']); // array of colors

  fclose($myfile);

  $i = rand(0, count($bg0)-1); // generate random number size of the array
  $selectedColor = $bg0[$i]; // set variable equal to which random color was chosen

  echo $selectedColor;
  ?>


0 commentaires

0
votes
  • Vous devez diviser les valeurs d'entrée. Cela peut être simplement fait par une regex.
  • après ajouter 'jaune' à la liste
  • Sélectionnez la couleur aléatoire xxx

0 commentaires