使用PHP从页面中提取html代码以推断一些图像

时间:2017-01-11 10:34:27

标签: php html wordpress domdocument

我要从我的WP网站的产品详细信息页面创建一个PDF文档,我从页面中提取所有html代码以推断img和table标记。 我安装了一个插件来从页面创建PDF文档但是没有插入图像和表格:只将文本插入到文档中。

该插件是woocommercePrintProduct,我已编辑其代码以将图像插入PDF文档中。应修改的功能如下:

div class="descrizione" style="margin:0 30px;">
            <div class="colonnaSx" style="float:left;width:350px;margin-right:30px">
                <div class="pacchettino">
                    <?php if( get_field('descrizione_prod') ): ?>
                        <h3>DESCRIPTION</h3>
                        <p><?php the_field('descrizione_prod'); ?></p>
                    <?php endif; ?>
                </div>

                <div class="pacchettino">
                    <?php if( get_field('forma') ): ?>
                        <h3>SHAPE</h3>
                        <p><?php the_field('forma'); ?></p>
                    <?php endif; ?>
                </div>

                <div class="pacchettino">
                    <?php if( get_field('posa') ): ?>
                        <h3>INSTALLATION</h3>
                        <p><?php the_field('posa'); ?></p>
                    <?php endif; ?>
                </div>

                <div class="pacchettino">
                    <?php if( get_field('conduttore') ): ?>
                        <h3>CONDUCTOR</h3>
                        <p><?php the_field('conduttore'); ?></p>
                    <?php endif; ?>
                </div>

                <div class="pacchettino">
                    <?php if( get_field('isolante') ): ?>
                        <h3>INSULATION</h3>
                        <p><?php the_field('isolante'); ?></p>
                    <?php endif; ?>
                </div>

                <div class="pacchettino">
                    <?php if( get_field('guaina') ): ?>
                        <h3>SHEAT</h3>
                        <p><?php the_field('guaina'); ?></p>
                    <?php endif; ?>
                </div>

                <div class="pacchettino">
                    <?php if( get_field('sforzo_massimo_di_tiro') ): ?>
                        <h3>MAX MECHANICAL STRESS</h3>
                        <p><?php the_field('sforzo_massimo_di_tiro'); ?></p>
                    <?php endif; ?>
                </div>

                <div class="pacchettino">
                    <?php if( get_field('guainetta') ): ?>
                        <h3>INTERNAL SHEATH</h3>
                        <p><?php the_field('guainetta'); ?></p>
                    <?php endif; ?>
                </div>
            </div>

            <div class="colonnaDx" style="float:right;width:350px;">
                <div class="pacchettino">
                    <?php if( get_field('marchiatura') ): ?>
                        <h3>MARCHIATURA</h3>
                        <p><?php the_field('marchiatura'); ?></p>
                    <?php endif; ?>
                </div>

                <div class="pacchettino">
                    <?php if( get_field('colore') ): ?>
                        <h3>COLORE</h3>
                        <p><?php the_field('colore'); ?></p>
                    <?php endif; ?>
                </div>

                <div class="pacchettino">
                    <?php if( get_field('tensione_di_esercizio') ): ?>
                        <h3>TENSIONE DI ESERCIZIO</h3>
                        <p><?php the_field('tensione_di_esercizio'); ?></p>
                    <?php endif; ?>
                </div>

        <?php /*
        <table class="description">
            <?php
            $description = wpautop($this->data->description);
            $description = preg_replace("/\[[^\]]+\]/", '', $description);
            $description = explode('<p>', $description);
            foreach ($description as $value) {
            ?>
                <tr>
                    <td  style="padding-bottom: 20px;">
                        <?php echo $value ?>
                    </td>
                </tr>
                <?php
            }
            ?>

        </table>

        */
        ?>

        <div class="description"  style="margin:0 30px;">
            <?php
                $description = wpautop($this->data->description);
                $description = preg_replace("/\[[^\]]+\]/", '', $description);
                $description = explode('<p>', $description); 
                foreach ($description as $value) {
            ?>

                <div class="pacchettino" style="padding-bottom: 20px;margin:0 30px;">
                    <?php 
                        echo $value 
                    ?>
                </div> 

            <?php
            }
            ?>

        </div>


        <?php

        return ob_get_clean();

    }

我想从详细信息产品页面中提取html代码,然后推断img标签并将它们交换到文档中。

请帮帮我吗?

1 个答案:

答案 0 :(得分:0)

为此提供了更多,更简单的解决方案。

我推荐WKHTMLtoPDF,它是开源的,没有浏览器,没有app,只是命令行,非常简单。 http://wkhtmltopdf.org/downloads.html

使用方法: 从上面的链接安装后 打开CMD提示符 输入

wkhtmltopdf {website} {filename to save as}

示例:

wkhtmltopdf http://google.com google.pdf

用户手册: http://wkhtmltopdf.org/usage/wkhtmltopdf.txt

还有许多其他程序甚至是在线工具可以完全按照您的要求免费提供,许多甚至是上面提到的开源。当你可以免费获得汽缸时,没有必要刮一个方形钉以适合圆孔。