脚本宝典收集整理的这篇文章主要介绍了如何使用方括号中指定的FROM和TO数字用PHP扩展字符串?,脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
这是我的代码:
$str = "http://www.example.com/images/[1-12].jpg"; while(preg_match_all("/^([^\\[\\]]*)\\[(\\d+)\\-(\\d+)\\](.*)$/m",$str,$mat)){ $arr = array(); $num = sizeof($mat[0]); for($i = 0; $i < $num; $i++){ for($j = $mat[2][$i]; $j <= $mat[3][$i]; $j++){ $arr[] = rtrim($mat[1][$i].$j.$mat[4][$i]); } } $str = implode(PHP_EOL,$arr); }
即使我将$str更改为更复杂的表达式,它仍然可以正常工作,如下所示:
$str = "http://www.example.com/images/[1-4]/[5-8]/[9-14].jpg";
$str = "http://www.example.com/images/[001-004].jpg";
预期结果:
而实际结果如下:
如何更改此行为,以便我的代码产生预期的结果?另外,我的代码的其他缺点是什么?我应该真的使用while循环和PReg_match_all,还是有更快的替代品?
更新:将我的代码的第七行更改为
$arr[] = rtrim($mat[1][$i].@R_126_751@($j,strlen($mat[2][$i]),STR_PAD_LEFT).$mat[4][$i]);
似乎可以做到这一点.非常感谢sjagr提出这个建议.我的问题仍然存在,因为我想知道我的代码和更快的替代品(如果有的话)的缺点.
以上是脚本宝典为你收集整理的如何使用方括号中指定的FROM和TO数字用PHP扩展字符串?全部内容,希望文章能够帮你解决如何使用方括号中指定的FROM和TO数字用PHP扩展字符串?所遇到的问题。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。