用PHP替换数组中的文本

时间:2015-07-23 20:30:47

标签: php str-replace

我在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);

实现这一目标的最佳方法是什么?感谢

3 个答案:

答案 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);