2014-11-19 6 views
1

.core*과 일치하는 디렉토리를 확인하려고하고 문자열로 반환하려고합니다.디렉토리를 preg_match하고 그 디렉토리를 반환하는 방법

예 : 디렉토리 이름이 .core-alpha 인 경우 .core-alpha을 문자열로 반환하십시오. 또는 찾은 디렉토리가 .core-1-rc1이면 해당 문자열을 문자열로 반환하십시오.

내가 달성하기 위해 노력하고 무엇 : 단지 정수를 반환

$str = '.core/'; 
$core = preg_match('.core.', $str); 

define('ROOT_DIR', realpath(dirname(__FILE__)) .'/'); 

require_once(ROOT_DIR . $core . '/lib/app.php'); 
$app = new App(); 

을 - 예 : 어떤 도움을 주시면 감사하겠습니다

/home/ubuntu/workspace/1/lib/app.php 
- Thnx

+0

당신이'.core를 사용하지해야 http://php.net/manual/en/function.preg-match.php * '대신에 단지'.core.'? – Anubhav

+0

그리고 [이 문서] (http://php.net/manual/en/function.preg-match.php)에 따르면, 부울을 반환합니다. – Anubhav

+0

원래'*'를 사용했지만 오류가 발생했습니다. – CelticParser

답변

0

안녕을 설치해야 누락 된 매개 변수. 일치하는 값의 수신기는 참조로 전달되어야합니다.

당신이

$str = '.core/'; 
    if (preg_match('/^\.core.*/', $str, $core)) { 
     echo $core[0]; 
    } 
    else 
    { 
     echo "No Match Found." 
    } 
+0

정규 표현식에 하위 패턴이 없으므로 선택적인 세 번째 매개 변수는 무의미합니다. – rjdown

+0

알았는데. 고마워요 :) 나는 답변에 $ core 사용에 고정되어있었습니다. 어쨌든, 이것은 그가 prob를 해결하는 데 도움이됩니다. – Nikko

1

preg_match가 1 또는 0, NOT 경기 반환 시도 할 수 있습니다. 첫 번째 예

$str = '.core/'; 
if (preg_match('/^\.core.*/', $str)) { 
    $core = $str; 
} 

확인 : 그래서 그냥 반환 값을 테스트합니다.

+0

나는 시작이기 때문에 그것을 올렸다. 누락 된 부분은 내 질문에 :'... 발견 된 디렉토리가 .core-1-rc1이면이를 문자열로 반환합니다 .' .. '.core **'와 비슷한 결과를 반환합니다 – CelticParser

+0

반환해야합니다. . 후행 슬래시를 쓰다듬 으려면'$ core = rtrim ($ str, '/');' – rjdown

관련 문제