2012-02-24 4 views
0
Array { 
    [0] => http://abc.com/video/ghgh23; 
    [1] => http://smtech.com/file/mwerq2; 
} 

위의 배열에서 / 본문 / 사이의 내용을 바꿀 싶습니다. video, fileabc으로 바꾸고 싶습니다. 당신이 http://example.com/xxx/somestuff/morestuff 처럼 이상의 세그먼트와 더 긴 URL을해야 할 수도 있습니다, 특히 다른 의견을 제안 http://php.net/str_replace문자열 대체 PHP

+0

않는 str_replace : 그래서를 할까? preg_replace? – ceejayoz

+2

'preg_replace' 함수를보세요 : http://php.net/manual/en/function.preg-replace.php –

답변

2
당신은 배열의 모든 요소를 ​​반복 할 필요가 없습니다

str_replace 함께 교체하는 배열을 수행 할 수 있습니다, 당신은 교체 할 수 있습니다 귀하의 질문에 따라 그러나

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

, 첫 번째 경로 세그먼트이며 특정 인덱스가 아닙니다.

$myArray = preg_replace('((?<!/)/([^/]+)/)', '/abc/', $myArray); 
/abc/$myArray의 모든 URL의 첫 번째 경로 요소를 대체 할

...

0

한 가지 방법은없는 str_replace() 를 사용하는 것입니다 당신은 여기에서 확인할 수 있습니다 충분하지 않습니다 경우에없는 str_replace 당신이 다른 옵션 preg_replace

0

어느 str_replace 또는 정규 표현식을 사용하여 :

0
//every element in $myArray 

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

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

} 
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); 

?> 
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); 
}