NUMEROTE.PHP

neigedhiver Messages postés 2480 Date d'inscription jeudi 30 novembre 2006 Statut Membre Dernière intervention 14 janvier 2011 - 13 févr. 2009 à 23:47
neigedhiver Messages postés 2480 Date d'inscription jeudi 30 novembre 2006 Statut Membre Dernière intervention 14 janvier 2011 - 17 févr. 2009 à 12:24
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/49234-numerote-php

neigedhiver Messages postés 2480 Date d'inscription jeudi 30 novembre 2006 Statut Membre Dernière intervention 14 janvier 2011 19
17 févr. 2009 à 12:24
C'est bof... Ca ne marche que sur Window$...
GrosJeanCommeDevant Messages postés 7 Date d'inscription jeudi 26 août 2004 Statut Membre Dernière intervention 17 février 2009
17 févr. 2009 à 00:34
Il suffit d'ajouter
system("Votre path\clip.exe < $fichierNumerotee");
entre la ligne 81 et 82

JPD
GrosJeanCommeDevant Messages postés 7 Date d'inscription jeudi 26 août 2004 Statut Membre Dernière intervention 17 février 2009
14 févr. 2009 à 20:50
Neigedhiver a dit:"
JS qui le récupère avec un XHR "
Je n'ai pas joué avec JavaScript depuis longtemps mais,, tu me donne l'idée de démarrer la classe via cmd et de copier cia cmd (clip.exe) dans le Presse Papier. ;-)

GJCD
neigedhiver Messages postés 2480 Date d'inscription jeudi 30 novembre 2006 Statut Membre Dernière intervention 14 janvier 2011 19
14 févr. 2009 à 11:17
PHP est un langage côté serveur : il ne peut pas intéragir avec le navigateur client ou l'OS de l'utilisateur. Il peut juste envoyer des données au navigateur (texte ou binaire). Il faut ensuite du JS pour coller dans le presse papier. On peut faire un script PHP qui crache du texte brut couplé à un script JS qui le récupère avec un XHR et en fait ce qu'on veut (comme le mettre dans le presse-papier).
GrosJeanCommeDevant Messages postés 7 Date d'inscription jeudi 26 août 2004 Statut Membre Dernière intervention 17 février 2009
14 févr. 2009 à 00:00
Ce qui serait bien ce serait qu'elle colle le résultat dans le presse papier.

Car le fichier de sortie est créé pour être posté sur les news en texte brut.
neigedhiver Messages postés 2480 Date d'inscription jeudi 30 novembre 2006 Statut Membre Dernière intervention 14 janvier 2011 19
13 févr. 2009 à 23:47
Salut,

On doit pouvoir faire plus court non ?

function numerote($file) {
if (!is_file($file) || !(is_readable($file)) {
return false;
}
$buffer = '<ol>'; foreach ($lines file($file) as $num> $line) {
$buffer .= "<li>$line</li>";
}
$buffer .= '</ol>';
return $buffer;
}

Soit dit en passant :

1/ On trouve un exemple (qui retourne un tableau html, certes) sur la doc de PHP : http://fr.php.net/manual/fr/function.file.php#function.file.examples

2/ On peut passer un nombre variables d'arguments à une fonction (donc à une méthode également) et les récupérer avec funv_get_args() (personnellement, je préfère cette méthode à celle qui consiste à passer un tableau). D'ailleurs, je ne vois pas l'intérêt de faire comme ça quand le noombre d'arguments est fixe (deux pour ton constructeur).

3/ Ta classe en fait beaucoup trop. Elle lit, formate le texte et l'écrit dans un nouveau fichier. Elle ne devrait pas en faire autant. Le formatage devrait, à la limite, pouvoir être configuré (ce n'est pas le cas dans mon exemple, certes, j'ai pondu ça en quelques secondes pour illustrer). Il faudrait plutôt des classes pour chaque type de formatage (texte brut, tableau html, liste html, etc) étendant la classe "principale". Pour l'écriture dans un fichier, ça me parait arbitraire : il faudrait là encore une classe étendue pour écrire dans un fichier, envoyer le texte sur la sortie standard, l'écrire sur un ftp, etc.

Pour résumer, je pense qu'une classe pour faire juste ça, c'est excessif. Une simple fonction, voire quelques unes bien, pensées, ce serait largement suffisant.
Rejoignez-nous