截断&符号之前的字符串

问题描述 投票:0回答:2

我有一个显示网址列表的网站爬虫,但问题是我一生都无法完全正确地获得最后一个正则表达式。 所有网址最终列出为:

http://www.website.org/page1.html&--EFTTIUGJ4ITCyh0Frzb_LFXe_eHw
http://website.net/page2/&--EyqBLeFeCkSfmvA7p0cLrsy1Zm1g
http://foobar.website.com/page3.php&--E5WRBxuTOQikDIyBczaVXveOdRFg

URL 都可以不同,唯一看起来静态的是 & 符号。 如何去掉 & 符号以及它右侧的所有内容?

这是我对上述结果所做的尝试:

function getresults($sterm) {
$html = file_get_html($sterm);
$result = "";
// find all span tags with class=gb1
foreach($html->find('h3[class="r"]') as $ef)
{   
$result .=  $ef->outertext . '<br>';
}
return $result;
}

function geturl($url) {
  $var = $url;
  $result = "";

preg_match_all ("/a[\s]+[^>]*?href[\s]?=[\s\"\/url?q=\']+".
               "(.*?)[\"\']+.*?>"."([^<]+|.*?)?<\/a>/",              
              
               $var, $matches);
    
$matches = $matches[1];

foreach($matches as $var)
{    
    $result .= $var."<br>";
}

echo preg_replace('/sa=U.*?usg=.*?AFQjCN/', "--" , $result);

}
php string url truncate sanitization
2个回答
1
投票

如果 url 始终采用相同的格式,请使用爆炸:

<?php
$tmp = explode("&", "http://foobar.website.com/page3.php&--E5WRBxuTOQikDIyBczaVXveOdRFg");
?>

$tmp[0] 应该内容为“http://foobar.website.com/page3.php”并且 $tmp[1] 应该内容为“--E5WRBxuTOQikDIyBczaVXveOdRFg”


0
投票

删除 & 字符后所有内容的简单方法:

$result = substr($result, 0, strpos($result, '&'));
© www.soinside.com 2019 - 2024. All rights reserved.