标签: php

Reference — What does this symbol mean in PHP?

What is this?

This is a collection of questions that come up every now and then about syntax in PHP. This is also a Community Wiki, so everyone is invited to participate in maintaining this list.

Why is this?

It used to be hard to find questions about operators and other syntax tokens.¹
The main idea is to have links to existing questions on Stack Overflow, so it's easier for us to reference them, not to copy over content from …

php arguments symbols operators

4314
推荐指数
21
解决办法
63万
查看次数

如何在PHP中阻止SQL注入?

如果插入用户输入而不修改SQL查询,则应用程序容易受到SQL注入的攻击,如下例所示:

$unsafe_variable = $_POST['user_input']; 

mysql_query("INSERT INTO `table` (`column`) VALUES ('$unsafe_variable')");
Run Code Online (Sandbox Code Playgroud)

这是因为用户可以输入类似的内容value'); DROP TABLE table;--,查询变为:

INSERT INTO `table` (`column`) VALUES('value'); DROP TABLE table;--')
Run Code Online (Sandbox Code Playgroud)

可以采取哪些措施来防止这种情况发生?

php mysql sql security sql-injection

2776
推荐指数
28
解决办法
166万
查看次数

如何检查字符串是否包含特定单词?

考虑:

$a = 'How are you?';

if ($a contains 'are')
    echo 'true';
Run Code Online (Sandbox Code Playgroud)

假设我有上面的代码,编写语句的正确方法是什么if ($a contains 'are')

php string substring contains string-matching

2663
推荐指数
36
解决办法
471万
查看次数

为什么我不应该在PHP中使用mysql_*函数?

为什么一个人不应该使用mysql_*功能的技术原因是什么?(例如mysql_query(),mysql_connect()mysql_real_escape_string())?

即使他们在我的网站上工作,为什么还要使用其他东西?

如果他们不在我的网站上工作,为什么我会收到错误

警告:mysql_connect():没有这样的文件或目录

php mysql database

2432
推荐指数
12
解决办法
21万
查看次数

PHP:从数组中删除元素

有没有一种简单的方法可以使用PHP从数组中删除元素,这样foreach ($array)就不再包含该元素了?

我认为设置它null会这样做,但显然它不起作用.

php arrays unset

2362
推荐指数
27
解决办法
245万
查看次数

如何从YouTube API获取YouTube视频缩略图?

如果我有YouTube视频网址,有没有办法使用PHP和cURL从YouTube API获取相关缩略图?

php youtube curl youtube-api youtube-data-api

2291
推荐指数
29
解决办法
154万
查看次数

2071
推荐指数
28
解决办法
40万
查看次数

什么时候使用自我超过$?

在PHP 5中,使用self和有$this什么区别?

什么时候适合?

php oop scope class

1948
推荐指数
21
解决办法
68万
查看次数

PHP'foreach'如何实际工作?

让我通过说我知道它是什么foreach,做什么以及如何使用它来加上前缀.这个问题涉及它如何在发动机罩下工作,我不希望任何答案都是"这就是你如何循环阵列foreach".


很长一段时间,我认为这foreach与数组本身一起工作.然后我发现许多引用它的数据副本的事实,我已经假设这是故事的结尾.但是我最近讨论了这个问题,经过一些实验后发现这实际上并非100%正确.

让我说明我的意思.对于以下测试用例,我们将使用以下数组:

$array = array(1, 2, 3, 4, 5);
Run Code Online (Sandbox Code Playgroud)

测试案例1:

foreach ($array as $item) {
  echo "$item\n";
  $array[] = $item;
}
print_r($array);

/* Output in loop:    1 2 3 4 5
   $array after loop: 1 2 3 4 5 1 2 3 4 5 */
Run Code Online (Sandbox Code Playgroud)

这清楚地表明我们不直接使用源数组 - 否则循环将永远持续,因为我们在循环期间不断地将项目推送到数组.但只是为了确保这种情况:

测试案例2:

foreach ($array as $key => $item) {
  $array[$key + 1] = $item + 2;
  echo "$item\n";
}

print_r($array);

/* Output …
Run Code Online (Sandbox Code Playgroud)

php iteration foreach loops php-internals

1926
推荐指数
7
解决办法
39万
查看次数

如何显示PHP错误?

我检查了我的php.ini文件,并设置了显示错误,还有错误报告display_errors.我重新启动了我的Apache Web服务器.

我甚至把这些行放在我的脚本的顶部,它甚至没有捕获简单的解析错误.例如,我使用a声明变量,E_ALL而不是关闭语句"$".但是我的所有脚本都显示这些错误的空白页面,但我想在浏览器输出中看到错误.

error_reporting(E_ALL);
ini_set('display_errors', 1);
Run Code Online (Sandbox Code Playgroud)

还剩下什么?

php error-reporting

1646
推荐指数
22
解决办法
285万
查看次数