Script PHP per eliminare spazi e controllare validità link

Post “just for me” come tempo fa nel caso di XSLT, giusto per ricordarmi uno script e qualora servisse a qualcuno tanto meglio.

Avevo bisogno di uno script molto spartano che leggesse da un database il path, levasse eventuali spazi all’inizio e alla fine, convertisse gli altri spazi in underscore ( _ ), nei casi di modifica del filename lo aggiornasse nel database e infine avevo bisogno di controllare se i link inseriti in questo path erano attivi o no.

<?php
// parametri del database
$db_host = "";
$db_user = "";
$db_password = "";
$db_name = "";

// il path che aggiunto a quello ottenuto dal database forma l'url da controllare
// ad esempio se nel database salviamo il me del file
// il path sarà l'intero percorso dove questo file è salvato
$path="";

$db = mysql_connect($db_host, $db_user, $db_password);
if ($db == FALSE)
die ("Errore nella connessione. Verificare i parametri nel file config.inc.php");
mysql_select_db($db_name, $db)
or die ("Errore nella selezione del database. Verificare i parametri nel file config.inc.php");
echo "<html>
<head>
        <title>Test path</title>
</head>
<body>
<table>";

// query per ottenere tutti i path, nel database di topincs le occurrences con type 347
$query = "SELECT id, value FROM occurrences WHERE type=347 ORDER BY id";
$result = mysql_query($query, $db);
while ($row = mysql_fetch_array($result))
{

    // elimina eventuali spazi alla fine della stringa
    $filename=trim($row[value]);
    // converte gli spazi in _
    $filename = str_replace(" ", "_", $filename);
    //se il filename è stato aggiornato lo salva
    if ($filename!=$row[value])
    {
        $query= "UPDATE cededa.occurrences SET occurrences.value = '$filename', occurrences.modification_ts = NOW( ) WHERE occurrences.id = $row[id] LIMIT 1" ;
    }
    echo "
<tr>
<td>$row[id]</td>
<td>$filename</td>
";
    // controllo se l'immagine/pagina web è presente
    $url= $path.$filename;
    $status = @fopen($url, "r");
    if (!$status)
    {
        echo "
<td>ERROR!</td>
";
    }
    else
    {
        fclose($status);
        echo"
<td>OK</td>
";
    }
       echo"</tr>
";
}
echo "</table>
</body></html>";
?>

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s