phpbar.de logo

Mailinglisten-Archive

[php] Link als link ersetzen

[php] Link als link ersetzen

Werner Stuerenburg php_(at)_phpcenter.de
Wed, 1 Aug 2001 14:08:43 +0200


Bei mir geht es mit

function sp($str, $searchTerm){
//this compensates a design flaw in php3
//strpos you could not distinguish between
//first position and not found
        if (!is_string($searchTerm)) return 0;
        if (is_array($searchTerm)) return 0;
        if (!$searchTerm) return 0;
        return strpos(chr(31).$str, $searchTerm);
}

function ssp($str, $searchTerm){
//this adds case insensitivity
        return sp(strToLower($str), $searchTerm);
}

Ich denke, sp sollte auch 0 zurückgeben könne. Siehe auch
Kommentar zu strpos im manual, wie man noch auf dies
Designproblem reagieren kann.

So kann man besser sehen, was Sache ist:

$inhalt ="www.xyz.de , www.zyx.com , info_(at)_xyz.de\nadhoifhosd
http://www.xyz.de sdhfio";
echo $inhalt."<hr>";

$inhalt = add_http(add_mailto($inhalt));
echo $inhalt."<hr>";

$inhalt = replace_uri($inhalt);
echo $inhalt."<hr>";

$inhalt = sub_http($inhalt);
echo $inhalt."<hr>";

$inhalt = sub_mailto($inhalt);
echo $inhalt."<hr>";

Kriegst du auch noch die Sache mit den Satzzeichen hin?

Markus Smigelskis schrieb am Mittwoch, 1. August 2001, 12:51:21:

> 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>";
?>>



-- 
Herzlich
Werner Stuerenburg            

_________________________________________________
ISIS Verlag, Teut 3, D-32683 Barntrup-Alverdissen
Tel 0(049) 5224-997 407 · Fax 0(049) 5224-997 409
http://pferdezeitung.de




php::bar PHP Wiki   -   Listenarchive