我需要做的是检查一个url是否已经在数据库中使用php提交。检查一个url是否已经在php数据库中提交
我有一个数据库表,我存储用户提交的URLs。但是我想在将数据库插入到数据库之前检查这些URL是否已经提交或者不在数据库中。 例如, 类似于http://www.example.com,http://www.example.com/,http://example.com和的URL应该返回false,如果它们中的任何一个已经插入数据库,因为它们都是相同的URL。 我想我们可以通过使用正则表达式来完成这项工作。但是我在正则表达式方面有点虚弱,所以需要你的帮助。 谢谢
编辑
你好,让我们假设,如果URL是在阵列不是数据库只是为了清楚。我知道唯一的键和匹配的网址与数据库的结果。但是,如果你仔细观察它,这里我有一个不同的问题
不同的问题。
$ urls = array('http://www.example.com/newpage.html','http://www.example.com/newpage.html');
case 用户提交一个url。假设http://example.com/newpage.html
现在,作为一个url http://www.example.com/newpage.html是$网址阵列和http://www.example.com/newpage.html和http://example.com/newpage.html(userinput加www)提供的同一页,所以我需要一个函数进行检查,并返回false如果URL是阵列中可用。我希望我现在澄清我的自我。
所以它不检查域或在mysql表中为url字段创建唯一键,我认为迄今为止。我认为我们需要使用regExp。任何帮助?
'www.example.com'和'example.com'不是*相同的URL。 – 2010-02-25 11:05:54
但我想说,他们都是一样的,大部分时间都是一样的。 – Yalamber 2010-02-25 11:27:44
在检查前试着去掉任何尾随的'/'。这会使'http:// www.example.com /'和'http:// www.example.com'匹配。至于'www'部分,本的权利。如果您确实假设'www'并且没有任何内容,请尝试在添加任何URL时将空白替换为空白。这样,您将拥有'example.com'而不是'www.example.com'作为数据库中的所有记录,让您能够正确匹配。 – casraf 2010-02-25 11:32:48