2016-11-26 1 views
0

Codeigniter에서 응용 프로그램을 빌드하고 양식 유효성 검사 라이브러리의 valid_url을 사용하여 도메인이 유효한지 (예 : "hæi.no") 확인하려고했습니다. 노르웨이 문자가 허용되지 않았으므로이 방법은 효과가 없습니다. 유효한 URL을 확인하고 "ÆØÅ", "æøå"와 같은 노르웨이어 문자를 허용하는 것이 가장 좋은 방법은 무엇입니까?URL이 Codeigniter의 노르웨이어 문자와 맞는지 확인하는 방법

+0

같이 보일 것입니다, 당신의 유효성 검사 규칙에 함수 이름을 추가,하지만 난 그 문자가 URL에 유효 확실하지 않다, [여기]를 보면 (http://stackoverflow.com/questions/1547899/which-characters-make-a-url-invalid) –

+0

@RoshanBhumbra 많은 도메인이 여기에 중요한 부분 인 .no를 포함하여 IDN과 호환됩니다. 따라서 예를 들어 FILTER_VALIDATE_URL과 같은 기본 PHP 유효성 검사를 사용할 수 없습니다. – kanarifugl

+0

내 도움이 도움이 되었습니까? –

답변

0

개인적으로 콜백을 사용하는 것보다 더 우아하다고 생각하는 폼 유효성 검사 라이브러리를 직접 만들 수 있습니다. 컨트롤러이 라이브러리를 모두로드 보장

$this->load->library(array('form_validation', 'My_form_validation')); 

에서

, 당신은 MY_Form_validation

<?php 
defined('BASEPATH') OR exit('No direct script access allowed'); 

class MY_Form_validation extends CI_Form_validation 
{ 
    /** 
    * Reference to the CodeIgniter instance 
    * 
    * @var object 
    */ 
    protected $CI; 

    function __construct($config = array()) 
    { 
     $this->CI =& get_instance(); 

     parent::__construct($config); 
    } 

    function series_exists($series_id) 
    { 
     $this->CI->db 
      ->select('COUNT(`id`)') 
      ->where('id', $series_id); 
     $rows = $this->CI->db->get('series')->result()[0]; 

     return $rows == 1; 
    } 
} 

CI_Form_validation

/application/libraries/My_form_validation.php를 확장 둘 다 같이 필요 이 예에서 series_exists 함수를 볼 수 있습니다. 이것은 일반적인 유효성 검사 규칙처럼 호출됩니다. 그것은 오직 하나의 매개 변수를 취합니다. 고유 한 이름 (예 : my_valid_url)이 있어야하는 자신의 함수로 바꿉니다.

내 예에 내가 잘못 될 수도 있습니다 'required|integer|series_exists'

관련 문제