如何在DataTable中嵌入PHP模拟数组?代码解析问题求助
解决PHP与DataTable结合时代码不解析的问题
核心问题原因
你的HTML文件里的PHP代码直接输出,本质是服务器默认不会解析.html后缀文件中的PHP代码,另外还有短标签未启用的可能。
具体解决步骤
1. 修改HTML文件后缀为.php
最简单直接的方法:把pubdsply.html重命名为pubdsply.php,然后修改spider.php里的include路径:
<?php for ($arrcount=0; $arrcount <= 50; $arrcount++) { $result_title[$arrcount] = "Header Title:- ".$arrcount; $result_description[$arrcount] = "Description Line:- ".$arrcount; } include($_SERVER['DOCUMENT_ROOT'].'/public/pubdsply.php'); ?>
这样服务器会把pubdsply.php当作PHP文件解析,里面的PHP代码就能正常执行。
2. 检查PHP短标签是否启用
你在表格循环里用了<? ... ?>这种短标签,如果PHP配置里short_open_tag是关闭状态,短标签不会被解析。解决方法二选一:
- 打开
php.ini,找到short_open_tag = Off改成short_open_tag = On,重启服务器 - 把代码里的
<?改成<?php,比如循环部分改成:
<?php for ($arrcount=0; $arrcount <= 50; $arrcount++) { echo "<tr>"; echo "<td>"; echo $result_title[$arrcount] . "<br>"; echo $result_description[$arrcount] . "<br>"; echo "</td>"; echo "</tr>"; } ?>
3. 配置服务器让.html文件解析PHP(可选)
如果不想改文件后缀,可以配置服务器:
- Apache:在
httpd.conf或.htaccess里添加:
AddHandler application/x-httpd-php .html .htm
- Nginx:在站点配置里的
server块中添加:
location ~ \.(html|php)$ { fastcgi_pass unix:/run/php/php7.4-fpm.sock; # 根据你的PHP版本调整路径 fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; }
配置后重启服务器,.html文件里的PHP代码就会被解析。
4. 验证变量作用域
确保spider.php里的$result_title和$result_description能被包含的文件访问,因为include后的代码会继承当前作用域,所以只要spider.php里的变量定义在include之前,就没问题。可以在pubdsply.php里临时加一句var_dump($result_title);确认变量是否存在。
调整后的表格代码示例
修改后的pubdsply.php中表格tbody部分(补充表头缺失列,避免DataTable布局错乱):
<tbody> <?php for ($arrcount=0; $arrcount <= 50; $arrcount++) { echo "<tr>"; echo "<td>" . $result_title[$arrcount] . "<br>" . $result_description[$arrcount] . "</td>"; echo "<td></td><td></td><td></td><td></td><td></td>"; echo "</tr>"; } ?> </tbody>
内容的提问来源于stack exchange,提问作者user21668144
相关产品推荐
相关产品推荐

