2016-08-02 4 views
-2

コード: strのurlからどうやって取得できますか?

$str = '<a href="http://www.x.com/y.zip">etc</a> <br /> <a href="http://www.c.com/yz.rar">etc</a> <br /> <a href="http://www.c.com/b/c/yz.zip.html">etc</a> <br /> <a href="http://www.c.com/a/yz.rar.html">etc</a>'; 
echo $str; 

が出力

:私は(唯一のhref HTMLタグ用)この出力を必要とする

<a href="http://www.x.com/y.zip">etc</a> <br /> <a href="http://www.c.com/yz.rar">etc</a> <br /> <a href="http://www.c.com/b/c/yz.zip.html">etc</a> <br /> <a href="http://www.c.com/a/yz.rar.html">etc</a> 

y.zip 
yz.rar 
yz.zip.html 
yz.rar.html 

私はちょうどexample.zip.htmlのためにのみ必要example.rar.htmlとexample.rar example.zip

どうすればいいですか?

ありがとうございました。

+0

値を分解して配列の最後の値のみを保存する –

+0

https://ideone.com/TH3YI7 –

+0

あなたは次のようにしてみることができます:https://regex101.com/r/oG6yL3/4そして最初のグループ –

答えて

1

あなたの質問はその特定の文字列を解析することだと私は理解しています。しかし、私は自分自身が文字列の中に改行で区切られたものがいくつあるのだろうと思っています。彼らはどこから来たのか?あなたの質問に答えるために

、しかし:

$str = 'http://www.x.com/y.html <br /> http://www.c.com/yz.html <br /> http://www.c.com/b/c/yz.txt <br /> http://www.c.com/a/yz.zip <br /> http://www.c.com/a/yz.jpg <br /> http://www.c.com/a/e/yz.rar'; 
$urls = explode('<br /> ', $str); 
foreach($urls as $url) { 
    echo basename($url).'<br>'; 
} 

は、しかし、これはこれを処理するための素晴らしい方法ではありませんが、覚えておいて、それは私が与えられた要件を考えることができる最善の方法です。あなたがより良いフォームで情報を受け取ることができれば、あなたはより意味のある何かをすることができます。

UPDATE

ここでは、質問を更新OPは良い答えです後:

$html = '<a href="http://www.x.com/y.zip">etc</a> <br /> <a href="http://www.c.com/yz.rar">etc</a> <br /> <a href="http://www.c.com/b/c/yz.zip.html">etc</a> <br /> <a href="http://www.c.com/a/yz.rar.html">etc</a>'; 

$dom = new DOMDocument; 
$dom->loadHTML($html); 
foreach ($dom->getElementsByTagName('a') as $node) { 
    echo basename($node->getAttribute('href')).'<br>'; 
} 

これはあなたの文字列からマークアップを分析します(私はあなたが文書からこれを解析していると仮定何か?)、次にaタグをループし、それぞれのhref属性のベース名を取得します。

EDIT

OPからの最後のコメントをもとに、あなたは上記のようにpathinfoの代わりbasenameでより興味があるかもしれない:あなたはPHPのpathinfohere

の詳細を読むことができ

$dom = new DOMDocument; 
$dom->loadHTML($html); 
foreach ($dom->getElementsByTagName('a') as $node) { 
    $pathInfo = pathinfo($node->getAttribute('href')); 

    $fileExtension = $pathInfo["extension"]; 
    $fileName = $pathInfo["filename"]; 
} 

+0

こんにちはザック、あなたの応答に感謝します。私は最初の投稿を編集しました。もう一度見ることができますか? – brown

+0

更新された回答を参照してください。 –

+0

大きな感謝ザック、その働き。もう少し簡単な質問があります。どうすればzipとrar extのhrefを得ることができます – brown

関連する問題