无需根据需要回复preg_match_all

时间:2015-11-26 11:57:46

标签: php echo

我有一个包含以下内容的XML文件:

<property fmtid="{D5CDD505-2E9C-101B-9397-08002B2CF9AE}" pid="2"   name="ALALALAL"><vt:lpwstr>asdasda</vt:lpwstr></property><property fmtid="{D5CDD505-2E9C-101B-9397-08002B2CF9AE}" pid="3" name="MACABSZ"><vt:lpwstr>ooooo</vt:lpwstr></property><property fmtid="{D5CDD505-2E9C-101B-9397-08002B2CF9AE}" pid="4" name="3"><vt:lpwstr>c</vt:lpwstr></property><property fmtid="{D5CDD505-2E9C-101B-9397-08002B2CF9AE}" pid="5" name="4"><vt:lpwstr>d</vt:lpwstr></property>

我有以下php。 (我能够精确到xml的所需部分):

   if (preg_match_all ('_name="(.*?)"_',  $ekker, $tomb2)); 
   if (preg_match_all ('_<vt:lpwstr>(.*?)</vt:lpwstr>_',  $ekker, $tomb));

在html文件中我想回显结果,所以我用它:

<form>
  <?php 
  foreach ($tomb2[1] as $metaname); 
  foreach ($tomb[1] as $talalat){
  echo '<p>' . "$metaname\n" . '</p>' . '<br>' . '<input type="text" name="firstname" value="' . "$talalat\n" . '">' . '<br>';}?>
</form>

结果我得到了这个:

enter image description here

然而,这并不是我想要的。而不是前三个&#34; 4&#34;我需要:ALALALAL,MACABSZ,3。为什么它只回显&#39; name =&#34;(。*?)&#34; &#39;的最后结果。搜索?

感谢您的回答!

1 个答案:

答案 0 :(得分:1)

从我得到的,你想要的是在一个循环中访问具有相同索引的两个数组项。也许这样做:

<form>
<?php 
    foreach ($tomb2[1] as $key => $metaname){
        $talalat = $tomb[1][$key];
        echo '<p>' . "$metaname\n" . '</p>' . '<br>' . '<input type="text" name="firstname" value="' . "$talalat\n" . '">' . '<br>';
    }
?>
</form>