javascript - 使用php访问html子元素

标签 javascript php html

   <table id="rr" class="table mobile table-bordered">
<tr class="data "  id="abc1235">
  <td>
     <span class="label tip-top files-count" data-original-  title="Filesin">1</span>
  </td>
  <td colspan="1">
     <a class="tname " href="/file/123/0">User12</a>
  </td>
  <td class="tprogress">
     <span class="label size tip-top" data-original-title="Size">18.2   MB</span>
  </td>
  <td>
     <!--actions-->
  </td>
</tr>
 <tr class="data"  id="abc12356">
  <td>
       <span class="label tip-top files-count" data-original-title="Files            in">1</span>
   </td>
   <td colspan="1">
     <a class="tname " href="/file/123/1">Hi user </a>
  </td>
  <td class="tprogress">
       <span class="label size tip-top" data-original-title="Size">18.2MB</span>
   </td>
  <td>
     <!--actions-->
  </td>
</tr>
     </table>

使用 php 我想获取这种格式的信息 姓名:用户12 编号:abcd12345 名称:嗨用户 id:abc12356

到目前为止我所做的是

foreach($dom->getElementsByTagName('tr') as $link) {

    echo $link->getAttribute('id');
    echo "<br />";
}

这只会获取第一个值,我需要进入并获取标签的文本

最佳答案

忽略以下 html 中虚假的额外空格应该可以得到您需要的内容。

<?php
    $strhtml='
        <table id="rr" class="table mobile table-bordered">
            <tr class="data" id="abc1235">
              <td>
                 <span class="label tip-top files-count" data-original-title="Filesin">1</span>
              </td>
              <td colspan="1">
                 <a class="tname" href="/file/123/0">User12</a>
              </td>
              <td class="tprogress">
                 <span class="label size tip-top" data-original-title="Size">18.2 MB</span>
              </td>
              <td>
                 <!--actions-->
              </td>
            </tr>
             <tr class="data" id="abc12356">
              <td>
                   <span class="label tip-top files-count" data-original-title="Files in">1</span>
               </td>
               <td colspan="1">
                 <a class="tname" href="/file/123/1">Hi user</a>
              </td>
              <td class="tprogress">
                   <span class="label size tip-top" data-original-title="Size">18.2MB</span>
               </td>
              <td>
                 <!--actions-->
              </td>
            </tr>
        </table>';

    $dom=new DOMDocument;
    $dom->loadHTML( $strhtml );
    $xpath=new DOMXPath( $dom );

    $col=$dom->getElementsByTagName('tr');

    if( $col ){
        $output=array();
        foreach( $col as $tr ){
            $a_usr=$xpath->query( 'td/a[@class="tname"]', $tr );
            $output[]=array('id'=>$tr->getAttribute('id'), 'user'=>$a_usr->item(0)->nodeValue );
        }

        /* Display what was found */
        echo '<pre>',print_r($output,true),'</pre>';
    }

    /* not really required but tidy up */
    $dom = $xpath = $col = $tr = $output = null;
?>

关于javascript - 使用php访问html子元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34340172/

相关文章:

php - move_uploaded_file 失败 -- 无错误消息

javascript - 扩展列表不移动容器/页脚

javascript - Sencha Touch - 取消选择列表项?

php - UTF-8 编码在 PHP 中不起作用

javascript - 如何使用 Ajax 加载内容

javascript - 使用纯 Javascript 创建输入字段

javascript - 无法使用 AngularJS 在编号 "appState"上创建属性 "200"

javascript - 确保对象元素已完全加载页面

c# - ASPX 页面中的用户控件无法使用 javascript

javascript - 滚动导航过渡