php - 初学者的好奇心

标签 php mysql

我有以下问题。我通过命令行将长文本(变量类型 LONGTEXT)放入 MYSQL 数据库。在本文的某处有一个 <br>标记,在文本末尾附近有 <?php phpinfo(); ?> .如果我输入 SELECT * FROM mytable WHERE id=1 ,整个文本按原样显示,所以它没有改变(阅读:<br><?php phpinfo(); ?> 都在那里。但是当我通过 php 提交查询时,如下所示:

if (mysql_num_rows($result) > 0) {
  while($row = mysql_fetch_row($result)) {
    echo $row[1];
  }
}

然后文本完全按照我想要的方式显示在我的网页上,这意味着 <br>标记被浏览器处理为换行符,并且 <?php phpinfo(); ?>部分被忽略。这正是我想要的。但我的问题是:为什么不 <?php phpinfo(); ?>部分通过浏览器处理?? PHP 的 echo 函数是否忽略 <?php标签??

提前感谢您的解释。

最佳答案

因为回显字符串与评估字符串不同。

PHP 生成 HTML,然后由浏览器处理。但是,除非您专门通过 eval() 将其放入,否则不会评估包含 PHP 代码的字符串(提示:不要!)

关于php - 初学者的好奇心,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9151843/

相关文章:

database - 我需要多张 table 还是一张 table ?

Mysql查询-如何包含 "filter"

php - 在 MySQL DB : UTF8 Latin1 illegal collation 中查找数据的*实际*字符编码

php - 构建 Gdata 电子表格查询

php - 将 CSV 文件导入 Postgre

php 字符串避免粗体斜体等

python - 从 MYSQL 读取模型时出现 DjangoUnicodeDecodeError

php - 向现有 session 添加键和值

php - elasticsearch-php更新返回错误请求,其中curl不

mysql - 在 MySQL 中设置默认值但未通过 JPA 设置