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>
4

2 回答 2

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'));
于 2012-11-19T18:11:16.730 回答
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

于 2012-11-19T18:13:31.647 回答