De PHP4 à PHP5: pourquoi ce problème

Eléphant du PHP | 112 Messages

08 nov. 2009, 19:00

Bonjour,

Voilà quelque chose que je ne comprends pas: ce script fonctionne très bien sous PHP4, et lorsque je passe sous PHP5, son exécution me rend un espace vierge (au lieu de mon joli début d'article...). Pourtant toutes les fonctions qui sont employées sont compatibles entre les 2 Versions. Une idée?
$handle = fopen($url, "r");
while ($str = fread ($handle, 16))
{$src .=$str;};
fclose ($handle);
$src = strstr($src, "<h3>");
$src = substr($src, 0, 380);
$tab = explode( " ", $src);
//La partie ci-dessous permet de finir le texte sur une fin de mot
$n=count($tab);
$i=0;
while($i<$n-1)
{
$texte.=" ".$tab[$i];
$i++;
}
echo $texte.
Merci d'avance,
bien cordialement,

Thierry

ViPHP
fab
ViPHP | 2657 Messages

08 nov. 2009, 21:37

tu as un ; en trop après le } ici :
while ($str = fread ($handle, 16))
{$src .=$str;};
Par contre je suis pas certain que ça fonctionne sous PHP4 mais surtout en ce qui concerne PHP 5 tu dois avoir un problème sur la gestion des erreurs, regarde ton php.ini vérifie error_reporting et display_errors
Seul l'intelligent a le pouvoir de se trouver con
try { work(); } catch(FlemmeExeption $e) { sleep(84600); }

Eléphant du PHP | 112 Messages

09 nov. 2009, 01:54

Bonjour,

Non, j'ai enlevé le "; " incriminé, mais cela ne change rien...
Au niveau du php.ini, j'ai:
error_reporting = E_COMPILE_ERROR|E_ERROR|E_CORE_ERROR


Merci

Thierry

Eléphant du PHP | 369 Messages

09 nov. 2009, 10:05

Salut,
Bonjour,
Voilà quelque chose que je ne comprends pas: ce script fonctionne très bien sous PHP4, et lorsque je passe sous PHP5, son exécution me rend un espace vierge (au lieu de mon joli début d'article...). Pourtant toutes les fonctions qui sont employées sont compatibles entre les 2 Versions. Une idée?
$handle = fopen($url, "r");
while ($str = fread ($handle, 16))
{
   $src .=$str;
}
fclose ($handle);

$src = strstr($src, "<h3>");
$src = substr($src, 0, 380);
$tab = explode( " ", $src);

//La partie ci-dessous permet de finir le texte sur une fin de mot
$n=count($tab);
$i=0;
while($i<$n-1)
{
   $texte.=" ".$tab[$i];
   $i++;
}
echo $texte.
Merci d'avance,
bien cordialement,
Thierry
Le code présenté ne semble pas contrarier php 5... mais j'ai remarqué que quelques variables
ne sont pas déclarées (peut-être en amont de ce que tu as posté mais je l'ignore). Ecris ca en
haut de ta pages.
error_reporting(E_ALL | E_STRICT);
init_set("display_error", 1);
Ce n'est pas la soltion à ton problème mais possible que ca puisse t'aider à tracer le problème
donc, de ce fait, le résoudre. Pose aussi des points de tests à chaque assignation, ca peut aussi
aider (j'imagine que tu l'as déja fait mais...).

@+ bon code ;)