0

ファイルをクロールして、すべての画像パスの先頭に「../../」を挿入しようとしています。残念ながら、スクリプトはタイムアウトしています。これが追加されるまでに実行に数秒しかかからなかったため、本来あるべきことを実行していないことがわかります。これが私がやっている方法です:

$filedata = substr_replace(substr($filedata,$imageBeginning,1),"../../",$imageBeginning);

これを実現するために HTML ファイル全体をクロールしているので、効率的なソリューションが必要です。どんな助けでも大歓迎です。

4

1 に答える 1

0

これは完全にテストされていませんが、次のようなものです。

preg_replace('/(<img\s+.*?src=")(.*\\.(?:jpg|png|bmp|gif).*?>)/', '$1../../$2', $filedata);

説明: 正規表現で 2 つのキャプチャを作成しています。img1 つ目は、タグの開始からsrc属性の開始までのすべてです。2 番目はsrc属性値とそれ以降のすべてです。次に、置換の途中に「../../」を挿入します。

http://php.net/manual/en/function.preg-replace.php

于 2013-02-03T19:41:40.547 に答える