0

本质上,我已经从 URL 中提取了文本,并且需要找到一种从文本中提取特定字符的方法。

我需要从中提取的线是:

<p align="center"><a href="http://sitexplosion.com/?rid=1256" target="_blank">http://sitexplosion.com/?rid=1256</a></p>

我需要提取的文本本质上是数字 1256,基本上是 ?rid= 之后和“ target="_blank"> 之前的所有内容

该数字将发生变化,长度为 1 到 6 个字符。

如果已经发布了类似的内容,我深表歉意。在过去的 3 个小时里,我一直在网上搜索,试图找到某种答案。

如果你能告诉我如何从那一行中提取这些字符,我已经完成了剩下的工作。

提前致谢!

4

3 回答 3

1

这个怎么样:-

$strout="<p align='center'><a href='http://sitexplosion.com/?rid=1256' target='_blank'>http://sitexplosion.com/?rid=1256</a></p>";
$startsAt = strpos($strout, "?rid") + strlen("?rid=");
$endsAt = strpos($strout, "{\'target}", $startsAt);
$result = substr($strout, $startsAt, ($endsAt-3) - $startsAt);
echo $result;

输出:-

在此处输入图像描述

于 2013-06-22T12:01:17.310 回答
1

在这里,为什么不使用 HTML 解析器或 domdocument 来提取链接,然后使用 parse_url() 获取链接查询参数

$html = '
<p align="center"><a href="http://sitexplosion.com/?rid=1256" target="_blank">http://sitexplosion.com/?rid=1256</a></p>
<p align="center"><a href="http://sitexplosion.com/?rid=123456" target="_blank">http://sitexplosion.com/?rid=123456</a></p>
<p align="center"><a href="http://sitexplosion.com/" target="_blank">http://sitexplosion.com/</a></p>
';

libxml_use_internal_errors(true);
$dom = new DOMDocument();
$dom->loadHTML($html);

$link_ids = array();
foreach ($dom->getElementsByTagName('a') as $link)
{
    if($query = parse_url($link->getAttribute('href'), PHP_URL_QUERY))
    {
        $link_ids[] = str_replace('rid=','',$query);
    }
}

print_r($link_ids);
/*
Array
(
    [0] => 1256
    [1] => 123456
)
*/

希望能帮助到你

于 2013-06-22T12:24:11.183 回答
0

好吧,这要短得多

$string = strip_tags('<p align="center"><a href="http://sitexplosion.com/?rid=1256" target="_blank">http://sitexplosion.com/?rid=1256</a></p>');

echo str_replace('http://sitexplosion.com/?rid=','',$string);
于 2013-06-22T12:43:46.400 回答