SM-Finder-Logo        
herz Karte Kalender Suche Bookmarks Experte FAQ

Module

Download

SMFinder_Admin_checkAllLinks

Wird verwendet von:
SMFinder_Main

Diese Funktion versucht, die übergebene URL aufzurufen und liefert deren Rückgabecode.

<?php /* published under GPL www.gnu.org/licenses/gpl.html */ 
function SMFinder_Admin_checkAllLinks(){
  include_once("SMFinder_Query_getAllUID.php");
  include("SMFinder_Config.php");
  echo "<h1>Bitte Geduld, der Test dauert....</h1>";
  $UIDs=array();
  $URL=array();
  $fns=array();
  $stati=array();
  list($UIDs,$stati,$fns) = SMFinder_Query_getAllUID("link","!delete","");;
  $dblink=mysql_connect($GLOBALS['dbserver'],$GLOBALS['dbuser'],$GLOBALS['dbpasswd']);
  mysql_select_db($GLOBALS['dbname'],$dblink);
  $dbtable=$GLOBALS['DBTlink'];
  $jetzt=date('Y-m-d H:i:s');
  for($i=0; $i<count($UIDs); $i++){
    if (strlen($UIDs[$i])>=10 AND $stati[$i]!="delete"){
      $endOfURL=substr($UIDs[$i],-3,3);
      if ($endOfURL==".de" | $endOfURL=="com" | $endOfURL=="org" | $endOfURL==".vu" | $endOfURL=="nfo" | $endOfURL=="net" | $endOfURL==".dk" | $endOfURL==".at"){
	$URL[$i]=$UIDs[$i]."/";
      }else{
	$URL[$i]=$UIDs[$i];
      }
      $result=SMFinder_Admin_checkLink($URL[$i]);
      $anfrage="update ".$dbtable." set status='".$result[status]."' where URL='".$UIDs[$i]."';";
#echo "<b>".$anfrage."</b><br>";
      if($ergebnis=mysql_query($anfrage)){}else{echo "Fehler=".mysql_error()."<br>";}
      $anfrage="update ".$dbtable." set lastchecked='".$jetzt."' where URL='".$UIDs[$i]."';";
#echo "<b>".$anfrage."</b><br>";
      if($ergebnis=mysql_query($anfrage)){}else{echo "Fehler=".mysql_error()."<br>";}
    }else{
      $result[status]=-10;
    }
    if ($result[status]==200){$bgcolor=" class='good' ";}
    if ($result[status]<0){$bgcolor=" class='notgood' ";}
    if ($result[status]==404){$bgcolor=" class='mostly' ";}
    echo $URL[$i]."  <span ".$bgcolor.">".$result[status]."</span><br>";
  }
}

function SMFinder_Admin_checkLink($url,$timeout = 10){
  /* 
   echo "Dies ist eine Kopie von <a href='http://aktuell.de.selfhtml.org/artikel/phpasp/existenz/'>
   selfhtml: Existenzprüfung externer HTTP-Resourcen</a><br>";
  */
  $timeout = (int)round($timeout/2+0.00000000001);
  $return = array();
 
 ### 1 ###
  $inf = parse_url($url);
 
  if (!isset($inf['scheme']) or $inf['scheme'] !== 'http') return array('status' => -1);
  if (!isset($inf['host'])) return array('status' => -2);
  $host = $inf['host'];
 
  if (!isset($inf['path'])) return array('status' => -3);
  $path = $inf['path'];
  if (isset($inf['query'])) $path .= '?'.$inf['query'];
 
  if (isset($inf['port'])) $port = $inf['port'];
  else $port = 80;
 
 ### 2 ###
  $pointer = fsockopen($host, $port, $errno, $errstr, $timeout);
  if (!$pointer) return array('status' => -4, 'errstr' => $errstr, 'errno' => $errno);
  socket_set_timeout($pointer, $timeout);
 
 ### 3 ###
  $head =
   'HEAD '.$path.' HTTP/1.1'."\r\n".
   'Host: '.$host."\r\n";
 
  if (isset($inf['user']))
   $head .= 'Authorization: Basic '.
    base64_encode($inf['user'].':'.(isset($inf['pass']) ? $inf['pass'] : ''))."\r\n";
  if (func_num_args() > 2) {
   for ($i = 2; $i < func_num_args(); $i++) {
    $arg = func_get_arg($i);
    if (
     strpos($arg, ':') !== false and
     strpos($arg, "\r") === false and
     strpos($arg, "\n") === false
    ) {
     $head .= $arg."\r\n";
    }
   }
  }
  else $head .= 
   'User-Agent: Selflinkchecker 1.0 (http://aktuell.selfhtml.org/artikel/phpasp/existenz/index.htm)'."\r\n";
 
  $head .=
  'Connection: close'."\r\n"."\r\n";
 
 ### 4 ###
  fputs($pointer, $head);
 
  $response = '';
 
  $status = socket_get_status($pointer);
  while (!$status['timed_out'] && !$status['eof']) {
   $response .= fgets($pointer);
   $status = socket_get_status($pointer);
  }
  fclose($pointer);
  if ($status['timed_out']) {
   return array('status' => -5, '_request' => $head);
  }
 
 ### 5 ###
  $res = str_replace("\r\n", "\n", $response);
  $res = str_replace("\r", "\n", $res);
  $res = str_replace("\t", ' ', $res);
 
  $ares = explode("\n", $res);
  $first_line = explode(' ', array_shift($ares), 3);
 
  $return['status'] = trim($first_line[1]);
  $return['reason'] = trim($first_line[2]);
 
  foreach ($ares as $line) {
   $temp = explode(':', $line, 2);
   if (isset($temp[0]) and isset($temp[1])) {
    $return[strtolower(trim($temp[0]))] = trim($temp[1]);
   }
  }
  $return['_response'] = $response;
  $return['_request'] = $head;
 
  return $return;
 
 } 

