求该结果的preg_replace的轮换写法
程序员文章站
2022-03-24 17:33:07
...
求该结果的preg_replace的替换写法
$url=http://www.xxx.com/66/
preg_replace("#^\/(\d{2,4})\/?$#","name/index.php?t=1&id=$1",strtolower($url));
通过以上我能得到一个重写的网址:name/index.php?t=1&sid=66
我如何能直接通过一次正则替换,替换出一个数组:如下?
array(
'name'=>index.php,
'param'=>array('t'=>1,'id'=66)
);
------解决方案--------------------
一步不行,需要自行分析形成数组。
------解决方案--------------------
(
[name] => index.php
[param] => Array
(
[t] => 1
[id] => 66
)
)
------解决方案--------------------
$url=http://www.xxx.com/66/
preg_replace("#^\/(\d{2,4})\/?$#","name/index.php?t=1&id=$1",strtolower($url));
通过以上我能得到一个重写的网址:name/index.php?t=1&sid=66
我如何能直接通过一次正则替换,替换出一个数组:如下?
array(
'name'=>index.php,
'param'=>array('t'=>1,'id'=66)
);
------解决方案--------------------
一步不行,需要自行分析形成数组。
------解决方案--------------------
$url = 'http://www.xxx.com/66/';66Array
@preg_replace("#/(\d{2,4})/?$#e","\$t=array('name'=>'index.php','param'=>array('t'=>1,'id'=>$1))",strtolower($url));
print_r($t);
(
[name] => index.php
[param] => Array
(
[t] => 1
[id] => 66
)
)
------解决方案--------------------
$url='http://www.xxx.com/66/';
$s= preg_replace("#\/(\d{2,4})\/?$#","/name/index.php?t=1&id=$1",strtolower($url));
$ar=parse_url($s);
$arr['name']=substr($ar['path'],strrpos($ar['path'],'/')+1);
parse_str($ar['query'],$t);
$arr['param']=$t;
print_r($arr);
相关文章
相关视频
专题推荐
-
独孤九贱-php全栈开发教程
全栈 170W+
主讲:Peter-Zhu 轻松幽默、简短易学,非常适合PHP学习入门
-
玉女心经-web前端开发教程
入门 80W+
主讲:灭绝师太 由浅入深、明快简洁,非常适合前端学习入门
-
天龙八部-实战开发教程
实战 120W+
主讲:西门大官人 思路清晰、严谨规范,适合有一定web编程基础学习
上一篇: :关于正则和循环的有关问题
下一篇: 多维数组递归有关问题
网友评论
文明上网理性发言,请遵守 新闻评论服务协议
我要评论