Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > Général Conception Web > Hébergement > OVH
OVH Forum de support pour vos questions techniques sur votre hébergement OVH
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 31/03/2011, 12h04   #1
Invité régulier
 
Inscription : février 2005
Messages : 27
Détails du profil
Informations forums :
Inscription : février 2005
Messages : 27
Points : 6
Points : 6
Envoyer un message via MSN à mica94
Par défaut Demande d'aide planificateur de taches

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
mica94 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 03h49.


 
 
 
 
Partenaires

Hébergement Web