1

看看我在 html 代码中有一个 url

<a href="http://b48.ve.vc/b/data/48/3746/05 Dabangg Reloaded_-_www.DjPunjab.Com.mp3" rel="nofollow" target="_blank" style="color:green;">play</a>       

现在我想打印这个 url,因为它是写在一个 php 页面中的

http://b48.ve.vc/b/data/48/3746/05 Dabangg Reloaded_-_www.DjPunjab.Com.mp3

你可以看到 url 05 Dabangg Reloaded他们之间是空格。我制作了这个程序来从这个 html 代码中打印 url..

$str = "<a href="http://b48.ve.vc/b/data/48/3746/05 Dabangg Reloaded_-_www.DjPunjab.Com.mp3" rel="nofollow" target="_blank" style="color:green;">play</a>";

$pattern = '`.*?((http|ftp)://[\w#$&+,\/:;=?@.-]+)[^\w#$&+,\/:;=?@.-]*?`i';
if (preg_match_all($pattern,$str,$matches))


foreach($matches[1] as $data)
{
$str=$data;
echo $str; 
}

然后我得到这个

http://b48.ve.vc/b/data/48/3746/05 

请不要在 foreach($matches[1] as $data) 行上提及,因为我正在将它与这么多 url 一起使用。我只想知道如何以这种格式打印整个 url。

http://b48.ve.vc/b/data/48/3746/05 Dabangg Reloaded_-_www.DjPunjab.Com.mp3

空间已成为一个大问题..不知道如何修复它..我需要在里面添加什么

$pattern = '`.*?((http|ftp)://[\w#$&+,\/:;=?@.-]+)[^\w#$&+,\/:;=?@.-]*?`i';

为了使它完全可行。请建议我任何想法。

4

2 回答 2

2
$str = '<a href="http://b48.ve.vc/b/data/48/3746/05 Dabangg Reloaded_-_www.DjPunjab.Com.mp3" rel="nofollow" target="_blank" style="color:green;">play</a>';
$arr = explode("\"", $str);
$pattern = '`.*?((http|ftp)://[\w#$&+,\/:;=?@.-]+)[^\w#$&+,\/:;=?@.-]*?`i';
$url = preg_grep($pattern,$arr);
$url = implode('',$url);
Output: $url = 'http://b48.ve.vc/b/data/48/3746/05 Dabangg Reloaded_-_www.DjPunjab.Com.mp3'


更新:第二个解决方案 [Reference- DOMElement]

$str = '<a href="http://b48.ve.vc/b/data/48/3746/05 Dabangg Reloaded_-_www.DjPunjab.Com.mp3" rel="nofollow" target="_blank" style="color:green;">play</a>';
$DOM = new DOMDocument;
$DOM->loadHTML($str);
$search_item = $DOM->getElementsByTagName('a');
foreach($search_item as $search_item) {
    $url = $search_item->getAttribute('href');
}
echo $url; //Output: http://b48.ve.vc/b/data/48/3746/05 Dabangg Reloaded_-_www.DjPunjab.Com.mp3
于 2013-05-03T12:17:11.663 回答
1

你可以用 str_replace 每个 -space-%20来编码你的 URL

<?php
 $url_org = 'http://b48.ve.vc/b/data/48/3746/05 Dabangg Reloaded_-_www.DjPunjab.Com.mp3';
 $url_edited = str_replace(" ", '%20', $url_org);
?>
 <a href="<?php echo $url_edited; ?>" target="_blank"> HERE </a>

这将起作用。

于 2013-05-03T12:21:48.147 回答