回答編集履歴
1
前回のでは、文字列に複数のimgタグがあった際に同じファイル名に置き換わってしまったので、修正しました
answer
CHANGED
@@ -1,9 +1,10 @@
|
|
1
|
-
|
1
|
+
$pregCount = preg_match_all("/<img [^>]*src\s*=\s*[\"']?([^\"'> ]+)/i", $path,$solo);
|
2
|
+
for($i=0;$i<$pregCount;$i++) {
|
3
|
+
$newPath= "";
|
2
|
-
$
|
4
|
+
$pathName = explode("/",$solo[1][$i]);//imgの属性値を取り出してスラッシュで分割
|
5
|
+
$newPath = end($pathName);//ファイル名だけを取得
|
6
|
+
$newPath = "images/".$newPath;//相対パスの生成
|
7
|
+
$path = str_replace($solo[1][$i],$newPath,$path);
|
8
|
+
}
|
3
9
|
|
4
|
-
$filename = end($url);
|
5
|
-
$filename = "images/".$filename;
|
6
|
-
|
7
|
-
$path = preg_replace("/(<img [^>]*src\s*=)\s*[\"']?([^\"'> ]+)/i", '$1'.$filename, $path);
|
8
|
-
|
9
10
|
取り出したURLからファイル名だけを取り出して、images/つけて、おきかえました。
|