字符串替换PHP

时间:2012-02-24 16:57:57

标签: php

Array {
    [0] => http://abc.com/video/ghgh23;
    [1] => http://smtech.com/file/mwerq2;
}

我想从上面的数组中替换/ sometext /之间的内容。就像我想用video替换fileabc

6 个答案:

答案 0 :(得分:2)

您不需要遍历数组的每个元素,str_replace可以将数组替换为:

$myArray = str_replace(array('/video/', '/file/'), '/abc/', $myArray);

但是,根据您的问题,您可能希望替换第一个路径段,而不是特定索引。所以要做到这一点:

$myArray = preg_replace('((?<!/)/([^/]+)/)', '/abc/', $myArray);

这会将$myArray中每个网址的第一个路径元素替换为/abc/ ...

答案 1 :(得分:0)

一种方法是使用str_replace() 您可以在此处查看:http://php.net/str_replace

答案 2 :(得分:0)

str_replace与其他评论建议使用或使用正则表达式,尤其是如果您的网址较长,例如http://example.com/xxx/somestuff/morestuff 在这种情况下,str_replace不够,您将需要preg_replace

答案 3 :(得分:0)

//every element in $myArray

for($i=0; $i < count($myArray); $i++){

    $myArray[$i] = str_replace('/video/','/abc/',$myArray[$i]);

}

答案 4 :(得分:0)

这是另一种选择。提供一个数组,foreach将获取它,然后str_replace的第一个参数可以是一个数组,如果需要的话。希望你觉得这很有帮助。

<?php

$array = array('http://abc.com/video/ghgh23','http://smtech.com/file/mwerq2');
$newarray = array();

foreach($array as $url) {
 $newarray[] = str_replace(array('video','file'),'abc',$url);
}

print_r($newarray);

?>

答案 5 :(得分:0)

$array = array('http://abc.com/video/ghgh23', 'http://smtech.com/file/mwerq2');
foreach ($array as &$string)
{
    $string = str_replace('video', 'abc', $string);
    $string = str_replace('file', 'abc', $string);
}