如何解决使用php从给定的链接中提取数据
我想从此链接中提取ID,我正在尝试以下方法。谁能指导我这是什么错误
$url="https://item.tbao.com/item.htm?id=570147082697";
$regular = '/id\=(.+?)\&/';
preg_match($regular,$url,$data,PREG_OFFSET_CAPTURE,3);
我希望有570147082697,但现在没有任何输出。
解决方法
我建议使用以下正则表达式:
(?<=id\=).+?(?=\&|$)
详细信息:
-
(?<=id\=).+?
:我们获得参数id的值,直到字符&或行尾之前,但没有得到字符串id = -
(?=\&|$)
:如果字符是&或行尾
要测试的代码:
//case1: just only id
$url="https://item.tbao.com/item.htm?id=570147082697";
$regular = '/(?<=id\=).+?(?=\&|$)/';
preg_match($regular,$url,$data,PREG_OFFSET_CAPTURE,3);
echo "case1\n";
print_r($data);
//case2: param id is leading
$url="https://item.tbao.com/item.htm?id=570147082697&test=abc";
$regular = '/(?<=id\=).+?(?=\&|$)/';
preg_match($regular,3);
echo "case2\n";
print_r($data);
//case3: param id is between two params
$url="https://item.tbao.com/item.htm?version=5.1&id=570147082697&test=abc";
$regular = '/(?<=id\=).+?(?=\&|$)/';
preg_match($regular,3);
echo "case3\n";
print_r($data);
结果:
case1
Array
(
[0] => Array
(
[0] => 570147082697
[1] => 34
)
)
case2
Array
(
[0] => Array
(
[0] => 570147082697
[1] => 34
)
)
case3
Array
(
[0] => Array
(
[0] => 570147082697
[1] => 46
)
)
希望我的建议能对您有所帮助。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。