使用JavaScript和PHP获取基本URL和任何超过.com部分的内容

使用JavaScript和PHP获取基本URL和任何超过.com部分的内容,javascript,php,Javascript,Php,我正在使用PHP、JavaScript和MySQL/SQLite开发一个书签应用程序 我有一个文本输入字段来输入书签URL,它使用AJAX检查服务器上的输入值,查看书签数据库中是否已经存在URL http://www.domain.com如果精确值http://www.domain.com已保存在数据库中 如果后面有斜杠http://www.domain.com/它将被忽略,不会显示为副本 所以,如果我确保在将新记录保存到DB之前删除尾部斜杠,这就足够简单了 我想做的是从每个URL字符串生成2个

我正在使用PHP、JavaScript和MySQL/SQLite开发一个书签应用程序

我有一个文本输入字段来输入书签URL,它使用AJAX检查服务器上的输入值,查看书签数据库中是否已经存在URL

http://www.domain.com如果精确值
http://www.domain.com
已保存在数据库中

如果后面有斜杠
http://www.domain.com/
它将被忽略,不会显示为副本

所以,如果我确保在将新记录保存到DB之前删除尾部斜杠,这就足够简单了

我想做的是从每个URL字符串生成2个URL

如果我有此URL:
`

那么我希望能够得到这个部分
http://www.domain.com
放入一个变量,然后将此部分
/some article/page/2
放入另一个变量

通过这种方式,我将能够为一个网站的许多页面添加书签,但也可以发现我是否已经为该网站域的任何页面添加了书签

因此,我希望能够从任何类型的URL字符串中获取基本URL。其次,要能够获取URL中超过
.com
部分的任何值

我知道这是一些基本的东西,但我现在想不出这些域部分的名称,可以使用JavaScript和PHP帮助获取它们。

PHP有一个内置的,所以您可以这样做:

$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"

并用于PHP。

谢谢,我完全忽略了这两种语言中的所有内容!谢谢,你知道PHP中是否有任何东西可以将其分解为所有这些部分吗?n/m我看到用于解析的PHP文档url有更多选项