我想从网址获取最后一个ID, 我有像这样的文本文件的URL
http://domain.com/..../pid=87dhdhjkh&tid=87ehjdhnjh
如何获得输出87ehjdhnjh
我有这个代码
$file = fopen("file.txt", "r");
while(!feof($file)){
$line = fgets($file);
# do same stuff with the $line
$str = ($line);
if(preg_replace("/.+?\.*/", "$str", $m)){
echo $m[1] .'<br>' ;
}
但没有工作
答案 0 :(得分:2)
你需要解析你的网址。
假设你有变量callde $url
将你的url存储为字符串,如果你只是使用parse_url()函数,那么你得到的是:
$url = "http://domain.com/.../pid=87dhdhjkh&tid=87ehjdhnjh";
$result = parse_url($url);
你会得到这个作为输出:
Array (
[scheme] => http
[host] => domain.com
[path] => /.../pid=87dhdhjkh&tid=87ehjdhnjh
)
之后,您可以从该数组中获取path
并使用parse_str()函数解析它:
parse_str($result['path'], $output);
print_r($output);
输出将如下:
Array
(
[/___/pid] => 87dhdhjkh
[tid] => 87ehjdhnjh
)
现在该数组存储在$ output中,您可以从中检索tid
的值,这就是您所需要的:
print $output['tid'];
所以总结这里是你需要的一切:
$url = "http://domain.com/.../pid=87dhdhjkh&tid=87ehjdhnjh";
$result = parse_url($url);
parse_str($result['path'], $output);
print $output['tid'];
更新:
此问题和答案可能会被视为重复:https://stackoverflow.com/a/11480852/2267244
答案 1 :(得分:0)
试试这个:
$input_value = 'http://domain.com/..../pid=87dhdhjkh&tid=87ehjdhnjh';
$last = explode('=', strstr($input_value, '&tid'));
echo $last[1];
答案 2 :(得分:0)
您可以使用标准preg_match功能
$line = 'http://domain.com/.../pid=87dhdhjkh&tid=87ehjdhnjh';
$pattern = '/\&tid\=([^\&]+)/';
preg_match($pattern, $line, $matches, PREG_OFFSET_CAPTURE);
if(count($matches) > 0) {
echo $matches[1][0];
}