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>       

PHPページに書かれているように、このURLを印刷したい

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) 行 bcoz については言及しないでください。非常に多くの 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'


更新: 2 番目のソリューション [参照- 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

%20URL をエンコードするために、それぞれを -space- で str_replace できます

<?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 に答える