simplecontent

PHP Snippets und Beispiele

Inhaltsverzeichnis A-Z Register
Beispiel ausführen

Links extrahieren

Alle Verweise in HTML ersetzen

Ein Beispiel um aus einem HTML-Abschnitt alle Links zu extrahieren um sie z.B. an anderer Stelle aufzulisten. Das PHP Code Beispiel:
<?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://www.beispiel.de">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;
?>

Dieses PHP Snippet soll in erster Linie als Beispiel und Anregung für eigene Bemühungen dienen.
Gerne darf man es für Projekte aller Art benutzen.
Möchte jemand das Snippet also solches in ähnlicher oder anderer Form veröffentlichen ist ein kleiner Hinweis auf simplecontent.net nicht zuviel verlangt oder Herr Koch?
Für die Abwesenheit von Fehlern kann natürlich keine Gewähr gegeben werden.