为什么返回会添加换行符?

时间:2011-09-05 23:28:21

标签: php return-value line-breaks

我通过ajax调用saveVideo.php而$ result总是在顶部有两个换行符,我看不出它们可能来自哪里。它应该只是addVideo中的$ id变量。一旦上传,我需要在新视频中使用id到ajax。

即使使用trim(),开发人员工具中的saveVideo ajax调用的输出也有2个换行符。

以下是所有相关代码:

saveVideo.php:

<?php
require_once '../model.php';

$m = new Model;
$video = new Video;

$user = requireLogin();


$video->file = $_POST['url'];
$video->lib = 0; //sets library to be personal.
$video->title = mysql_escape_string($_POST['video-title']);
$video->desc = mysql_escape_string($_POST['video-description']);
$video->userId = $user->id;

$result = $m->addVideo($video);

echo trim($result);
?>

addVideo函数:

function addVideo($video, $lib = 1) {
        // Adds video to database and associates it with a user id

        $qstring = "mysqlquery";

        $result = mysql_query($qstring);

        $id = mysql_insert_id();

        if (!$result) {
            die("Error adding video to database.");
        }
        return $id;
    }

2 个答案:

答案 0 :(得分:4)

在开始<?php之前或关闭?>标记之后查找不必要的空白行。如果<?php ?>块之外有空行,则它们将被视为页面内容的一部分,并作为PHP响应的一部分发送。

这也适用于../model.php。那里的空行将做同样的事情。


此外,当您正在调试此类内容时,如果您使用var_dump而非echo,则会节省大量头发。

var_dump($result);

这会产生类似

的输出
string(2) "14"

会告诉你$result不是神秘换行符的来源。

答案 1 :(得分:0)

您可以使用正则表达式甚至str_replace来删除这些换行符。

str_replace(array("\r", "\r\n", "\n"), '', $string);