Linkcheck ohne url_fopen

Cosinus14

Grünschnabel
Hallo Leute,

ich habe ein einfaches Webkatalog-Script geschrieben mit den üblichen Funktionen...

Über folgendes Script prüfe ich ob die URL überhaupt vorhanden ist und ob ein Backlinkg gesetzt wurde:

PHP:
<?PHP
include "../inc/config.inc.php";
$home_url= $_GET['home_url'];

$gesuchter_link= SEITENURL;
$link_gefunden="";

if(ini_get('allow_url_fopen') != 1)
{
   echo"<font color=\"red\" size=\"2\" face=\"Tahoma, Verdana, Arial\">Linkcheck nicht m&ouml;glich</font>";
}
else
{
   if (!file_exists($home_url))
   {
     $file = fopen($home_url,'r') or die ("<font color=\"red\" size=\"2\" face=\"Tahoma, Verdana, Arial\"><b>FEHLER: URL nicht gefunden</font>");
     $i = 0;
     do
     {
	    $i++;
        $teste_seite[$i] = trim(fgets($file,4096));
     }
     while (!feof($file));
     fclose($file);

     for($x = 1; $x <= $i; $x++)
     {
    	$teste_zeile = ereg_replace($gesuchter_link,"test",$teste_seite[$x]);
        if ($teste_zeile != $teste_seite[$x])
        {
           $link_gefunden = "ja";
        }
     }
     if ($link_gefunden == "ja")
     {
        echo "<font color=\"green\" size=\"2\" face=\"Tahoma, Verdana, Arial\"><b>URL OK! - Backlink gefunden!</b></font>";
     }
     if ($link_gefunden != "ja")
     {
        echo "<font color=\"green\" size=\"2\" face=\"Tahoma, Verdana, Arial\"><b>URL OK!</b></font> - <font color=\"red\" size=\"2\" face=\"Tahoma, Verdana, Arial\"><b>Kein Backlink vorhanden!</b></font>";
     }
   }
}
?>

Nun hat mein Provider ( verständlicherweise ) allow_url_fopen auf OFF gesetzt.

Fragen:
Wie sieht es mit der Sicherheit bei dem von mir verwendeten Code aus?
Gibt es andere Möglichkeiten eine solche Abfrage zu realisieren - zb. über fsockopen() oder cURL ?
Wie müsste der Code dann geändert werden ?

Für etwas Hilfe wäre ich als PHP-Neuling überaus dankbar :rolleyes:
 
PHP:
<?php
$domain = "beispiel.de";
$file = "test.php";

$string = "Suchstring";

require_once("httpconnection.class.php");
$http = new httpconnection($domain);
$data = $http->get($file);

if($data['head']['code'] == '404')
{
  # Seite nicht gefunden
  print '404';
}
else
{
  if(stristr($data['body'], $string) === false)
  {
    # Kein Trackback
    print 'false';
  }
  else
  {
    # Trackback gefunden
    print 'true';
  }
}

unset($http); 
?>

Das Skript benötigt die HTTPConnection Class von Dennis Wronka.
Die kriegst du in seiner Klassensammlung.

Falls du Erklärungen brauchst, frag einfach.
 
Zurück