在 XML 中使用不带文件扩展名的 PHP



这是一个由两部分组成的问题

第一部分 我必须生成检查当前状态的 XML 文件。我原以为这将是一项简单的任务,但结果并不那么容易。

例如,我有这样的代码:

if ($xyz=='yes')
{
$xml='Dummy xml string 1';
}
else
{
echo 'Dummy xml string 2';
}

现在是这个挑战的第二部分 因为这是为了模拟苹果AirScan/eSCL协议,我需要能够在调用以下URL时交付这些文件:

http://192.168.1.1/eSCL/ScannerStatus
http://192.168.1.1/eSCL/ScannerCapabilities

其中都不包含任何.php或 xml 扩展名。

为了进行测试,我生成了带有"ScannerStatus"等名称的文件,带有"file_put_contents",但是结果似乎是一个混合包,因为某些文件在浏览器中加载时页面顶部有"此xml文件没有样式信息",而其他文件只是显示为xml文本,不了解它们为什么不同。这可能部分是由于在我从实际来源收集的一些示例标头的开头发现的以下内容。

<?xml version="1.0" encoding="UTF-8"?>

但是,使用Mopria eSCL(AirScan)Android客户端进行测试时,客户端似乎接受两种xml格式。不过,我只能看到在浏览器中加载它们的区别。

我通过修改 apache2.conf 解决了这个问题

<Directory /var/www/>
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule (.*) $1.php [L]
RewriteCond %{REQUEST_FILENAME}.xml -f
RewriteRule (.*) $1.xml [L]
</IfModule>
Options FollowSymLinks
AllowOverride All
Require all granted
</Directory>

此后,我还添加了 .htaccess

DirectorySlash Off

最新更新