0

ソースコードには、このようなアドレスがあります。各フォルダ名が異なるため/images/image.jpg js/file.js、このアドレスのサーバーアドレスに追加する方法は http://server.com/folder/file.jpg難しいstr_replace()でしょう。

4

2 に答える 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 に答える