2009-05-27 40 views
1

我正在重寫一個基於Perl的網絡爬蟲,這是我近8年前在PHP中編寫的。我曾經在Perl很方便URI :: URL模塊做的事情,如:PHP相當於Perl的URI :: URL

$sourceUrl = '/blah.html'; 
$baseHost = 'http://www.example.com'; 
my $url = URI::URL->new($sourceUrl, $baseHost); 
return $url->abs; 

回報:「http://www.example.com/blah.html

在PHP的parse_url功能也很方便,但有一些更強大的?特別是會提供上述功能的東西?

+1

上述功能由「。」給出。字符串連接運算符。也許這不是證明你需要什麼的最好的示例代碼。 – 2009-05-27 13:55:45

回答

1

也許Zend_Uri是你在找什麼?

+0

絕對有希望,但仍然看起來不那麼聰明和靈活。 – pixel 2009-05-27 22:36:18

0
print $baseHost . $sourceURL; 

我錯過了什麼嗎?你的方式似乎不必要地過於複雜。

+0

它確實不是。 URI對象是祝福(perl雙關語旨在)。當你想修改部分,比如修改方案,參數甚至認證之後修改部分,那麼很高興得到它。使用規範化等來簡化/糾正url。抽象和封裝總是值得的。這些都是我現在在PHP非常不幸的世界中所錯過的Perl類型。 – Trey 2009-05-27 20:05:21

+0

也許我沒有做足夠的'企業'的東西,但在PHP多年來,我還沒有遇到過這種情況,即您發佈的額外代碼行是值得的。我只是創建一個baseurl()函數,給出了方案,參數,身份驗證等,並連接(或使用已經爲我做的那個框架)。 – ceejayoz 2009-05-28 03:41:10

0

我在PEAR存檔上做了一些搜索,並且我對URI::URL的第一次猜測近似值爲Net_URL2。也許你想給那一槍?