Page 1 sur 1

[résolu] Tâche Cron et header

Posté : 01 déc. 2011, 11:34
par Castor Gaspard
Bonjour,

Je souhaiterai exécuter un script Php grâce à une tâche Cron.

Dans mon fichier, j'indique d'abord l’emplacement de l'exécutable. Jusque là, c'est logique... :)

Ensuite, comme on script utilise des caractères spéciaux, je veux fixer le header en utf-8. Là, Php grogne : Cannot modify header information - headers already sent by....

Si je place le header en première ligne, c'est mon serveur qui n'est pas content, car il ne voit pas Php.

Voici les premières lignes de mon fichier :

Code : Tout sélectionner

#!/usr/local/bin/php5 #php -f /home/data/site/file.php <?php header('Content-Type: text/html; charset=utf-8'); ?>
Aussi vos idées seraient-elles les bienvenues ! :mrgreen:

Merci.

Gaspard

Re: Tâche Cron et header

Posté : 01 déc. 2011, 11:57
par moogli
salut,

c'pas possible, parce que pour php a partir du moment où tu utilise un truc en dehors de <?php ?> c'est envoie d'entête.

ceci dit je m'interroge sur l'utilité de la chose : pourquoi gérer l'affichage alors que par essence un truc automatique ne sera pas vue par un humain !

p'tet qu'avec plus d'info on pourrais mieux t'aider.

sinon php -f nomdufichier plutot que de l'indiquer dans le fichier ;)


@+

Re: Tâche Cron et header

Posté : 01 déc. 2011, 12:00
par Mazarini
Bonjour,

Il serait peut être plus simple de mette usr/local/bin/php5 -f /home/data/site/file.php dans cron ou de créer un script avec cette commande et de l'utiliser dans cron.

Une alternative est de passer par la commande wget qui fait un appel via apache.

Re: Tâche Cron et header

Posté : 01 déc. 2011, 12:06
par Castor Gaspard
Bonjour;

Merci pour vos réponses rapides.

En fait, oui, Moogli, je comprends ta remarque... Ma tâche Cron vise à alimenter une table Sqlite après interrogation d'un serveur distant, d'où l'intérêt de l'encodage.

Cordialement,

Gaspard

Re: Tâche Cron et header

Posté : 01 déc. 2011, 12:35
par Mazarini
Bonjour,

La commande header() et juste un envoi d'information à un navigateur. Elle n'a pas d'influence sur l'encodage utilisé par PHP. En fait elle permet d'indiquer au navigateur qu'elle encodage est utilisé par PHP. C'est à priori lié à l'OS ou au fichier PHP.

Si ton script fait uniquement des mises à jour, tu peux faire le retour sous forme texte. Pas la peine de faire le compte-rendu en html.

Pour info, sous Ubuntu il y a 2 "php.ini", un pour apache et un pour la ligne de commande. Cela permet entre autre de ne pas générer les messages d'erreur au format HTML en ligne de commande ou de fixer un temps limite d'exécution différent (d'après ce que j'ai compris...).

Re: Tâche Cron et header

Posté : 01 déc. 2011, 13:03
par Castor Gaspard
Bonjour,

Merci, Mazarini. Tu as en effet raison. Sans affichage, l'encodage de scaractères semble sans importance selon mes test.

Aussi mon sujet est résolu.

Encore merci.

Gaspard

Re: [résolu] Tâche Cron et header

Posté : 01 déc. 2011, 14:08
par moogli
sinon juste pour info, dans ton cas => [url=http://www.php.net_utf8_encode]utf8_encode[/url] semble être une solution, attention il faut être certain que les caractères ne soient pas en utf8 à la base ;)


@+

Re: [résolu] Tâche Cron et header

Posté : 01 déc. 2011, 15:16
par Mazarini
Sauf erreur de ma part, c'est dans la configuration du système que l'on définit le codage des caractères. C'est ce codage qui est utilisé par vi ou par les autres éditeurs. Certain éditeur permettent de choisir le codage d'un fichier.
En général je galère pas mal pour mettre en phase ce genre de chose. Une fois cela fixé, il n'y a pas trop à ce poser de question.

Re: [résolu] Tâche Cron et header

Posté : 01 déc. 2011, 17:17
par Castor Gaspard
Moui,

Php est casse-tête pour l'encodage des caractères pour un codeur en herbe, comme moi. :)

On me dit que Php 6 sera plus simple : réalité ou légende ?

Bien à vous,

Gaspard