2011-12-26 7 views
2

변수의 따옴표 안에 텍스트를 넣을 수있는 함수가 있습니까?따옴표로 텍스트 가져 오기

$text = 'I am "pro"'; 
echo just_text_in_quotes($text); 

내가이 기능이 존재하지 않는 것을 알고있다 ..하지만 난 그런 뭔가가 필요 :
그냥 좋아합니다. 나는 fnmatch("*",$text)을 생각하고 있었다 하지만이 텍스트는 에코로 그냥 그저 수표에 지나지 않는다. 도와주세요. 감사합니다.

답변

6

이 함수는 첫 번째로 일치하는 텍스트를 따옴표 사이에 반환합니다 (빈 문자열 일 수도 있음).

function just_text_in_quotes($str) { 
    preg_match('/"(.*?)"/', $str, $matches); 
    return isset($matches[1]) ? $matches[1] : FALSE; 
} 

당신은 모든 경기의 배열을 반환하도록 수정할 수 있지만 귀하의 예제에서 당신은 반환 값을 보내고 echo의 컨텍스트 내에서 그것을 사용할 수 있습니다. 어레이를 반환했다면 Array입니다.

여러 번 및 맞춤 구분 기호를 처리 할 수있는보다 일반적인 함수를 작성하는 것이 좋습니다. 더 일치가 발견되지 않은 경우

function get_delimited($str, $delimiter='"') { 
    $escapedDelimiter = preg_quote($delimiter, '/'); 
    if (preg_match_all('/' . $escapedDelimiter . '(.*?)' . $escapedDelimiter . '/s', $str, $matches)) { 
     return $matches[1]; 
    } 
} 

null를 반환합니다.

+0

감사합니다, 그건 내가 필요했다 : 당신이 여기에서 볼 수

"(\w*)" 

당신을 도움이 될 것입니다. 글쎄, 나는 정규 표현식을 한번도 사용하지 못했지만 내 프로젝트에서 많이 필요할 것 같다 ... 가능한 한 빨리 받아 들일 것이다. –

2

preg_match

preg_match('/"(.*?)"/', $str, $quoted_string); 
    echo "<pre>"; print_r($quoted_string); 
    //return array of all quoted words in $str