使用php从html代码获取所有类元素作为txt文件

时间:2016-01-26 21:46:14

标签: php html download simple-html-dom

我试图用class =" msgsource"来获取所有span元素。从我的网站的HTML代码,然后将其发送到浏览器下载为.txt文件。这就是我所拥有的,但它下载了一个空文本文件

<?php
// parse div content
include('simple_html_dom.php');
$html = file_get_html('http://www.example.com');
$code = $html->find('[@class="msgsource"]');
$content = $code->outertext;

// send content to browser
header("Content-Type: application/force-download");
header("Content-Length: " . sizeof($content));
header('Content-Disposition: attachment; filename=mylog.txt');
echo $content;
?>

3 个答案:

答案 0 :(得分:0)

如果您正在使用我正在考虑的库,请查看此http://simplehtmldom.sourceforge.net/manual.htm,找到您更改的具有类的元素,找到这样的参数

private void setButtonRowListeners(final ButtonHolder buttonHolder) {
    buttonHolder.yes.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            buttonHolder.yes.setBackgroundColor(mContext.getResources().getColor(R.color.colorAccent));
            buttonHolder.yes.setTextColor(mContext.getResources().getColor(R.color.white));
            buttonHolder.no.setBackgroundColor(mContext.getResources().getColor(R.color.lighterGray));
            buttonHolder.no.setTextColor(mContext.getResources().getColor(R.color.mediumGray));
            buttonHolder.subQuestion.setVisibility(View.VISIBLE);
        }
    });

    buttonHolder.no.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            buttonHolder.no.setBackgroundColor(mContext.getResources().getColor(R.color.colorAccent));
            buttonHolder.no.setTextColor(mContext.getResources().getColor(R.color.white));
            buttonHolder.yes.setBackgroundColor(mContext.getResources().getColor(R.color.lighterGray));
            buttonHolder.yes.setTextColor(mContext.getResources().getColor(R.color.mediumGray));
            buttonHolder.subQuestion.setVisibility(View.GONE);
        }
    });
}

您可以找到如何从内容中找到所有跨度的示例。

答案 1 :(得分:0)

<?php
// parse div content
include('simple_html_dom.php');
$html = file_get_html('http://simplehtmldom.sourceforge.net/manual.htm');
$code = $html->find('span[class=comment]');
echo count($code);
echo $code[1];
?>

使用此格式查找html元素:

 $code = $html->find('span[class=comment]');

结果将作为数组存储在$ code中,然后使用它们的索引访问各个数组元素(html元素文本内容)。

答案 2 :(得分:0)

让我们从一个简单的案例开始,它表明它应该有效:

$str = <<<EOF
  <div class="msgsource">foo</div>
  <div>bar</div>
  <div class="msgsource">baz</div>
EOF;

$html = str_get_html($str);

$content = '';
foreach($html->find('.msgsource') as $code){
  $content .= $code->outertext . "\n";
}

echo $content;

从那里,你可以倒退,试图找出你的情况有什么不妥。