这是关于编程PHP时可能遇到的警告,错误和通知的一些答案,并且不知道如何修复.这也是社区Wiki,因此邀请每个人参与添加和维护此列表.
Stack Overflow上经常弹出诸如"已发送标头"或"调用非对象成员"之类的问题.这些问题的根本原因总是一样的.因此,这些问题的答案通常会重复,然后显示OP在他/她的特定情况下要改变哪一行.这些答案不会为网站添加任何价值,因为它们仅适用于OP的特定代码.具有相同错误的其他用户不能轻易地从中读取解决方案,因为它们过于本地化.这很难过,因为一旦你理解了根本原因,修复错误是微不足道的.因此,该列表试图以一般的方式解释解决方案.
如果您的问题已被标记为重复,请在下面找到您的错误消息并将修复程序应用于您的代码.答案通常包含进一步调查的链接,以防单独的一般答案不清楚.
如果您想贡献,请添加您的"收藏"错误消息,警告或通知,每个答案一个,简短说明它意味着什么(即使它只是突出显示其手册页的术语),可能的解决方案或调试方法和现有问答的清单.此外,随时改善任何现有的答案.
另外,请参阅
是否有一个catchall函数适用于清理SQL注入和XSS攻击的用户输入,同时仍允许某些类型的html标记?
如何通过"order"键的值对此数组进行排序?尽管这些值目前是连续的,但它们并不总是如此.
Array
(
[0] => Array
(
[hashtag] => a7e87329b5eab8578f4f1098a152d6f4
[title] => Flower
[order] => 3
)
[1] => Array
(
[hashtag] => b24ce0cd392a5b0b8dedc66c25213594
[title] => Free
[order] => 2
)
[2] => Array
(
[hashtag] => e7d31fc0602fb2ede144d18cdffd816b
[title] => Ready
[order] => 1
)
)
Run Code Online (Sandbox Code Playgroud) 我有一个数组:
array( 4 => 'apple', 7 => 'orange', 13 => 'plum' )
我想得到这个数组的第一个元素.预期结果:字符串 apple
一个要求:通过引用传递不能完成,因此array_shift不是一个好的解决方案.
我怎样才能做到这一点?
我曾尝试阅读一些文章,但我对这些概念还不是很清楚.
有人愿意尝试向我解释这些技术是什么:
我每次遇到的一件事是,服务器保持连接打开并将数据推送到客户端.如何保持连接打开,客户端如何获取推送数据?(客户端如何使用数据,也许某些代码可能会有帮助?)
现在,我应该将其中哪一个用于实时应用.我一直听说很多关于websockets(有socket.io [一个node.js库]),但为什么不用PHP?
我使用此代码获取完整的URL:
$actual_link = 'http://'.$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF'];
Run Code Online (Sandbox Code Playgroud)
问题是我在我.htaccess身上使用了一些掩码,所以我们在URL中看到的并不总是文件的真实路径.
我需要的是获取URL,URL中写的内容,仅此而已 - 完整的URL.
我需要了解它在Web浏览器的导航栏中的显示方式,而不是服务器上文件的真实路径.
何时以及为什么我应该在类中使用public,private和protected函数和变量?他们之间有什么区别?
例子:
// Public
public $variable;
public function doSomething() {
// ...
}
// Private
private $variable;
private function doSomething() {
// ...
}
// Protected
protected $variable;
protected function doSomething() {
// ...
}
Run Code Online (Sandbox Code Playgroud) 我试图从MySQL表中选择数据,但我收到以下错误消息之一:
mysql_fetch_array()期望参数1是资源,给定布尔值
要么
mysqli_fetch_array()期望参数1为mysqli_result,给定布尔值
要么
在布尔/非对象上调用成员函数fetch_array()
这是我的代码:
$username = $_POST['username'];
$password = $_POST['password'];
$result = mysql_query('SELECT * FROM Users WHERE UserName LIKE $username');
while($row = mysql_fetch_array($result)) {
echo $row['FirstName'];
}
Run Code Online (Sandbox Code Playgroud)
这同样适用于代码
$result = mysqli_query($mysqli, 'SELECT ...');
// mysqli_fetch_array() expects parameter 1 to be mysqli_result, boolean given
while( $row=mysqli_fetch_array($result) ) {
...
Run Code Online (Sandbox Code Playgroud)
和
$result = $mysqli->query($mysqli, 'SELECT ...');
// Call to a member function fetch_assoc() on a non-object
while( $row=$result->fetch_assoc($result) ) {
...
Run Code Online (Sandbox Code Playgroud)
和
$result = $pdo->query('SELECT ...', PDO::FETCH_ASSOC);
// Invalid …Run Code Online (Sandbox Code Playgroud)