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 );

改善のための提案を歓迎します!

おすすめ記事