使用服务器路径而不是URL访问文件

时间:2012-04-30 06:20:09

标签: php codeigniter

我有两个问题。

  1. 我目前正在运行XAMP,我想禁止人们在/ htdocs / db / resource / data中打开.xml文件。我相信这是一个.htaccess解决方案。

  2. 我也想从我的PHP那些.xml文件。由于我不能使用URL文件路径,我尝试使用'resource / data / filename.xml'但它似乎不起作用。我想我在这里遗漏了一些东西。

  3. 只是添加,如果这个因素。我使用CI,它安装在我的XAMPP中的htdocs / db /。我可以通过url访问.xml,但我想通过服务器中的文件路径访问它。

2 个答案:

答案 0 :(得分:0)

为主文件中的根目录定义一个常量,即index.php

像这样

if(!defined('SITEPATH')){
   define('SITEPATH',dirname(__FILE__).'/');
}

现在你可以像使用url一样使用它来获取任何文件。

享受

修改

<?php
$xmls = array(
                'customxml_name1' => 'RelativePath1',
                'customxml_name2' => 'RelativePath2',
            );

if(isset($_GET['data'])&&!empty($_GET['data'])){
    echo file_get_contents(dirname(__FILE__).'/'.$xmls[$_GET['data']]);
}
?>

将此脚本放在根文件夹中。使用自定义名称将路径添加到xmls,然后使用get parameter =&gt;调用脚本网址。 data作为xml的customxml_name

享受:)

答案 1 :(得分:0)

  1. 是的,Apache配置将支持此

    # /htdocs/db/resource/data/.htaccess
    
    <FilesMatch "\.xml$">
        Order allow,deny
        Deny from all
    </FilesMatch>
    
  2. 应该有效,例如

    // /htdocs/db/some-file.php
    
    $xml = simplexml_load_file(__DIR__ . '/resource/data/filename.xml');