我在PHP中有一个数组$ aResults完整的数千个URL,如下所示:
Array ( [0] => http://test.com/server1/Image?img=nortel.jpg )
Array ( [1] => http://test.com/server1/Image?img=network.jpg )
我需要替换每个网址中的文字,并将服务器从server1替换为server5,将word替换为照片,这样每个网址应如下所示:
http://test.com/server5/photo?img=
我如何做到这一点?
我尝试过str_replace函数的变体,但我无法完成这项工作:
$sImgURL = $aResults[1][0];
$filter_url ='server1/Image';
$replace='server5/photo';
$filtered_url = str_replace($filter_url, $replace, $aResults);
print_r($aResults);
实现这一目标的最佳方法是什么?感谢
答案 0 :(得分:0)
for ($i = 0; $i <= sizeof($aResults); $i++) {
$aResults[$i] = str_replace('server1/Image', 'server5/photo', $aResults[$i]);
}
答案 1 :(得分:0)
您可以使用array_map和str_replace函数:
<?php
$data = array(
0 => 'http://test.com/server1/Image?img=nortel.jpg' ,
1 => 'http://test.com/server1/Image?img=network.jpg',
2 => 'http://test.com/server1/Image?img=rk.jpg',
3 => 'http://test.com/server1/Image?img=nek.jpg'
);
function foo($val){
return str_replace(
array('server1','Image'),
array('server5','photo'),
$val
);
}
$res = array_map("foo",$data);
var_dump($res);
?>
正如Rizier123所建议的那样,你可以通过以下方式完成:
var_dump(str_replace('server1/Image','server5/photo',$data));
答案 2 :(得分:-1)
将您的值设置为'find',将值替换为'replace'到数组中。
$find = array('server1', 'Image');
$replace = array('server5', 'photo');
$newString = str_replace($find, $replace, $oldString);