2012-11-19 172 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來確定從哪裏開始提取字符串。

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

然後使用起始位置與substr()

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

這不是測試,但應該是你需要的大致也是。

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