2016-11-08 14 views
-2

私はいくつかのより多くのリンクや他のHTMLタグとパターンPHPの特定のリンクを検索し、それら

$mystring="bla <a href="website.com"></a>"; 

次の文字列を持った後、URLを追加します。特定の単語を含むすべてのHREFタグを

  • 検索:

    は私がに、PHPの関数を使用します。この場合、単語はwebsite.comとなります。

  • すべてのオカレンスに同じURLのテキストリンクを追加します。

例:

<a href="website.com?bla"></a> 

はになる必要があります。

<a href="website.com?bla"></a><br><a href="website.com?bla">New link here</a> 

と同じことが、残りのリンクのために行きます。

これを行うにはどうすればよいですか?

+0

... – Blueblazer172

+0

は、私が編集した:その後$str_to_insertはダイナミック作る終値

$needle = "website.com?"; // word to find $endLink = "</a>" $lastPos = 0; $str_to_insert = "<br><a href=\"website.com?bla\">New link here</a>" // text to append while (($lastPos = strpos($mystring, $needle, $lastPos))!== false) { //position just after finding the string is: occurrence + string length $lastPos = $lastPos + strlen($needle); //finding the end of link (to append it there) $writePos = strpos($mystring, $endLink, $lastPos); //appending the string and updating $mystring $mystring = substr_replace($mystring, $str_to_insert, $writePos, strlen($endLink); //add the appended string to lastPos, to avoid searching it $lastPos = $writePos + strlen($str_to_insert) } 

EDIT

を見つけた後、文字列/新しいリンクを挿入質問 – prav

答えて

1

まず、strposメソッドを使用して、オフセットとしてlastPosを使用して、すべての発生箇所を繰り返し処理する必要があります。私はあなたの質問を取得していない

while (($lastPos = strpos($mystring, $needle, $lastPos))!== false) { 
     $str_to_insert = substr($mystring, $lastPos, len($needle) 
     //position just after finding the string is: occurrence + string length 
     $lastPos = $lastPos + strlen($needle); 
     // ... the rest keeps the same 
} 
+0

大丈夫ですが、str_to_insertは実際には動的である必要があります。つまり、現在のリンクURLを取得し、その直後に新しいリンクを作成する必要があります。 – prav

+0

@prav私はちょうど答えを編集しました。それがあなたのために働く場合は、あなたが受け入れることを願っ:) – otorrillas

関連する問題