Links extrahieren

Alle Verweise in HTML ersetzen
Beispiel ausführen
Ein Beispiel um aus einem HTML-Abschnitt alle Links zu extrahieren um sie z.B. an anderer Stelle aufzulisten.
<?php
/**
* Links ersetzen
*/

define ('cTEXT_EXLINKS','<br><p><b>Dieser HTML-Abschnitt enthält 
     Verweise auf diese Webseiten</b></p><pre>%s</pre>'
);

$example = <<< EOT
<p>Dies ist ein <a href="http://example.org">Beispiel</a> wie man in 
einem HTML-Abschnitt alle Links ersetzen kann.<br>
Das kann man beispielsweise gut für die 
<a href="http://www.erzeugung.de">Erzeugung</a> von 
<a href="http://www.druckversion.de">Druckversionen</a> verwenden.<br>
Verweise deren URL nicht mit http:// beginnen, also i.d.R. 
<a href="#">projekt- oder seiteninterne Links</a>, werden dabei 
ignoriert.<br>
Erläuterungen zu den einzelnen Funktionen finden sich unter 
<a href="http://www.php.net">PHP.net</a>
</p>
EOT;

$ExternalUrls = array();

function 
ExtractUrls($lbl$url, &$url_stack)
{
    static 
$c 1;

    if (
eregi('^http://'$url)){

        
$url_stack[$c] = $url;
        
$result sprintf('<u>%s</u> [<b>%d</b>]'$lbl$c);
        
$c++;    
    } else {

        
$result $lbl;
    }
    return 
$result;
}


$printcontent preg_replace(
 
'#<a.*href="(.*)".*>(.*)</a>#Uie',
 
'ExtractUrls("\2", "\1", $ExternalUrls)',
 
$example
 
);

$exlinks '';

if (
$ExternalUrls){

    
$tmp '';
    foreach (
$ExternalUrls as $k => $v){

        
$tmp.= sprintf ('[<b>%d</b>] %s<br>'$k$v);
    }
    
$exlinks sprintf(cTEXT_EXLINKS$tmp);


print 
$printcontent.$exlinks;
?>

Benutzte Funktionen


Hinweise zum DatenschutzImpressum © 2005-2008 S. Eickhoff