2011-07-11 108 views
1

我在使用PHP preg_replace時遇到了一些問題。Php Preg_replace帶數組的字符串?

我有一個包含圖像的URL添加了數字的網址,例如:

$ URL = http://example.com/111.jpg,121,122,123,124,125,126

末的數字總是不同的。

要單獨的刺痛,我使用

$部分=爆炸( 「」,$網址);

爲了找出多少個號碼也有,我使用:

$數=計數($部分);

我的問題是,以取代$網址的結尾[0] $部分(從部分[1]達零件[$號-1])

任何想法,我需要改變??

這裏是我的代碼:

for($i=1;$i<=10;$i++) { 
    $array[] = preg_replace('/\d+.jpg/',sprintf("%01d.jpg",$i),$url[0]); 
} 

<img src="<?php echo($array[0]); ?>"/> 
<img src="<?php echo($array[1]); ?>"/> 
<img src="<?php echo($array[2]); ?>"/> 
<img src="<?php echo($array[3]); ?>"/> 
<img src="<?php echo($array[4]); ?>"/> 
<img src="<?php echo($array[5]); ?>"/> 
<img src="<?php echo($array[6]); ?>"/> 
<img src="<?php echo($array[7]); ?>"/> 
<img src="<?php echo($array[8]); ?>"/> 
<img src="<?php echo($array[9]); ?>"/> 
+1

你的問題是難以解析。你想要的輸出是什麼? –

+0

看起來不錯。問題是什麼? – powtac

回答

2

嘗試

$array[] = preg_replace('/\d+.jpg/', "{$url[$i]}.jpg"), $url[0]); 

這會拉出同時尾隨數字之一。你的原始版本正在取代你的循環計數器,這幾乎肯定不會跟隨數字一樣。

你的是產生

http://example.com/001.jpg 
http://example.com/002.jpg 
etc... 

,你想

http://example.com/121.jpg 
http://example.com/122.jpg 
etc... 
+0

感謝,作品像一個魅力 – grosseskino

0
$url = 'http://example.com/111.jpg,121,122,123,124,125,126'; 
$parts = explode(',', $url); 
$url = array_shift($parts); 

$parts_count = count($parts); 
for($i=0; $i<$parts_count; $i++) { 
    $array[] = preg_replace('/\d+.jpg/', sprintf("%d.jpg", $parts[$i]), $url); 
} 

var_dump($array); 

輸出

array(6) { 
    [0]=> 
    string(26) "http://example.com/121.jpg" 
    [1]=> 
    string(26) "http://example.com/122.jpg" 
    [2]=> 
    string(26) "http://example.com/123.jpg" 
    [3]=> 
    string(26) "http://example.com/124.jpg" 
    [4]=> 
    string(26) "http://example.com/125.jpg" 
    [5]=> 
    string(26) "http://example.com/126.jpg" 
}