2010-03-16 6 views
0

저는 일종의 미니 구문 분석 구문을 사용하여 cakephp에서 내보기 코드를 간소화하도록 도와주었습니다. 기본적으로 필자는 테이블 헬퍼를 만들었습니다. 데이터를 포맷하고 형식을 지정하는 옵션 (옵션)을 사용하면 데이터를 반복하여 수동으로 편집하는 대신 테이블을 렌더링합니다.정규식 또는 strpos가있는 가장 안쪽의 중괄호와 일치합니까?

사용자가 원하는만큼 복잡하거나 간단 할 수 있으므로 매우 강력해질 수 있습니다. 그러나 이것을 달성하기 위해 간단한 구문 분석 구문을 만들어야했습니다.

$this->Table->data = $userData; 
$this->Table->elements['td']['data'] = array(
    '{:User.username:}', 
    '{:User.created:}' => array('Time::nice') 
); 
echo $this->Table->render(); 

을 그리고 테이블을 렌더링 할 때 다음 생성 할 것입니다 : 빠른 예를 들어 사용자는 다음처럼 뭔가를 할 것

<table> 
    <tbody> 
     <tr><td>rich97</td><td>Sun 21st 02:30pm</td></tr> 
    </tbody> 
</table> 

을 문제는 다음 발생 내가 지금처럼 둥지에 괄호를 시도 :

아무런 일치가 없을 때까지 어쨌든 처음에는 가장 큰 괄호를 얻을 수 있습니다. 아니면 한 번에 해보시겠습니까? 아니면 strpos를 더 잘 사용합니까? 이 약자로

여기 내 정규식 :

'/\{\:([^}]+)\:\}/' 

답변

1

그냥 부정 문자 클래스에 여는 중괄호를 추가

'/\{:([^{}]+):\}/' 
+0

감사합니다, 완벽하게 작동합니다! – rich97

0
var $validate= array(
'name'=>array(
'notEmpty' =>array(
    'rule'=>'notEmpty', 
    'message'=>'Please Enter The Name' 
), 
'isUnique' =>array(
    'rule'=>'isUnique', 
    'message'=>'Name Already Exist' 
) 
), 
'address'=>array(
'rule'=>'notEmpty', 
'message'=>'Please Enter The Address') 

); 
관련 문제