如何使用php从url获取最后一个id号

时间:2016-09-29 19:42:51

标签: php

我想从网址获取最后一个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>' ;
}

但没有工作

3 个答案:

答案 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];
}