使用file_put_contents通过php mysql创建html文件
当我试图用php mysql创建html文件时,遇到了一些麻烦。我的代码如下,第一条回音线出现了一些错误。我需要一些帮助。谢谢 我得到的错误是使用file_put_contents通过php mysql创建html文件,php,file-io,Php,File Io,当我试图用php mysql创建html文件时,遇到了一些麻烦。我的代码如下,第一条回音线出现了一些错误。我需要一些帮助。谢谢 我得到的错误是 Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING 在这一行 $php = "echo '<div class=\"title\">'.htmlspecialchar
Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING
在这一行
$php = "echo '<div class=\"title\">'.htmlspecialchars($row['title'],UTF-8).'</div><br />';
这是我剩下的代码
header('Content-type:text/html; charset=utf-8');
set_time_limit(30);
require_once dirname(__FILE__) . '/conn.php';
mysql_select_db("ba_10978243",$handle_db5);
$result = @mysql_query("SELECT title,content,date FROM new_heelp Order By date DESC LIMIT 15");
while ($row = @mysql_fetch_array($result))
{
$php = "echo '<div class=\"title\">'.htmlspecialchars($row['title'],UTF-8).'</div><br />';//echo wrong in this line : Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING
$data = date(\"w j n Y H:i:s\", $row['date']);
echo '<div class=\"date\">'.$data.'</div>';
if(!empty($row['content'])){
echo '<div class=\"content\">'.$row['content'].'</div>';
}";
}
file_put_contents("$article_20100421_132.html", $php);
?>
要修复:
Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING
更改您的样本行以包含最终收盘报价:
$php = "echo '<div class=\"title\">'.htmlspecialchars($row['title'],UTF-8).'</div><br />'";
这是一些相当丑陋的代码。您正在创建包含PHP语法的字符串,然后将其存储在HTML文件中?不去上班
<?php
set_time_limit( 30 );
require_once( dirname( __FILE__ ) . '/conn.php' );
mysql_select_db( 'ba_10978243' , $handle_db5 );
$result = @mysql_query( 'SELECT `title , `content` , `date` FROM `new_heelp` ORDER BY `date` DESC LIMIT 15' );
if( !$result || mysql_num_rows( $result )>0 ){
echo 'ERROR: No SQL Rows Returned.';
}else{
$output = array();
$rowTpl = '<div class="title">%s</div><br/><div class="date">%s</div>%s';
while( $r = @mysql_fetch_array( $result ) ){
$output[] = sprintf( $rowTpl ,
htmlspecialchars( $row['title'] , ENT_COMPAT , 'UTF-8' ) ,
date( 'w j n Y H:i:s' , $row['date'] ) ,
( !empty( $row['content'] ) ? $row['content'] : '' ) );
}
file_put_contents( "{$article}_20100421_132.html" , implode( "\n" , $output ) ); # NOTE: $article is not declared anywhere above this line
?>
代码中问题的摘要:
当不需要时,您可以使用header来设置内容类型-您正在创建的HTML文件将不会继承此信息,如果此PHP脚本没有向浏览器输出任何内容,则它是多余的。
仔细检查SQL中的表名-它真的是heelp吗?
在while循环中,您将在每个循环中替换$php的值,因此只有最后的值将被带入页面。
用于设置$php的字符串包含php代码,在HTML文件中,这些代码不会起任何作用。
当被单引号包围时,您正在转义双引号-冗余
您正在新HTML文件的名称中使用一个变量,该变量未在该行上方的任何位置声明,这将给您带来问题。
代码中有很多问题。下面列出了最引人注目的例子
"echo '<div class=\"title\">'.htmlspecialchars($row['title'],UTF-8).'</div><br />';
----------------------------^
在循环中不断重写$php变量的值。您想要的是连接它
$php .= "...";
您已抑制查询命令中的错误。如果出了问题,你怎么知道?明智地使用@operator
@mysql_query....
从我看到的情况来看,您正在将字符串弄得一团糟,因为您试图将PHP代码放入一个文本文件中,以便稍后包含或评估它?。有更干净的方法来制作你的绳子。也使它更容易阅读。如果您提供更多有关您尝试执行的操作的详细信息,我们将为您提供帮助。-1因为您没有发布正确的错误消息或描述出错的原因。在113个问题之后,这是意料之中的。另外,您使用的是$php=而不是$php。您不是在连接字符串all@Pekka,我在第一个回显行后发布了我的错误,解析错误:语法错误,意外的T_封装的_和_空格,应为T_字符串或T_变量或T_NUM_STRING@JohnP,我试过$php.=,但仍然不正确。谢谢
@mysql_query....