PHP在元素之间回显逗号

PHP在元素之间回显逗号,php,parsing,dom,html-table,echo,Php,Parsing,Dom,Html Table,Echo,我的代码从html表中提取某些元素并列出它们: foreach($html->find('tr[align=center]') as $e) echo strip_tags($e->innertext) . '<br>'; 以下是从中提取这些项目的HTML表: <table width="100%" border="0" cellspacing="1" cellpadding="0" bgcolor="#006699"> <tr align

我的代码从html表中提取某些元素并列出它们:

foreach($html->find('tr[align=center]') as $e)
echo strip_tags($e->innertext) . '<br>';
以下是从中提取这些项目的HTML表:

 <table width="100%"  border="0" cellspacing="1" cellpadding="0" bgcolor="#006699">
    <tr align="center" class="tableRow1Font">
        <td width="7%">WAITLIST</td>
        <td width="5%">91630</td>
        <td width="11%">ACCY <A HREF="http://www.gwu.edu/~bulletin/ugrad/accy.html#2001" target="_blank">2001</A>
        </td>
        <td width="5%">10</td>
        <td width="16%">Intro Financial Accounting</td>
        <td width="6%">3.00</td>
        <td width="8%"> Zou, Y</td>
        <td width="8%"><A HREF="http://www.gwu.edu/~map/building.cfm?BLDG=DUQUES" target="_blank" >DUQUES</a> 251</td>
        <td width="13%">TR<br>09:35AM - 10:50AM</td>
        <td width="14%">
            01/13/14 - 04/28/14
        </td>
        <td width="7%">

        </td>
    </tr>
试一试

而是在每个td之间循环,并用逗号替换br标记

foreach($html->find('tr[align=center]') as $e){ 
     $str .= strip_tags($e->innertext). ",";
}
$str = trim($str, ",");//delete last ","
echo $str; 


相反,要循环遍历每个td,并用逗号替换br标记,为什么不在添加

标记的位置添加逗号?他可能无法控制表的源。他只循环遍历每个tr,但希望所有td元素的值都用逗号分隔。为什么不在添加

标记的位置添加一个逗号呢?他可能不控制表的源代码。他只循环遍历每个tr,但希望所有td元素的值都是逗号分隔的。如果您不希望后面有逗号,可以通过连接到字符串而不是回显来收集字符串中的所有条目,或者使用输出缓冲。然后使用
substr
修剪结尾处的逗号。否。所有内容都在一行中返回,因为他在每个tr上都使用了for-eachtd@ElefantPhace我不确定这是指这个答案还是我的评论,但我真的不明白你对这两种可能性的观点……不,这并不意味着你误解了答案problem@Chitowns24你的编辑让事情变得更糟。如果您想让变量计数,为什么要使用foreach?尽管它应该去掉尾随的
——我在评论中建议的解决方案更简洁。如果不希望尾随的逗号位于末尾,可以先通过连接到字符串而不是回显来收集字符串中的所有条目,或者使用输出缓冲。然后使用
substr
修剪结尾处的逗号。否。所有内容都在一行中返回,因为他在每个tr上都使用了for-eachtd@ElefantPhace我不确定这是指这个答案还是我的评论,但我真的不明白你对这两种可能性的观点……不,这并不意味着你误解了答案problem@Chitowns24你的编辑让事情变得更糟。如果您想让变量计数,为什么要使用foreach?虽然它应该去掉尾随的
——但我在评论中建议的解决方案要干净得多。这只会回应最后的
。你可能想写
$str.=
?除了在他打印的整个字符串的末尾添加一个逗号之外,这不会改变任何东西。仍然不是真正正确的,
=。
是无效的语法。另外,在附加到它之前,你不能在任何地方定义
$str
,这也行不通。你的答案仍然是错误的。为什么不测试它,看看它只会回显最后的
。你可能想写
$str.=
?除了在他打印的整个字符串的末尾添加一个逗号之外,这不会改变任何东西。仍然不是真正正确的,
=。
是无效的语法。另外,在附加到它之前,你不能在任何地方定义
$str
,这也行不通。你的答案仍然是错误的。你为什么不测试一下,看看这完全解决了我的问题。然而,我有很多这样的表格。这将在每个元素之间放置逗号,但是如何在每个元素之间放置逗号并在每行末尾断开?干杯循环两次。外部循环遍历所有
,内部循环遍历当前tr中的所有
td
s。在内部循环中添加逗号,在外部循环的末尾(但在内部)添加一个
br
。试着对其进行处理,如果您无法理解,请问另一个问题,这完全解决了我的问题。然而,我有很多这样的表格。这将在每个元素之间放置逗号,但是如何在每个元素之间放置逗号并在每行末尾断开?干杯循环两次。外部循环遍历所有
,内部循环遍历当前tr中的所有
td
s。在内部循环中添加逗号,在外部循环的末尾(但在内部)添加一个
br
。试着对其进行处理,如果您无法理解,请询问另一个相关问题
foreach($html->find('tr[align=center]') as $e){ 
     $str .= strip_tags($e->innertext). ",";
}
$str = trim($str, ",");//delete last ","
echo $str; 
echo strip_tags($e->innertext) . ', ';
$html->find('tr[align=center] td') 
foreach($html->find('tr[align=center]') as $e){ 
     $str .= strip_tags($e->innertext). ",";
}
$str = trim($str, ",");//delete last ","
echo $str;