从php文件中提取特定数据

时间:2013-06-22 11:58:28

标签: php

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

我需要的线路是:

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

我需要提取的文字基本上是数字1256,基本上是一切之后?rid =和之前“target =”_ blank“&gt;

该数字将会改变,长度为1到6个字符。

如果已发布此类内容,我道歉。在过去的3个小时里,我一直在寻找网络,试图找到某种答案。

如果你能告诉我如何从那条线上拉出那些角色,我已经完成了其余的工作。

提前致谢!

3 个答案:

答案 0 :(得分: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;

输出: -

enter image description here

答案 1 :(得分: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
)
*/

希望有所帮助

答案 2 :(得分: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);