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

Я хочу, чтобы заменить содержимое между / SOMETEXT / из вышеприведенного массива. Как я хочу заменить video, file с abc.Строка замены 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); 

Это заменит первый элемент пути каждого URL в $myArray с /abc/ ...

0

Либо str_replace как предложено другие комментарии или с помощью регулярного выражения, особенно если вы могли бы иметь более длинный URL с несколькими сегментами, как http://example.com/xxx/somestuff/morestuff В этом случае str_replace не будет достаточно, то вы будете нуждаться в preg_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); 
} 
Смежные вопросы