PHP - Fonction Readline non détectée

PHP - Fonction Readline non détectée - PHP - Programmation

Marsh Posté le 12-12-2021 à 17:53:00    

Bonjour,
 
Alors voilà mon problème. J'ai passé la nuit précédente à chercher sur le net, mais je n'ai rien trouvé de probant. Je suis en train d'apprendre le langage PHP avec les tutos YouTube de Grafikart, et dès que je tape cette ligne de code dans Visual Studio Code :
 
<?php  
    $notes = [];
    $action = null;
 
    while ($action !== 'fin') {
        $action = readline('Veuillez entrer une nouvelle note (ou \'fin\' pour terminer la saisie) :');
    }
    if ($action != 'fin') {
        $notes[] = (int)$action;
    }
    foreach ($notes as $note) {
        echo "- $note\n";
    }
?>
 
voilà le message d'erreur qui m'apparaît : Fatal error: Uncaught Error: Call to undefined function readline() in C:\Users\loust\Documents\TESTPHP\demo.php:6
Stack trace:
#0 {main}
  thrown in C:\Users\loust\Documents\TESTPHP\demo.php on line 6
 
soit traduit : Erreur fatale : Erreur non détectée : Appel à la fonction non définie readline() dans C:UsersloustDocumentsTESTPHPdemo.php:6
Trace de pile :
#0 {principal}
  lancé dans C:UsersloustDocumentsTESTPHPdemo.php à la ligne 6.
 
Après plusieurs tests de mon côté, je me rends compte que ce problème ne provient pas de l'éditeur de texte, puisque je rencontre la même bouse sur Sublimtext lorsque je génère la page web, ça me la crache en erreur-500, cause le code, puisque dès lors que je change le code, ce dernier apparaît nickel après rafraichissement de la page web. J'ai testé sur MAMP et sur XAMPP, et le problème demeure. Je suppose que le problème vient du fait qu'un fichier .DLL manque à mes extensions. Je suis allé sur le fichier php.ini de la version PHP que j'utilise, j'ai fait sauter tous les points virgules des extensions, j'ai bien enregistré le fichier à sa place, j'ai même copié tous les fichiers .dll dans le dossier ext que j'ai ensuite collé dans le dossier de la version php que j'utilise, mais rien n'y fait.
 
Je précise que je suis sous Windows 10, je sais pas si le problème peut venir de là, même si cela me semble improbable, mais j'en sais rien, je suis nouveau dans la discipline. Le seul truc que j'ai pu trouver c'est ça, mais je pige flou cette commande :
 
<?php
// check si tu es sous windows
if (PHP_OS == 'WINNT') {
  echo 'Entrez votre note ';
  $line = stream_get_line(STDIN, 1024, PHP_EOL);
} else {
  $line = readline('Entrez votre note ');
}
?>
 
ceci qui semble à peu près régler le problème, mais je me demande pourquoi tant de complications. Si un fichier .dll manque pour la fonction readline, je ne sais où la trouver. Enfin. Comme vous le comprendrez, j'ai besoin d'aide. Merci par avance.
 
P.S. J'ai aussi ce message que je reçois : PHP CS Fixer: executablePath not found, please check your settings. It will set to built-in php-cs-fixer.phar. Try again!
 
soit traduit : PHP CS Fixer: exécutablePath introuvable, veuillez vérifier vos paramètres. Il sera défini sur php-cs-fixer.phar intégré. Réessayez!
 
Je continue à chercher de mon côté, mais toute aide est la bienvenue.


Message édité par atumloustic le 12-12-2021 à 18:47:45
Reply

Marsh Posté le 12-12-2021 à 17:53:00   

Reply

Marsh Posté le 12-12-2021 à 22:18:44    

Tu as conscience que readline ne peut être utilisé que dans le cadre de l'utilisation de PHP en ligne de commande,  
En aucun cas ça matche dans le cadre de l'utilisation du WEB.
Dans ce cas il te faut un formulaire et la récupération des données en POST.


---------------
Blablaté par Harko
Reply

Marsh Posté le 12-12-2021 à 22:22:53    

Non tu me l'apprends. Mais même en ligne de commande, cela ne fonctionne pas. Donc si je comprends bien, pour créer une page web avec un élément interactif, il y a une autre commande à entrer, ou une fonction à définir au préalable. Je continue de chercher, et d'apprendre.

Reply

Marsh Posté le 14-12-2021 à 22:14:57    

https://www.php.net/manual/fr/readline.requirements.php :o
 
Si t'es sous Win10, WampServer ou uWamp me paraît plus approprié.
Pour apprendre le PHP en mode web (utilisation la plus courante quand même), commence par apprendre le HTML + CSS puis ensuite, tu rajoutes le PHP (notamment avec le traitement des formulaires pour le côté interactif). Enfin, tu rajoutes le SQL pour la BD et le Javascript pour le côté interactif côté client. ;)


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 14-12-2021 à 22:23:52    

Bonsoir Rufo,
 
Avant toute chose, merci pour ta réponse. J'ai cherché cherché, mais apparemment, ou pas assez, ou pas de manière la plus compétente.  
 
Je note ce que tu m'as dit pour WampServer et uWamp. C'est que je préférerai dans les débuts la console pour pouvoir m'exercer comme il faut, la pratique aide mieux à corriger ses erreurs et retenir les procédés je trouve, enfin pour moi en tous cas. Là du coup ça me fait bloquer sur les fonctions, je pige la théorie, mais ai besoin de m'exercer, encore et encore.
 
HTML et CSS c'est fait. Là je fais PHP, SQL, et JavaScript comme tu dis, c'est justement l'ordre que je me suis fixé, avec ensuite Python et C.
 
Et oui, je suis bien sous Windows 10 au fait.
 
Merci encore pour ta réponse.


Message édité par atumloustic le 14-12-2021 à 22:26:13
Reply

Marsh Posté le 15-12-2021 à 07:47:06    

Tu peux parfaitement débogguer avec des echo / print_r() / var_dump() un script PHP fait pour du web :o
Franchement, commencer php par le mode console, tu dois être l'un des rares à l'avoir fait  :whistle:
 
Edit : c'est un peu comme si tu apprenais le C et que tu le faisais en mode web (un .exe écrit en C qui va générer du HTML et traiter des formulaires). C'est faisable, mais c'est pas l'utilisation première du C ni la plus naturelle :/


Message édité par rufo le 15-12-2021 à 07:54:02

---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 19-12-2021 à 11:11:36    

Bon, voilà.
 
J'ai bien lu ton message, j'ai pas encore testé le débug, mais, sauf erreur de ma part (bien possible), je crois que cela ne permet pas de créer une interactivité entre le script et le terminal. Faudra que je vérifie pour en être certain. J'ai en attendant trouvé une solution annexe. J'ai crée une machine virtuelle sous Debian, ce qui au passage me permet de me familiariser avec Linux et la console, et j'utilise VSC ainsi, avec cette fonction Readline qui enfin est effective, et me donne cette possibilité à m'exercer dans la rédaction de mes fonctions, et avancer dans l'apprentissage du PHP.  
 
Merci pour cette aide apportée. Je pense que l'on peut estampiller ce problème comme [Résolu].


Message édité par atumloustic le 19-12-2021 à 11:12:28
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed