1

これは私が現在持っているコードです。毎回返される結果に含めるようhttp://に微調整するにはどうすればよいですか? href現在、http://元の文字列変数に含まれていない限り、返される結果には含まれていません$texthref原本に無ければ追加して欲しい$textです。ありがとう!

function urlfixer($text){

   $pattern  = '#\b(([\w-]+://?|www[.])[^\s()<>]+(?:\([\w\d]+\)|([^[:punct:]\s]|/)))#';
   $callback = create_function('$matches', '
       $url       = array_shift($matches);
       $url_parts = parse_url($url);

       $text = parse_url($url, PHP_URL_HOST) . parse_url($url, PHP_URL_PATH);
       $text = preg_replace("/^www./", "", $text);

       $last = -(strlen(strrchr($text, "/"))) + 1;
       if ($last < 0) {
           $text = substr($text, 0, $last) . "&hellip;";
       }

       return sprintf(\'<a rel="nofollow" href="%s">%s</a>\', $url, $text);
   ');

   return preg_replace_callback($pattern, $callback, $text);
}
4

2 に答える 2

2

$url に http:// が含まれているかどうかわからないので、最初に貼り付けてから、念のために取り除いてください。

$url = 'http://' . str_replace('http://','',$url);
return sprintf('<a rel="nofollow" href="%s">%s</a>', $url, $text);
于 2013-03-28T03:15:50.283 に答える
1
$url       = array_shift($matches);
if( substr($url,0,6)!='http://' ) {
    $url='http://'.$url;
}

このような何かがそれを行う必要があります

于 2013-03-28T03:24:44.463 に答える