1

我正在尝试使用 PHP 读取一个 txt 文件,然后将该文本文件的内容回显为 JSON 格式,以通过 AJAX 请求发回。当 txt 文件不包含换行符/段落时,这对我来说很好,但在有的时候不行。

因此,我正在寻找一种方法来在返回文本文件的内容时在文本文件中搜索换行符,并将它们替换为 <br> 标记以插入 JSON。

目前我的代码看起来像这样......

$jsonFile = '{';
$projectName = $_POST["project"];

//directories
$videoDir = $_SERVER['DOCUMENT_ROOT'].'/malagnini/projects/'.$projectName.'/video/';
$audioDir = $_SERVER['DOCUMENT_ROOT'].'/malagnini/projects/'.$projectName.'/audio/';
$textData = file_get_contents($_SERVER['DOCUMENT_ROOT'].'/malagnini/projects/'.$projectName.'/description.txt', true);

//add text data to JSON
$jsonFile .= '"text":"'.$textData.'",';   

//add video paths to JSON
$j = 1;
if ($dirHandle = opendir($videoDir) ){
    while (($file = readdir($dirHandle)) !== FALSE){
        if (!is_dir($file)){
            $jsonFile .= '"video'.$j.'":"'.$file.'",';   
            $j++; 
        }

    }

};

//add audio paths to JSON
$jsonFile .= '"audio": {';
$i = 1;

if ($dirHandle = opendir($audioDir) ){
    while (($track = readdir($dirHandle)) !== FALSE){
        if (!is_dir($track)){
            $jsonFile .= '"track'.$i.'":"'.$track.'",';
            $i++;     
        }

    }

};

//echo JSON
$jsonFile = chop($jsonFile, ",");
$jsonFile .= '} }';
echo $jsonFile;

所以文本数据是通过 var &textData 读入的,但是当它输出到 JSON 时,当 txt 文件中有换行符时,它不是有效的 JSON。

4

3 回答 3

2

因此,我正在寻找一种方法来在返回文本文件的内容时在文本文件中搜索换行符,并用 <br> 标记替换它们以插入 JSON。


我认为这就是你需要的:http: //php.net/manual/fr/function.nl2br.php

于 2013-04-17T09:46:15.203 回答
1

您不应该手动编译 json,为什么不使用所需的属性构建一个数组然后对其进行 json_encode 呢?

因此,您根本不必担心琴弦的内部组成。

于 2013-04-17T10:10:24.677 回答
1

将换行符转换为中断标记的最简单方法是简单地运行字符串nl2br()

于 2013-04-17T09:47:19.400 回答