PHP:捕获多行子字符串

PHP:捕获多行子字符串

我有一个很长的多行字符串(它在一个可以加载到字符串中的文件中),让我们以此为例:

<response status="success" code="19">
  <result total-count="1" count="1">
    <deviceconfig>
      <system>
        <type>
          <static/>
        </type>
      </system>
      <setting>
    </deviceconfig>
  </result>
</response>
<response status="success" code="19">
  <result total-count="1" count="1">
    <network>
      <interface>
        <ethernet/>
      </interface>
      <profiles>
        <monitor-profile>
          <entry name="default">
            <interval>3</interval>
            <action>wait-recover</action>
          </entry>
        </monitor-profile>
      </profiles>
    </network>
  </result>
</response>

我需要提取它的系统子集,并将其放入一个字符串中,其中包含从上面示例中获取的以下内容:

      <system>
        <type>
          <static/>
        </type>
      </system>

在我的用例中,原始样本要大得多,系统内的文本也要大一些

答案1

好的,我找到了一个解决方案来做到这一点:

preg_match_all('/(<system>.*<\/system>)/ms', file_get_contents('./myinputfile'), $xmlinit);
$output=$xmlinit[0][0]
file_put_contents('./myoutputfile', $output );

欢迎提出改进建议!

相关内容