Tom: Reparaturmaßnahme

Beitrag lesen

Hello,

Ich habe mir mit PHP ein kleines Script geschrieben, dass Links aus einem HTML-Dokument filtern kann. Mein Problem ist jetzt, dass ich alle Links ausschließen möchte, die nicht entweder in einem 'a' oder in einem 'area' stehen und außerdem die Anzeige von Links mit Javascript verhindern will, also <a href="javascript: * >. Wie muss ich dazu einen Code erweitern?

<?php

$source = file_get_contents($_GET['url']);

$pattern = "#<(a|area)\s[^>]*href="(?<!javascript:)\s*(.*)".*>#Ui";

preg_match_all($pattern, $source, $array);

foreach($array[2] as $key => $value)
  {
    if (strpos(strtolower($value),'javascript:') === 0)
    {
      unset($array[2][$key]);
    }
    else
    {
      echo htmlspechialchars($value).'<br>';
    }
  }

## Das Array[2] enthält nur keine Lemente mehr, die mit 'javascript:' anfingen

?>

Als "Reparaturmaßnahme" für die kaputte "negative lookbehind assertion".

Harzliche Grüße vom Berg und Frohe Weihnachtszeit

Tom

--

Nur selber lernen macht schlau
zweifeln lassen :-)