ソースコードには、このようなアドレスがあります。各フォルダ名が異なるため/images/image.jpg
js/file.js
、このアドレスのサーバーアドレスに追加する方法は http://server.com/folder/file.jpg
難しいstr_replace()
でしょう。
質問する
301 次
2 に答える
1
pregを使用した解決策は次のとおりです。
$content = '
<script type="text/javascript" src="/js/script.js"></script>
blah blah <a href="/images/image1.jpg">image1</a>
blah blah <a href="/images/image2.jpg">image2</a>
blah blah <a href="/folder/link1.htm">link1
';
$search = array('#"(/)images/#mi', '#"(/)folder/#mi', '#\"(/)js/#mi');
$replace = "http://site.com$1";
$content = preg_replace($search, $replace, $content);
于 2012-09-20T18:23:29.130 に答える
0
サーバーアドレスのグローバル変数を宣言し、すべてのフォルダー名を配列に格納し、ループでトラバースしてから、文字列を連結します。例:ここで実際の動作を確認してください
$server_addr = "http://server.com";
//considering $replace and $folder_names have 1:1 correspondence of search and replace values
$orig = array("/images/image.jpg", "js/file.js"); //and so on...
$replace = array("images", "js"); //and so on...
$folder_names = array('folder'); //and so on...
for( $i=0; $i<=count($replace); $i++) {
foreach ($orig as $o)
$new_path[] = $server_addr . str_replace($replace[$i], $folder_names[$i], $o);
}
于 2012-09-20T15:26:03.703 に答える