PDA

View Full Version : [PHP] Questo script mi fa crashare Apache


Alhazred
21-10-2009, 17:43
Non capisco perché facendo girare questo script mi crasha Apache.
Lo scopo dello script è leggere il titolo della pagina e stamparlo.

<html>
<head>
<title>Titolo</title>
</head>
<body>
<?php
$file_remoto = "http://localhost/development/php/get_title/index.php";

$sorgente_file_remoto = implode("", file($file_remoto));

if(eregi("<title>(.+)</title>", $sorgente_file_remoto, $regs)) {

echo "Il titolo della pagina $file_remoto è " . $regs[1];

} else {

echo "Titolo non trovato";

}

?>
</body>
</html>

localhost/development/php/get_title/index.php
è esattamente il file con lo script.

flx2000
22-10-2009, 10:49
Prima di tutto puoi trasformare
$sorgente_file_remoto = implode("", file($file_remoto));
in
$sorgente_file_remoto = file_get_contents($file_remoto);

Tieni presente che eregi (ed ereg) sono funzioni antiche, non più supportate e al loro posto si usa preg_match.

Così l'espressione regolare diventa:

if ( preg_match('/<title>([^<]+)</title>/',$sorgente_file_remoto,$regs) ) {

Magari in questo modo non ti crasha più.

Alhazred
22-10-2009, 10:57
Grazie per la risposta, anche con le modifiche che mi hai consigliato la situazione era la stessa, nel frattempo avevo fatto altre prove.
Si è risolto cambiando l'indirizzo al file da cui ricavare il titolo, mettendolo nel formato
c:\xampp\....\index.php
funziona senza problemi, se lo rimetto
http://localhost/.../index.php
mi da problemi, se metto
http://www.un_sito_online.it/pagina.php
funziona senza problemi.
Sembra che sia proprio il percorso per il file in locale a dargli fastidio, ma non ne capisco il motivo dato che è giusto (ho fatto copia/incolla dalla barra degli indirizzi del browser).