Array {
[0] => http://abc.com/video/ghgh23;
[1] => http://smtech.com/file/mwerq2;
}
我想从上面的数组中替换/
sometext /
之间的内容。就像我想用video
替换file
,abc
。
答案 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);
}