문제

내가 노력하고 등록을 생성할 수 있는 시스템이 사용자가 제출하는 그들의 웹 사이트 Url 이 있습니다.지금 할 때 사용자가 URL 을 확인에 대한 데이터베이스를 보 이미 존재하는 경우,그 거부하는 경우 그렇습니다.

그러나,나의 문제이기 때문에 이:

는 경우 http://www.example.com 은 데이터베이스에 입력 http://example.com, 이로 다른 URL 으로 확인에 관한 한,그리고할 수 있습니다.

가 적절한 방법으로 이를 처리하기에서 검색하는 모든 레코드 제거 www 면 현재,그리고 다음을 비교?(는 몹시 비효율적인 방법을요)

참고:추가 Laravel 태그 케이스가 어떤 도우미 기능을 위해 이것은(나도를 사용하여 laravel-4).

편집:이것은 나의 현재에 대한 논리 확인:

$exists_url = DB::table("user_urls")
        ->where('site_url', 'like', $siteurl)
        ->get();
        if($exists_url)
        {
            return Redirect::to('submiturl')->withErrors('Site already exists!');
    }

EDIT2:방법 중 하나는 지정된 URL 에 http://www.example.com, 다음 검색에 대한 데이터베이스 http://www.example.com, www.example.com, http://example.comexample.com.그러나 나를 찾으려고 더 효율적인 방법으로 이렇게하려면!

도움이 되었습니까?

해결책

내가 생각하기 전에 당신은 솔루션을 구현해야 합 추상적으로 육신의 정책이 많습니다.많은 부품의 URL 지 않을 수도 있습니다 또는 것 같습니다.당신이 원하는 치료에 프로토콜을 상당? https://foo.comhttp://foo.com.어떤 하위 도메인이 될 수 있는 별칭,일부지 않을 수도 있습니다. http://www.foo.comhttp://foo.com, 나 http://site1.foo.comhttp://foo.com.어떤 경로의 URL? http://foo.comhttp://foo.com/index.php.내가 없을 시간을 낭비하 쓰는 비교 함수할 때까지 당신은 완전히 생각을 통해 당신의 정책입니다.행운을 빕니다!

업데이트:

이 같은 아마도:

$ignore_subdomains = array('www','web','site');
$domain_parts = explode('.',$siteurl); 
$subdomain = strtolower(array_shift($domain_parts));
$siteurl = (in_array($subdomain,$ignore_subdomains)) ? implode('.',$domain_parts) : $siteurl;
//now run your DB comparison query

다른 팁

기 전에 확인할 수 있습 데이터를 보내는 데이터베이스를 사용하여 PHP.다음은 작은 예입니다.분명히 당신이 그것을 만들 수 있고 더 진보 취향에 따라.

<?php
   $test = "http://www.google.com";
   $testa = "http://google.com";
   if (str_replace("www.","",str_replace("http://","",$testa)) == str_replace("www.","",str_replace("http://","",$test))) {
     echo "same";
   }
   else {
     echo "different";
   }
?>

다음과 같은 MySQL 교체 예입니다.이 예에서는'url'이 데이터베이스 분야이다.

SELECT * FROM `urls` WHERE REPLACE(url, "http://www","") = "google.com" OR REPLACE(url,"http://","") = "google.com"

다시 한번 이는 매우 기본적인 단위한 당신의 더 나은 이해합니다.

해야 하는 경우에 어떤 도움이 더 친절하게 알려주

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top