gpt4 book ai didi

php - 检查 MySQL 数据库 PHP 中的现有 URL

转载 作者:行者123 更新时间:2023-11-29 00:13:11 25 4
gpt4 key购买 nike

我希望用户能够提交一个 URL,该 URL 会根据数据库进行检查以查看是否已有条目。但是,我希望检查也忽略域。

例如如果www.example.com 存在,则www.example.netwww.example.gov 等也应该被拒绝。然而,此处的 SQL 检查将返回 0 条记录,因为它们被认为是不同的。

有什么有效的方法吗?我能想到的唯一方法是分隔给定的 URL 并获取主域并使用 SQL 的“喜欢”功能搜索该特定域。但是,这在处理 blogspot 等 url 时会导致问题。

我很难过,任何建议都会很棒!

最佳答案

为什么不做这样的事情呢?

SELECT `name` FROM `domains` WHERE LEFT(`name`, LENGTH(`name`) - LOCATE('.', REVERSE(`name`))) = 'example';

那么您只需要通过 PHP 去除搜索词的 TLD,或者将 'example' 替换为 LEFT('example.com', ...)。不过,我可能会通过 php 完成该部分。

如果你还想匹配任何子域,你可以使用类似的东西:

SELECT `name` FROM `domains` WHERE SUBSTRING_INDEX(LEFT(`name`, LENGTH(`name`) - LOCATE('.', REVERSE(`name`))), '.', -1) = 'example';

请注意,如果搜索示例,则第二个查询将匹配 example.com 和 dev.example.com,但不会匹配 dev.dev.example.com。我认为如果您想走那么远,您需要使用 PHP。此外,如果使用第二个,您还需要事先通过 php 去除子域(或做同样的事情 (SUBSTRING_INDEX(LEFT('example.com', ...)))

希望对您有所帮助!顺便说一句,如果您使用的是 Laravel 的查询构建器,则需要使用 whereRaw 才能执行此操作。

关于php - 检查 MySQL 数据库 PHP 中的现有 URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23947219/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com