在源代码中,我有这样的地址/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 回答