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

개선을 위한 제안을 환영합니다!

관련 정보