2016-11-03 7 views
0

ウェブサイトのページに表示するには、テキストを確認する必要があります。私は同じウェブサイト(他のウェブサイト以外のURLの)のすべてのURLリンクをリンクに変換する必要があります。私は、タグ<a>でそれらすべてを関与させる必要があります。問題はプロパティーhrefで、正しいURLをその内部に入れる必要があることです。私はすべてのテキストを検証しようとしています。もし私がURLを見つけたら、部分文字列 "http://"が含まれているかどうかを確認する必要があります。そうでなければ、hrefプロパティに入れなければなりません。私はいくつかの試みましたが、すべての彼らの:(まだ働いていない任意のアイデアは、私はこれを行うことができますどのようにhrefプロパティチェックURLを変更するには

My機能は以下の通りです:。?

$string = "This is a url from my website: http://www.mysite.com.br and I have a article interesting there, the link is http://www.mysite.com.br/articles/what-is-psychology/205967. I need that the secure url link works too https://www.mysite.com.br/articles/what-is-psychology/205967. the following urls must be valid too: www.mysite.com.br and mysite.com.br"; 

function urlMySite($string){ 
    $verifyUrl = ''; 
    $urls = array("mysite.com.br"); 

    $text = explode(" ", $string); 

    $alltext = ""; 

    for($i = 0; $i < count($texto); $i++){ 
     foreach ($urls as $value){ 
      $pos = strpos($text[$i], $value); 

      if (!($pos === false)){ 
       $verifyUrl = " <a href='".$text[$i]."' target='_blank'>".$text[$i]."</a> "; 

       if (strpos($verifyUrl, 'http://') !== true) {     
        $verifyUrl = " <a href='http://".$text[$i]."' target='_blank'>".$text[$i]."</a> "; 
       } 

       $alltext .= $verifyUrl; 
      } else { 
       $alltext .= " ".$text[$i]." "; 
      } 
     }  
    } 
    return $alltext; 
} 
あなたはすべての回出てくる見つけることPREG_MATCH_ALLを使用する必要があります

答えて

0

function augmentText($text){ 
    $pattern = "~(https?|file|ftp)://[a-z0-9./&?:=%-_]*~i"; 
    preg_match_all($pattern, $text, $matches); 
    if(count($matches[0]) > 0){ 
     foreach($matches[0] as $match){ 
      $text = str_replace($match, "<a href='" . $match . "' target='_blank'>" . $match . "</a>", $text); 
     } 
    } 
    return $text; 
} 

変更したいだけのURLと一致するreguylar表現パターン:URLとクリック可能なリンクでマッチのそれぞれを置き換える

あなたはこの機能を使用することができますクリック可能にする。

幸運

+0

こんにちはCagy79、preg_match_allはよく似ています。しかし、最後の2つの出来事は捕まえられません。この場合、プロトコルをオプションにすることはできますか? – DiChrist

+0

https://regex101.com/を使用してパターンを再生し、パターンに合っているかどうかを確認できます。あなたが必要とするパターンについては、SOに関するその他の質問をチェックすることができます。例:http://stackoverflow.com/questions/1141848/regex-to-match-url – Cagy79

+0

答えが欲しい場合は、それを受け入れてください。ありがとう。 – Cagy79

関連する問題