我在使用PHP preg_replace时遇到了一些问题。
我有一个包含添加了数字的图片网址的网址,例如:
最后的数字总是不同。
要分开刺痛,我正在使用
$ parts = explode(“,”,$ url);
要计算出有多少数字,我正在使用:
$ numbers = count($ parts);
我的问题是用$ parts替换$ url [0]的结尾(从部分[1]开始到部分[$ numbers-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]); ?>"/>
答案 0 :(得分: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...
答案 1 :(得分: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"
}