在特殊字符上显示file_get_contents失败 - PHP

时间:2014-03-20 07:11:08

标签: php file-get-contents

我正在尝试使用file_get_contents打开文件。该文件包含"和其他特殊字符。当我尝试在echo $file_contents中使用PHP输出该文件的内容时,操作失败并出现Unexpected token错误。

  1. 如何编码此类特殊字符?
  2. 以下是获取错误的代码:

    <?php
    //the function below displays data from bbMainPage javascript.
    function getDataFromLibrary() {
    
        $tgt_url = $_GET["tgt_url"];
        $file_contents = file_get_contents($tgt_url);
        //echo $tgt_url;
        //echo $file_contents;
        var_dump($file_contents);
        //return $tgt_url;
    }
    ?>
    

    javascript中的代码:

    <html>
    <head>
    <style>
    .hlight{background-color:#ffcc00;}
    textarea {
        width:100%;
        height:100%;
    }
    </style>
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
    <script type="text/javascript">
    //mention all global variables here.
    console.log("this is the start of javascript");
    //get all data from the previous script.
    var fileContents = "<?php getDataFromLibrary(); ?>";
    var tgtURL = <?php echo json_encode($tgt_url); ?>;
    
    console.log("URl obtained = " + tgtURL);
    console.log("Text obtained = " + fileContents);   //this is where it fails.
    </script>
    </head>
    </html>
    

3 个答案:

答案 0 :(得分:0)

如果要打开包含特殊字符(例如空格)的URI,则需要使用urlencode()对URI进行编码。

答案 1 :(得分:0)

PHP在读取utf-8编码文件并将其发送到浏览器时似乎没有任何问题。我只是做了一个快速检查来验证它。您确定要在浏览器的标题中发送正确的字符集类型吗

header('Content-Type: text/html; charset=UTF-8');

答案 2 :(得分:0)

您需要目标网址的数据。目标网址应该包含特殊字符。首先对目标网址进行编码,然后您就可以获取该文件的内容。

否则,如果您的文件中存在问题,那么您应该在处理之前重新检查该文件。