簡體   English   中英

如何從php中的URL塊中提取信息?

[英]How do I extract info from a block of URLs in php?

我有一個網址列表,可以以任何格式輸入。 每行一個,用逗號分隔,中間有隨機文本,依此類推。URL都來自兩個不同的站點,並且結構相似

對於此示例,可以說它看起來像這樣

Random Text - http://www.domain2.com/variable-value
Random Text 2 - http://www.domain1.com/variable-value, http://www.domain1.com/variable-value, http://www.domain1.com/variable-value

http://www.domain1.com/variable-value
http://www.domain2.com/variable-value
http://www.domain1.com/variable-value http://www.domain2.com/variable-value http://www.domain1.com/variable-value

我需要提取2條信息。 檢查其domain1或domain2以及“ variable-”后面的

因此,它應該創建一個多維數組,其中將包含2個項目:域+值。

最好的方法是什么?

這是提取URL的可能性。 唯一的問題是網址本身可能不包含逗號。 所以如果足夠...

$lines = explode('\n', $urls);

for($i = 0; $i < sizeof($lines); $i++)
{
    if(preg_match_all("http:\\/\\/[^,]*variable-([^,]+)", $lines[$i], $matches))
    {

    }
}

順便說一下...匹配項存儲在$matches數組中。

PS:已編輯...我忘了轉義反斜線,您應該在字符串行中搜索行以確保行為正確...在http://www.regex-tester.de/regex.html上測試正則表達式。 。剛用我的正則表達式解決了。

PPS:經過進一步研究,我找到了以下頁面: http : //internet.ls-la.net/folklore/url-regexpr.html 它包含網址的正則表達式。 您可以使用它首先提取URL,然后在第二步中瀏覽URL並提取變量信息以查找例如variable-([\\W]+)

preg_splitpreg_matchparse_url

// split urls
$urls = preg_split('!,\s+!', 'http://www.domain1.com/variable-value, http://www.domain2.com/variable-value, http://www.domain3.com/variable-value');

// check for domain and path variable
foreach ($urls as $url) {

    $parts = parse_url($url);
    // check domain: $parts['host'];
    $matches = array();
    // check path: preg_match('!^/variable-([^/]+)!', $parts['path'], $matches)
}
$text = "http://www.domain1.com/variable-value1, http://www.domain2.com/variable-value2 http://www.domain1.com/variable-value3";
preg_match_all("/http:\\/\\/(.+?)\\/variable-([a-z0-9]+)/si", $text, $matches);
print_r($matches);

結果:

Array
(
    [0] => Array
        (
            [0] => http://www.domain1.com/variable-value1
            [1] => http://www.domain2.com/variable-value2
            [2] => http://www.domain1.com/variable-value3
        )

    [1] => Array
        (
            [0] => www.domain1.com
            [1] => www.domain2.com
            [2] => www.domain1.com
        )

    [2] => Array
        (
            [0] => value1
            [1] => value2
            [2] => value3
        )

)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM