2012-02-03 3 views
0

나는이 형식에있는 항목의 목록이 있습니다PHP에서 특정 문자열을 추출하는 방법은 무엇입니까?

5월 1일을 - 일부 기본 : 다음은 텍스트 (알파, 브라보, Charli)를

첫 번째 부분입니다 날짜를 다음의 항상 뒤에 -. 그런 다음 제목이나 위치를 나타내는 텍스트를 입력 한 다음 괄호 안에 표시되거나 표시되지 않을 수있는 키워드를 입력하십시오.

나는 $ day $ title (콜론 포함)과 $ keyword1 $ keyword2 $ keyword3을 추출 할 수 있기를 원합니다. 그런 다음 생성 한 것과 같은 개별 변수에 모두 할당하여 데이터베이스에 추가 할 수 있습니다. 한 번에 이들 중 하나를 수행하는 것은 좋은 시작이 될 것이지만 궁극적으로는 이미 여러 형식으로 여러 항목을 붙여 넣을 수 있기를 원합니다. 그들을 추출하십시오.

저는 Preg_Match_all과 stristr() 같은 것을 사용하려고했지만 어려움을 겪고 있습니다. 나는 그 (것)들을 사용하여 특정한 부속을 얻는 방법을 진짜로 이해하지 않는다. 예를 들어

$month = stristr($listItem, '/', true); 

echo"$month<br />"; 

$preDay = stristr($listItem, 'The', true); 
echo"$preDay<br />"; 

$day = stristr($preDay, '/', false); 
echo"$day<br />"; 

이 출력 만이 :

05 

05/01 – 

/01 – 

가^나는/또는 이상한 â € "을 가질 수 없습니다.

실제 코드와이를 수행하는 방법에 대한 설명은 대단합니다! 당신이 pregmatch를 사용한다면 나는 이것을 어떻게 필터링하는지에 대한 분석을 정말로 고맙게 생각할 것입니다. 고맙습니다.

답변

1

가장 쉬운 방법은 explode()를 사용하는 것입니다. explode() 함수는 문자열을 배열로 빠르게 나누는 방법을 제공합니다. 설명서를 참조하십시오 : http://php.net/manual/pt_BR/function.explode.php

이 형식의 문자열은 다음과 같이 배열로 나눌 수 있습니다.

$string = '05/01 - Some Basic: Text Here (Alpha, Bravo, Charli)'; 
$array = explode('-',$string); 
$date = $array[0]; //Date 05/01 

$array= explode('(',$array[1]); 
$title = $array[0]; 
$tags = $array[1]; 

//Now you have 
$date = '05/01'; 
$title = 'Some Basic: Text Here'; 
$tags = 'Alpha, Bravo, Charli)'; 

//Notice that the first parenthesis of tags was exploded. 
//This is valid if and only if you have your string in the format 
// [date] - [title] ([tags] 

나는 이것이 최선의 방법인지는 모르지만 잘 작동하는지 모르겠습니다. preg_split() 함수를 사용해 볼 수도 있습니다. 이 함수는 정규식을 사용하여 분할을 만듭니다. 정규 표현식이 페이지의 도움이 필요한 경우 http://www.phpf1.com/tutorial/php-regular-expression.html

당신 문자열이 기호가 포함되어 있음을 발견 한 EDIT "-"일 이후. 내가 아는 한 이것은 하이픈이 아닙니다. 마이너스 신호를 사용하여 키보드에 씁니다.

귀하의 simbol/mine = - 그들은 조금 다릅니다.

+1

이 점을 이해하고 명확한 설명을 제공 할 수 있도록 시간을내어 주셔서 대단히 감사합니다. (또한 기호가 좋은 점이었습니다. 다시 한 번 감사드립니다!). 나는 그것이 일할 것이라고 생각한다.]. – Eric

+0

문제가 해결 되었다면 알려주십시오. 더 많은 도움이 필요하면 그냥 물어보십시오. :디 –

관련 문제