我通过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;
}
答案 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);