![](/img/trans.png)
[英]How to get the http://www.blbah.com part of the url in javascript?
[英]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.