안녕하세요 저는 구문 분석되고 캐시 된 메타 데이터를보다 효율적으로 만들려합니다. 그래서 메타 코드를 객체 나 배열로 파싱 할 수 있어야합니다.preg_match를 사용하여 PHP에서 중첩 구조 구문 분석
Startidentifier : {
Endidentifier :}
당신은 점으로 객체를 탐색 할 수 있지만, 당신은 또한 산술/논리/관계형 작업을 수행 할 수 있습니다 (.). .
- {mySelf.mother.job.jobName}
또는 중첩
- {자신 {myObj로 : 여기 은 메타 언어가 어떻게 생겼는지의 예입니다 . {keys [ "ObjProps"] [0]}. personAttribute.first} .size}
개 또는 함께 동작
- obj.val * {(otherObj.intVal + myObj.longVal) == 1,200 }
이상의 논리
- obj.condition == {! myObj.otherCondition}
여러분 대부분은 이미 내가 원하는 것을 이해했다고 생각합니다. 지금은 (중첩 및 2 개의 값만있는) 간단한 작업 만 할 수 있지만 동적 속성 이름으로 값을 가져 오는 중첩은 잘 작동합니다. 또한 텍스트 연결은 잘 작동합니다.
"Hello {myObj.name}! 어떻게 당신은 {myObj.type}입니까?"
같은 경우 (조건) 짧아 질 가능성이 있습니까? (true-case) : (false-case)는 좋을 것이지만, 나는 그 모든 것을 파싱하는 방법을 모른다. 나는 약간의 정규식을 가진 루프를 사용하고 있지만, 정규 표현식을 더 많이 사용하면 아마 더 빠르고 훨씬 더 유지 보수가 가능할 것이다.
누군가 내게 힌트를 주거나 나를 도울 수 있습니까? 어쩌면 프로젝트 사이트를 방문하여 내가 필요한 것을 이해할 수 있습니다 : http://sourceforge.net/projects/blazeframework/
미리 감사드립니다!
regex에 대한 도움이 필요하면 원하는 변환의 유형에 대한 몇 가지 "이전"및 "이후"예제를 제공하십시오. (또는이 경우와 같이 [추출하려는 내용과 일치]) – zebediah49
파서를 작성하는 것이 훨씬 낫습니다. 미리 정의 된 토큰에 매핑하는 문자열을 사용하고 이에 따라 행동하는 것이 좋습니다. 인터넷에서 '자신의 파서 작성'에 대한 충분한 사례. – Wrikken
정말 디렉터리 구조를 변경해야합니다. 파서의 코드를 10 분 안에 찾을 수 없다면 끔찍할 것입니다. – NikiC