簡體   English   中英

使用JavaScript和PHP獲取基本URL以及.com部分之外的任何內容

[英]Get base URL and anything past the .com part with both JavaScript and PHP

我正在使用PHP,JavaScript和MySQL / SQLite開發書簽應用程序。

我有一個文本輸入字段用於輸入書簽URL,該URL使用AJAX檢查服務器上的輸入值以查看URL是否已存在於書簽數據庫中。

如果確切的值http://www.domain.com已保存在數據庫中, http://www.domain.com將顯示為重復。

如果它有一個尾隨斜杠http://www.domain.com/它會被忽略而不會顯示為重復!

因此,如果我確保在將新記錄保存到DB之前刪除尾部斜杠,那么這很簡單。

我想做的是從每個URL字符串生成2個URL ...

如果我有這個網址:
` http://www.domain.com/some-article/page/2

然后我希望能夠將這個部分http://www.domain.com變成一個變量,然后將這個部分/some-article/page/2變成另一個變量。

通過這種方式,我可以為網站的許多頁面添加書簽,但也可以查看我是否已將該網站域的任何頁面添加為書簽。

所以我希望能夠從任何類型的URL字符串中獲取基本URL。 其次能夠獲得超過.com部分的URL中的任何值。

我知道這是一些基本的東西,但我現在無法想到這些域部分的名稱,可以使用JavaScript和PHP獲取它們的幫助。

PHP有一個內置的parse_url()函數 ,所以你可以這樣做:

$domain = parse_url($url, PHP_URL_HOST); // Get the full domain eg. www.com
$path = parse_url($url, PHP_URL_PATH); // Get the URL

現在我建議你忽略模式(http://),這樣就不能兩次提交相同的鏈接 - 如http://然后是https://。 通常,大多數網站通過普通和加密渠道提供相同的內容。

在JavaScript中:

var parser = document.createElement('a');
parser.href = url; // Your URL here
console.log(parser.hostname); // Your domain
console.log(parser.pathname); // Your path

這就是你在JS中的表現:

var parser = document.createElement('a');
parser.href = "http://example.com:3000/pathname/?search=test#hash";

parser.protocol; // => "http:"
parser.hostname; // => "example.com"
parser.port;     // => "3000"
parser.pathname; // => "/pathname/"
parser.search;   // => "?search=test"
parser.hash;     // => "#hash"
parser.host;     // => "example.com:3000"

並使用parse_url進行PHP。

暫無
暫無

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

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