在 PHP 文件中写入 <?xml?>



我有一个index.php文件:

<?php
// Load resources shared across the website
include '../path/to/other_file.php';
?>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"  xml:lang="es" lang="es" prefix="og: http://ogp.me/ns#">
<head prefix="article: http://ogp.me/ns/article#">
    <title>Title</title>
</head>
<body>
<!-- Code -->
</body>
</html>

当我加载它时,它什么也没显示。我使用这个在线工具查看正在发生的事情。第 5 行出现问题。

可能是我正在使用<?来介绍XHTML文档,但我想PHP认为以下单词将是php<?php //CODE ?>)而不是xml<?xml version="1.0" encoding="UTF-8"?>

我该如何解决它?我认为这被称为"解析"或"间隔"字符。

您可以使用简单的 echo 来解决此问题:

include '../path/to/other_file.php';
echo '<?xml version="1.0" encoding="UTF-8"?>';
?>

出现此问题是因为 PHP 认为您在执行<?时尝试进入"PHP 模式",而实际上您正在尝试访问 XML。对此的简单解决方案是禁用所谓的"PHP 短标签",其中 PHP 将<?识别为有效的开始标签。

您可以通过各种方法做到这一点,所有这些方法都可以有效地完成相同的工作

  1. php.ini中添加short_open_tag=Off
  2. 在指定文件的顶部添加ini_set('short_open_tag', '0');
  3. php_value short_open_tag 0在你的.htaccess
  4. 使用<?php echo "<?xml ... ?>";添加 XML。

尝试向浏览器发送 php 文件是带有以下行的 xml 文件:

header("Content-type: text/xml");

在启动 PHP 标签后将其正确放置,以便脚本可以覆盖标头

相关内容

  • 没有找到相关文章

最新更新