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

Je veux remplacer le contenu entre / someText / du tableau ci-dessus. Comme je veux remplacer video, file avec abc.chaîne de remplacement PHP

+0

str_replace? preg_replace? – ceejayoz

+2

Jetez un oeil à la fonction 'preg_replace': http://php.net/manual/fr/function.preg-replace.php –

Répondre

2

Vous n'avez pas besoin de boucler sur chaque élément du tableau, str_replace peut prendre un tableau pour le remplacer par:

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

Toutefois, en fonction de votre question, vous voudrez peut-être remplacer le premier segment de chemin, et pas un index spécifique. Donc, pour le faire:

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

qui remplacera le premier élément de chemin de chaque URL $myArray avec /abc/ ...

0

Soit str_replace que d'autres commentaires ont suggéré ou en utilisant une expression régulière, surtout si vous pourriez avoir une url plus avec plus de segments comme http://example.com/xxx/somestuff/morestuff dans ce cas str_replace ne sera pas suffisant, vous devez être preg_replace

0
//every element in $myArray 

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

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

} 
0

Ceci est une autre option. Fournissez un tableau, foreach le ramassera et le premier paramètre de str_replace peut être un tableau si nécessaire. J'espère que ceci vous aidera.

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