phpbar.de logo

Mailinglisten-Archive

[php] Link als link ersetzen

[php] Link als link ersetzen

Markus Smigelskis php_(at)_phpcenter.de
Wed, 01 Aug 2001 12:51:21 +0200


Hab jetzt mal untenstehendes fertig gemacht. Aber irgendwie klappt das
noch nicht. Der link mit http wird ausgetauscht. die links mit www aber
nicht.
Und die email wird gar nicht beachtet. 
Was mache ich falsch?

Danke Markus

 
<?
function replace_uri($str) {
  $pattern =
'#(^|[^\"=]{1})(http://|ftp://|mailto:|news:)([^\s<>]+)([\s\n<>]|$)#sm';

  return preg_replace($pattern,"\\1<a
href=\"\\2\\3\"><u>\\2\\3</u></a>\\4",$str);
}

function sp($haystack, $needle, $offset=0) {
  $haystack = strtolower("$haystack");
  $needle = strtolower("$needle");
  
  $pos = strpos($haystack, $needle, $offset);
  if (!is_int($pos) && !$pos) {
    $pos = -1;
  }
  return $pos;
} 

function ssp($haystack, $needle, $offset=0) {
  $pos = strpos($haystack, $needle, $offset);
  if (!is_int($pos) && !$pos) {
    $pos = -1;
  }
  return $pos;
} 
 
function add_http($str) {
        if (!ssp($str, 'www.')) return $str;
        $str = str_replace('www.', 'http://www.', $str);
        return str_replace('http://http://', 'http://', $str);
}

function add_mailto($str){
        if (!sp($str, '_(at)_')) return $str;
        $ar = explode(' ', $str);
        while(list($key, $val) = each($ar)) {
                if (sp($val, '_(at)_') && !ssp($val, 'mailto')){
                        $ar[$key] = 'mailto:' . $val;
                }
        }
        return implode(' ', $ar);
}

function sub_http($str) {
      if (!ssp($str, '>http:')) return $str;
      $str = str_replace('>http://', '>', $str);
      return $str;
};

function sub_mailto($str) {
      if (!ssp($str, '>mailto:')) return $str;
      $str = str_replace('>mailto:', '>', $str);
      return $str;
};

$inhalt ="www.xyz.de , www.zyx.com , info_(at)_xyz.de\nadhoifhosd
http://www.xyz.de sdhfio";
echo $inhalt."<br>";
$inhalt = add_http(add_mailto($inhalt));
echo $inhalt."<br>";
$inhalt = replace_uri($inhalt);
echo $inhalt."<br>";
$inhalt = sub_http($inhalt);
echo $inhalt."<br>";
$inhalt = sub_mailto($inhalt);
echo $inhalt."<br>";
?>



php::bar PHP Wiki   -   Listenarchive