Index

Für die Funktionalität des SM-Finders sind viele kleine Tools notwendig. Alle Funktionen beginnen mit SMFinder_ um deren Ursprung zu kennzeichnen. Dem schließt sich die Funktionsgruppe, z.B. Geo_ an, gefolgt vom eigentlichen Namen, der die Aufgabe der Funktion widerspiegeln soll, z.B. PLZ2DB.

Der gesamte Sourcecode darf gemäß GNU General Public License weiterverbreitet werden.

1Makefile
2SMFinder_Admin
3SMFinder_Admin_addCategories
4SMFinder_Admin_checkAllLinks
5SMFinder_Admin_clean
6SMFinder_Admin_exportXML
7SMFinder_Admin_genMap
8SMFinder_Admin_getTimefInt
9SMFinder_Admin_importGeo
10SMFinder_Admin_sendXML2user
11SMFinder_Admin_uploadXML
12SMFinder_Config
13SMFinder_DTD
14SMFinder_Datenbanken
15SMFinder_Edit
16SMFinder_Edit_AddressFields
17SMFinder_Edit_AdrFields
18SMFinder_Edit_CatsAtrs
19SMFinder_Edit_EventFields
20SMFinder_Edit_LinkFields
21SMFinder_Edit_Modus
22SMFinder_Edit_POST
23SMFinder_Edit_PersFields
24SMFinder_Edit_genUID
25SMFinder_Elementdefinitions
26SMFinder_Geo
27SMFinder_Geo_PLZ2DB
28SMFinder_Geo_Umkreis
29SMFinder_Geo_getGeo
30SMFinder_Help
31SMFinder_Help_Download
32SMFinder_Help_FAQ
33SMFinder_Help_KategorienInfo
34SMFinder_Help_editAddress
35SMFinder_Help_editEvent
36SMFinder_Main
37SMFinder_MapDACH
38SMFinder_Menu
39SMFinder_Modules
40SMFinder_ModulesIndex
41SMFinder_Pagelayout
42SMFinder_Query_ABC
43SMFinder_Query_Calendar
44SMFinder_Query_CheckCatsAtrs
45SMFinder_Query_Map
46SMFinder_Query_Mask
47SMFinder_Query_SearchEngine
48SMFinder_Query_analyzeSearch
49SMFinder_Query_composeDates4UIDs
50SMFinder_Query_dateFormat
51SMFinder_Query_dmoz
52SMFinder_Query_expandSeries
53SMFinder_Query_find
54SMFinder_Query_getAllUID
55SMFinder_Query_getUID4CatsAtrsGeo
56SMFinder_Query_getUID4Geo
57SMFinder_Query_getUID4adr
58SMFinder_Query_getUID4fn
59SMFinder_Query_readAddress
60SMFinder_Query_readAdr
61SMFinder_Query_readBookmark
62SMFinder_Query_readEvent
63SMFinder_Query_readLink
64SMFinder_Query_readPers
65SMFinder_Query_showAddress
66SMFinder_Query_showAdr
67SMFinder_Query_showCalendar
68SMFinder_Query_showCalendarDynamic
69SMFinder_Query_showEvent
70SMFinder_Query_showEventList
71SMFinder_Query_showEventsChronological
72SMFinder_Query_showLink
73SMFinder_Query_showPers
74SMFinder_Query_showResult
75SMFinder_Query_validDate
76SMFinder_Style
77SMFinder_Write_Address
78SMFinder_Write_Adr
79SMFinder_Write_Event
80SMFinder_Write_Link
81SMFinder_Write_Pers
82SMFinder_Write_deleteEntry
83SMFinder_XML_checkType
84SMFinder_XML_export
85SMFinder_XML_extractAttribute
86SMFinder_XML_extractTag
87SMFinder_XML_findAllElements
88SMFinder_XML_import
89SMFinder_XML_importParseAddress
90SMFinder_XML_importParseAdr
91SMFinder_XML_importParseCatsAtrs
92SMFinder_XML_importParseEvent
93SMFinder_XML_importParseLink
94SMFinder_XML_importParsePerson
95SMFinder_XML_readFile
96SMallGiessen_SMFinder
97ShowCatsAtrsNice
98index
99php2txt.pl
100sm-finder-02.dtd
101testGeo
102sm-finder-02.dtd
103

Datenbanken

 

SM-Finder-Logo

Die hier zur Verfügung gestellten Informationen basieren auf dem Austauschnetzwerk des SM-Finders.
Änderungen an eurem Datensatz könnt ihr z.B. beim Arbeitskreis SM-Finder vornehmen.
Bei Fragen und Problemen schreibt bitte an: sm-finderATki-co.org
Der AK-SM-Finder ist korporatives Mitglied der BVSM e.V.

Für Aktualität und Richtigkeit der dargebotenen Infomationen kann keine Gewähr übernommen werden!

blank

blank