2012-11-19 22 views
0

다른 문자열에서 문자열을 추출하는 데 문제가 있습니다.다른 문자열에서 문자열 추출

나는이 문자열을 추출하고 싶습니다 :

<?xml version="1.0"?> <!-- Tests completed in 1036 milliseconds. 6 

    tests of 6 passed, 0 failed. 
    --> <testsuite name=" Tests" timestamp="2012-11-19T16:37:10Z" tests="6" failures="0" time="1.036"> <testcase name="dede" 
    classname="test1"> </testcase> </testsuite> 

을이 문자열에서 :

2012/11/19 17:37:09.689 - INFO. - début du test 1 
2012/11/19 17:37:09.689 - INFO. - début du test 2 
2012/11/19 17:38:09.689 - INFO. - début du test 3 
2012/11/19 17:39:09.689 - INFO. - début du fr 4 
2012/11/19 17:40:09.689 - INFO. - début du de 5 
2012/11/19 17:40:48.689 - INFO. - début du de 6 
2012/11/19 17:40:49.689 - INFO. - génération du résultat 
<?xml version="1.0"?> 
<!-- 
Tests completed in 1036 milliseconds. 
6 tests of 6 passed, 0 failed. 
--> 
<testsuite name=" Tests" timestamp="2012-11-19T16:37:10Z" tests="6" failures="0" time="1.036"> 
<testcase name="dede" classname="test1"> 
</testcase> 
</testsuite> 

답변

0

당신은 상단에 시험 정보를 덤프하지 떨어져 아마 더 좋을 것 같아 전혀를 보여주는 XML 마크 업에서 그들을 포함 여부를 중.

그러나 strpos을 사용하여 문자열 추출 위치를 알아낼 수 있습니다.

$xml_string = substr($original_string , $start_position); 

이 테스트하지 않고, 당신이 필요로하는 대략 무엇을해야합니다 :

$start_position = strpos ($original_string , '<?xml'); 

그런 다음 substr()로 시작 위치를 사용합니다.

strpos() : http://php.net/manual/en/function.strpos.php
SUBSTR() : 당신이 남자, 위원장이 시도 할 것이다 http://php.net/manual/en/function.substr.php

+0

답장을 보내 주셔서 감사합니다. 나는 시도 할 것이지만 나는 그것이 좋을 것이라고 생각한다. – pxrb66

0

당신은 PHP의 substr 기능을 사용하여이 작업을 수행 할 수 있습니다. header('Content-Type: text/plain'); 줄을 사용하여 XML이 XML로 변환되는 대신 브라우저에 표시되도록했습니다. 문자열을 실제 XML 문자열로 사용하려는 경우이를 제거 할 수 있습니다.

$string = '2012/11/19 17:37:09.689 - INFO. - début du test 1 
2012/11/19 17:37:09.689 - INFO. - début du test 2 
2012/11/19 17:38:09.689 - INFO. - début du test 3 
2012/11/19 17:39:09.689 - INFO. - début du fr 4 
2012/11/19 17:40:09.689 - INFO. - début du de 5 
2012/11/19 17:40:48.689 - INFO. - début du de 6 
2012/11/19 17:40:49.689 - INFO. - génération du résultat 
<?xml version="1.0"?> 
<!-- 
Tests completed in 1036 milliseconds. 
6 tests of 6 passed, 0 failed. 
--> 
<testsuite name=" Tests" timestamp="2012-11-19T16:37:10Z" tests="6" failures="0" time="1.036"> 
<testcase name="dede" classname="test1"> 
</testcase> 
</testsuite>'; 
header('Content-Type: text/plain'); 
echo substr($string, strpos($string, '<?xml')); 
+0

감사합니다. – pxrb66