我正在使用 PHP、JavaScript 和 MySQL/SQLite 开发书签应用程序。
我有一个用于输入书签 URL 的文本输入字段,该 URL 使用 AJAX 检查服务器上的输入值以查看该 URL 是否已存在于书签数据库中。
http://www.domain.com
如果那个确切的值 http://www.domain.com
保存在数据库。
如果它有尾部斜杠 http://www.domain.com/
它将被忽略并且不会显示为重复项!
因此,如果我确保在将新记录保存到数据库之前删除尾部斜线,这就足够简单了。
不过我想做的是从每个 URL 字符串生成 2 个 URL...
如果我有这个网址:
` http://www.domain.com/some-article/page/2
然后我希望能够将这部分 http://www.domain.com
放入变量中,然后也将这部分 /some-article/page/2
到另一个变量。
这样我就可以为一个网站的许多页面添加书签,还可以查明我是否已经为该网站域的任何页面添加了书签。
所以我希望能够从任何类型的 URL 字符串中获取基本 URL。其次,能够获取 URL 中 .com
部分之后的任何值。
我知道这是一些基本的东西,但我现在想不出这些域部分的名称,可以使用 JavaScript 和 PHP 获取它们的帮助。
请您参考如下方法:
PHP 有一个内置的 parse_url() function ,所以你可以这样做:
$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://。通常,大多数网站通过普通和加密 channel 提供相同的内容。
在 JavaScript 中:
var parser = document.createElement('a');
parser.href = url; // Your URL here
console.log(parser.hostname); // Your domain
console.log(parser.pathname); // Your path