Bonjour,
je souhaite lancer un script php automatiquement via le planificateur de taches OVH.
J'ai un hebergement mutualisé pro.
J'ai créé la planification de tache via Manager, j'ai reçu le log par mail donc le script a bien été lancé.
Mon souci est que le script n'a pas fonctionné.
C'est un script qui fonctionne lorsque je lance manuellement en saisissant l'URL.
Ce script parse un flux XML et insère des enregistrement dans la BDD.
Je sais que mon script fonctionne manuellement, mais maintenant je voudrais savoir si un script PHP "classique" est lisible par le cron OVH.
Dans la doc OVH, ils disent:
Citation:
|
D'abord, il faut s'assurer que le script fonctionne en mode shell, c'est à dire qu'il est capable de s'exécuter depuis la ligne de commande. Pour cela, il faut placer dans la première ligne #!/usr/local/bin/php s'il s'agit d'un script php, #!/usr/bin/perl si c'est un script perl, ou #!/bin/bash pour un script shell, puis utiliser la commande chmod 700 script.cgi sur le script. Si vous avez l'accès telnet/ssh, vous pouvez tester son exécution avec ./script.cgi Cela est facultatif pour l'exécution d'un script PHP.
|
Le souci est que je n'ai aucune idée de ce que veut dire "il faut s'assurer que le script fonctionne en mode shell"
Ya-t-il un code particulier a mettre dans le script ?
J'ai bien ajouté le "#!/usr/local/bin/php" en premiere ligne.
Voici mon script (desolé de masquer certains caractères par souci de confidentialité, je pense que l'essentiel est là pour la compréhension de mon problème)
Code :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70
|
<?php
#!/usr/local/bin/php
include("includes/fonctions.php");
// VERIFICATION DU DERNIER FLUX //
$strReq = "SELECT xxx FROM xxxs WHERE xxx = 'xxx' ORDER BY date_rss DESC";
// CONNEXION BDD //
$intReq = db_query($strReq);
$date_dernier_flux = mysql_result($intReq, 0, 'date_rss');
$nb_flux_ajoute = 0;
/// PARSE XML ///
$rss = simplexml_load_file('http://www.xxx.com/xxx/feed','SimpleXMLElement',LIBXML_NOCDATA);
$ns=$rss->getNamespaces(true);
$flag_stop = 0;
foreach ($rss->channel->item as $item) {
if($flag_stop == 0) {
// RECUPERATION DE LA DATE //
$date_post = explode(' ', $item->pubDate);
switch($date_post[2]) {
case 'Jan': $mois_post = '01'; break;
case 'Feb': $mois_post = '02'; break;
case 'Mar': $mois_post = '03'; break;
case 'Apr': $mois_post = '04'; break;
case 'May': $mois_post = '05'; break;
case 'Jun': $mois_post = '06'; break;
case 'Jul': $mois_post = '07'; break;
case 'Aug': $mois_post = '08'; break;
case 'Sep': $mois_post = '09'; break;
case 'Oct': $mois_post = '10'; break;
case 'Nov': $mois_post = '11'; break;
case 'Dec': $mois_post = '12'; break;
}
$date_bd = $date_post[3].'-'.$mois_post.'-'.$date_post[1].' '.$date_post[4];
// SI PAS DE NOUVEAUX FLUX ON S'ARRETE //
if($date_dernier_flux == $date_bd) {
$flag_stop = 1;
}
else {
// SOURCE //
$source_rss = 'xxx';
/// GESTION DES CARACTERES SPECIAUX ET ENCODAGE ///
$title=addslashes(utf8_decode(str_replace("’" , "'", $item->title)));
$description=addslashes(utf8_decode(str_replace("’" , "'", $item->description)));
$description=str_replace("…" , "...", $description);
$content=addslashes(utf8_decode(str_replace("’" , "'", $item->children($ns['content']))));
$content=str_replace("…" , "...",$content);
$link=$item->link;
$category=addslashes(utf8_decode(str_replace("’" , "'", $item->category)));
/// INSERT SQL ///
$strReq = "INSERT INTO xxx VALUES (
'',
'".$date_bd."',
'".$source_rss."',
'".$title."',
'".$description."',
'".$content."',
'".$link."',
'".$category."'
)";
$intReq = db_query($strReq);
}
}
}
?> |
Si vous avez une idée, merci beaucoup
Mica