Heim  >  Artikel  >  Backend-Entwicklung  >  Zusammenfassung einiger häufiger Probleme in PHP (Sammlung)

Zusammenfassung einiger häufiger Probleme in PHP (Sammlung)

不言
不言Original
2018-09-10 14:18:571742Durchsuche

Der Inhalt dieses Artikels ist eine Zusammenfassung (Sammlung) einiger häufiger Probleme in PHP. Ich hoffe, dass er für Freunde hilfreich ist.

1. Was ist der Unterschied zwischen einfachen und doppelten Anführungszeichen bei der Definition von Zeichenfolgen?

Einfache Anführungszeichen werden schneller geladen als doppelte Anführungszeichen

2. Was sind die Unterschiede zwischen echo(), print() und print_r()?

(1)echo ist eine Syntax, gibt einen oder mehrere Strings aus, kein Rückgabewert; (2)print ist eine Funktion, kann keine Arrays und Objekte ausgeben, Outputastring, print
hat einen Rückgabewert;
(3)print_r ist eine Funktion, die ein Array ausgeben kann. print_r ist eine interessante Funktion. Sie kann String, Int, Float, Array, Objekt usw. ausgeben. Bei der Ausgabe eines Arrays wird print_r durch eine Struktur dargestellt, die true zurückgibt, und print_r kann an print_r($) übergeben werden str,true), sodass print_r den von print_r verarbeiteten Wert zurückgibt, ohne ihn auszugeben. Darüber hinaus wird für Echo und Drucken meist Echo verwendet, da es effizienter ist als Drucken.

3. Was sind die String-Verarbeitungsfunktionen gemäß der funktionalen Klassifizierung? Was bewirken diese Funktionen?

A. String-Ausgabefunktion (1)echo $a,$b,$c...; ist eine Sprachstruktur, keine echte
Funktion.
(2)print($a) Diese Funktion gibt einen String aus. Bei Erfolg gibt es 1 zurück, bei Misserfolg 0
(3)print_r($a)
(4)var_dump($a); Kann Typ, Länge, Wert
Entfernen Leerzeichen vom Anfang und Ende der Zeichenfolge Funktion: trim ltrim rtrim (Alias: Chop) Mit dem zweiten Parameter können Sie auch angegebene Zeichen entfernen.
C. Escape-String-Funktion: addslashes()
D. String-Längenfunktion abrufen: strlen()
F. , strpos()
G. String-Funktionen ersetzen: str_replace()

4. Bitte geben Sie die richtigen Antworten auf die folgenden Fragen?

1).$arr = array('james', 'tom', 'symfony'); Bitte teilen Sie den Wert des $arr-Arrays mit ',' auf und führen Sie es zusammen eine String-Ausgabe?


echo implode(‘,’,$arr);

2).$str = 'jack,james,tom,symfony'; Bitte teilen Sie $str mit ',' und geben Sie den geteilten Wert in das $arr-Array ein?

$arr = explode(‘,’,$str);

3).$arr=array(3,7,2,1,'d','abc'); Bitte sortieren Sie $arr von der größten zur kleinsten Sortierung ordnen und ihre Schlüsselwerte unverändert lassen?

arsort($arr);
print_r($arr);

4).$mail = „gaofei@163.com“; Bitte entnehmen Sie die Domain dieser Mailbox (163.com) und drucken Sie sie aus, um zu sehen, wie viele Wörter Sie können höchstens Methode schreiben?

echostrstr($mail,'163');
echosubstr($mail,7);
$arr=explode("@",$mail);echo$arr[1];

5. Die Seitenzeichen sind verstümmelt, wie kann man das lösen?

1 ein Zeichensatzsatz. Überprüfen Sie, ob der Zeichensatz im Meta-Tag angegeben ist. Wenn es sich um eine PHP-Seite handelt, können Sie auch überprüfen, ob

den Zeichensatz in der Funktion header() angegeben hat. Zum Beispiel:

<meta http-equiv="Content-Type" content="text/html;
charset=utf-8"/>
header(“content-type:text/html;charset=utf-8”);

2. Wenn der Zeichensatz (d. h. Zeichensatz) festgelegt ist, prüfen Sie, ob das in der aktuellen Datei gespeicherte Codierungsformat

mit dem Zeichensatz auf der Seite übereinstimmt Die beiden müssen konsistent sein;

3. Wenn es um das Extrahieren von Daten aus der Datenbank geht, stellen Sie fest, ob der Zeichensatz mit dem Zeichensatz auf der aktuellen Seite übereinstimmt ,
zum Beispiel:

mysql_query(“set names utf8”)。

6. 正则表达式是什么?php 中有哪些常用的跟正则相关的 函数?请写出一个 email 的正则,中国手机号码和座机号码的正则表达式?

正则表达式是用于描述字符排列模式的一种语法规则。正则表达式也叫做模式表达式。网站开发中正则表达式最常用于表单提交信息前的客户端验证。
比如验证用户名是否输入正确,密码输入是否符合要求, email、手机号码等信息的输入是否合法
在 php 中正则表达式主要用于字符串的分割、匹配、查找和
替换操作。
preg 系列函数可以处理。具体有以下几个:
stringpreg_quote(stringstr[,stringdelimiter])
转义正则表达式字符 正则表达式的特殊字符包括:.\\+*? [^]$(){}=!a8093152e673feb7aba1828c43532094|:。
preg_replace-- 执行正则表达式的搜索和替换
mixed preg_replace ( mixed pattern, mixed replacement, mixed subject[,intlimit]
preg_replace_callback -- 用回调函数执行正则表达式的搜索
和替换
mixed preg_replace_callback ( mixed pattern, callback callback, mixedsubject[,intlimit])
preg_split-- 用正则表达式分割字符串
array preg_split ( string pattern, string subject [, int limit [, int flags]])
常用的正则表达式写法:
中文:/^[\u4E00-\u9FA5]+$/
手机号码:/^(86)?0?1\d{10}$/
EMAIL:
/^[\w-]+[\w-.]?@[\w-]+\.{1}[A-Za-z]{2,5}$/
密码(安全级别中) :
/^(\d+[A-Za-z]\w*|[A-Za-z]+\d\w*)$/
密码(安全级别高) :
/^(\d+[a-zA-Z~!@#$%^&(){}][\w~!@#$%^&(){}]*|[a-zA-Z~! @#$%^&(){}]+\d[\w~!@#$%^&(){}]*)$/

7.preg_replace()和 str_ireplace()两个函数在使用上有什么 不同?preg_split()和 split()函数如何使用?

preg_replace — 执行正则表达式的搜索和替换
str_ireplace — str_replace() 的 忽 略 大 小 写 版 本 str_replace — 子字符串替换
preg_split — 用正则表达式分割字符串
split — 用正则表达式将字符串分割到数组中

8. 获取当前时间戳的函数主要有哪些?用 PHP 打印出今 天的时间,格式是2010-12-10 22:21:21?用 PHP 打印出前一天的时间格式是2010-12-10 22:21:21? 如何把2010-12-25 10:30:25变成 unix 时间戳?

echodate("Y-m-dH:i:s",strtotime(‘-1,days’));
date(&#39;Y-m-dH:i:s&#39;,time());
$unix_time = strtotime("2009-9-2 10:30:25");//变成 unix 时间戳
echodate("Y-m-dH:i:s",$unix_time);//格式化为正常时间格式

9.在 url 中用 get 传值的时候,若中文出现乱码,应该用哪个函数对中文进行编码?

用户在网站表单提交数据的时候,为了防止脚本攻击(比如 用户输入3f1c4e4b6b16bbbd69b2ee476dc4f83aalert(111);2cacc6d41bbb37262a98f745aa00fbf0),php 端接收数据的
时候,应该如何处理?
使用 urlencode()对中文进行编码,使用 urldecode()来解码。
使用 htmlspecialchars($_POST[‘title’])来过滤表单传参就可以避免脚本攻击。

10. 说 说 mysql_fetch_row() 和 mysql_fetch_assoc() 和 mysql_fetch_array 之间有什么区别?

第一个是返回结果集中的一行作为索引数组,第二个是返回
关联数组,而第三个既可以返回索引数组也可以返回关联数 组,取决于它的第二个参数 MYSQL_BOTH MYSQL_NUM MYSQL_ASSOC 默认为 MYSQL_BOTH

$sql=”select*fromtable1”;
$result=mysql_query($sql);
mysql_fetch_array($result,MYSQL_NUM);

11. 请说出目前学过的返回是资源的函数?

答:fopen(打开文件)
imagecreatefromjpeg(png gif) — 从 JPEG
文件新建一图像
imagecreatetruecolor — 新建一个真彩色
图像
imagecopymerge — 拷贝并合并图像的一
部分
imagecopyresized — 拷贝部分图像并调
整大小
mysql_connect — 打开一个到 MySQL MySQL MySQL MySQL
服务器的连接
mysql_query();只有这执行 select 的时候成功,才返回资源, 失败返回 FALSE

12. 文件上传需要注意哪些细节?怎么把文件保存到指定目录?怎么避免上传文件重名问题?

1.首现要在 php.ini 中开启文件上传;
2.在 php.ini 中有一个允许上传的最大值,默认是2MB。必要
的时候可以更改;
3. 上 传 表 单 一 定 要 记 住 在 form 标 签 中 写 上 enctype="multipart/form-data";
4. 提交方式 method 必须是 post;
5. 设定 type="file" 的表单控件;
6.要注意上传文件的大小 MAX_FILE_SIZE、文件类型是否符合要求,上传后存放的路径是否存在。可以通过上传的文件名获取到文件后缀,然后使用时间戳+文件后缀的方式为文件重新命名,这样就避免了重名。可以自己设置上传文件的保存目录,与文件名拼凑形成一个文件 路径,使用 move_uploaded_file(),就可以完成将文件保存到指定目录。

13. $_FILES 是几维数组?第一维和第二维的索引下标分别是什么?批量上传文件的时候需要注意什么?

二维数组。第一维是上传控件的 name,二维下标分别为 name/type/tmp_name/size/error.

14.header()函数主要的功能有哪些?使用过程中注意什么?

答:

header()发送 http 头信息
-header("content-type:text/html; charset=utf-8");-------------------//当前页面输出内容是 html,编 码为 utf-8格式
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
-header("content-type:image/png gif jpeg");----------------------------------//当前页面输出内容的格式是图片
-header("refresh:5;url=http://www.1004javag.com/five/string.ph p");--//页面5秒后要跳转到新网址
-header("location:http://1004javag.com/five/string.php");----------//页面重定向

15. 文件下载的时候如果使用 header()函数?

答 : header("content-type: application/octet-stream;charset=UTF-8"); //在这里加 utf-8和
在上面定义有什么区别?、??

header("accept-ranges:bytes");
header("accept-length: ".filesize($filedir.$filename));
header("content-disposition: attachment; filename=".$filedir.$filename);

16. 什么是 ajax?ajax 的原理是什么?ajax 的核心技术是什 么?ajax 的优缺点是什么?

ajax 是 asynchronous JavaScript JavaScript JavaScript JavaScript and xml 的 缩 写 , 是 javascript、xml、css、DOM 等多个技术的组合。'$'是 jQuer jQuer jQuer jQuery y y y 的别名.
页面中用户的请求通过 ajax 引擎异步地与服务器进行通 信,服务器将请求的结果返回给这个 ajax 引擎,
最后由这个ajax引擎来决定将返回的数据显示到页面中的 指定位置。Ajax 最终实现了在一个页面的指定位置可以加载 , 另一个页面所有的输出内容。
这样就实现了一个静态页面也能获取到数据库中的返回数 据信息了。所以 ajax 技术实现了一个静态网页在不刷新整个
页面的情况下与服务器通信,
减少了用户等待时间,同时也从而降低了网络流量,增强了
客户体验的友好程度。
Ajax 的优点是:
1. 减轻了服务器端负担,将一部分以前由服务器负担的工
作转移到客户端执行,利用客户端闲置的资源进行处理;
2. 在只局部刷新的情况下更新页面,增加了页面反应速度,
使用户体验更友好。
Ajax 的缺点是不利于 seo 推广优化,因为搜索引擎无法直接 访问到 ajax 请求的内容。
ajax 的核心技术是 XMLHttpRequest,它是 javascript 中的
一个对象。

17.jquery 是什么?jquery 简化 ajax 后的方法有哪些?

jQuery 是 Javascript 的一种框架。
$.get(),$.post(),$.ajax()。$是 jQuery 对象的别名。
代码如下:

$.post(异 步 访 问 的 url 地 址 , {&#39; 参 数 名&#39; : 参 数 值} , function(msg){
$("#result").html(msg);
});
$.get( 异 步 访 问 的 url 地 址 , {&#39; 参 数 名 &#39; : 参 数 值 } , function(msg){
$("#result").html(msg);
});
$.ajax({
type:"post",
url:loadUrl,
cache:false,
data:"参数名=" + 参数值,
success:function(msg){
$("#result").html(msg);
}
});

18. 什么是会话控制?

简单地说会话控制就是跟踪和识别用户信息的机制。会话控制的思想就是能够在网站中跟踪一个变量,通过这个变量,系统能识别出相应的用户信息,根据这个用户信息可以得知用户权限,从而展示给用户适合于其相应权限的页面内容。 目前最主要的会话跟踪方式有 cookie,session。

19. 会话跟踪的基本步骤

1).访问与当前请求相关的会话对象

2). Finden Sie Informationen zum Gespräch

3). Sitzungsinformationen speichern

4). Sitzungsdaten verwerfen

20. Welche Vorsichtsmaßnahmen gibt es bei der Verwendung von Cookies?

1) Vor setcookie() darf keine Seitenausgabe erfolgen, auch Leerzeichen, Leerzeichen und weiße Zeilen sind nicht erlaubt; > 2) Nach setcookie() erfolgt keine Ausgabe, wenn $_COOKIE['cookiename'] auf der aktuellen Seite aufgerufen wird. Sie müssen die Seite aktualisieren oder zur nächsten Seite gehen, um den Cookie-Wert
anzuzeigen >3) Verschiedene Browser gehen mit Cookies unterschiedlich um, und der Browser kann auch die Anzahl der Cookies deaktivieren. Ein Browser kann bis zu 300 Cookies erstellen, und jedes darf nicht größer als 4 KB sein Die Gesamtzahl der Cookies, die von jeder Website gesetzt werden können, darf 20 nicht überschreiten.
4) Cookies werden auf der Clientseite gespeichert. Wenn der Benutzer Cookies deaktiviert, funktioniert setcookie nicht. Verlassen Sie sich also nicht zu sehr auf Cookies.
21. Was wird bei der Verwendung von Sitzung verwendet, um den aktuellen Benutzer darzustellen, um ihn von anderen Benutzern zu unterscheiden?

sessionid, die aktuelle session_id kann über die Funktion session_id() abgerufen werden.

22. Was sind die Schritte zur Verwendung von Sitzung und Cookie? Was ist der Lebenszyklus von Sitzung und Cookie? Was ist der Unterschied zwischen Sitzung und Cookie?

1. Cookies werden auf dem Client-Computer gespeichert. Bei Cookies ohne festgelegte Ablaufzeit wird der Cookie-Wert im Speicher des Computers gespeichert Cookie verschwindet automatisch. Wenn die Cookie-Ablaufzeit festgelegt ist, speichert der Browser das Cookie in Form einer Textdatei auf der Festplatte und der Cookie-Wert bleibt weiterhin gültig, wenn der Browser erneut geöffnet wird.

2. Die Sitzung dient dazu, die Informationen zu speichern, die der Benutzer auf der Serverseite speichern muss. Die Sitzungsinformationen jedes Benutzers werden auf der Serverseite wie ein Schlüssel-Wert-Paar gespeichert, wobei der Schlüssel die Sitzungs-ID und der Wert die Informationen sind, die der Benutzer speichern muss. Der Server

verwendet die Sitzungs-ID, um zu unterscheiden, zu welchem ​​Benutzer die gespeicherten Sitzungsinformationen gehören.
Der größte Unterschied zwischen den beiden besteht darin, dass die Sitzung auf der Serverseite gespeichert wird, während sich das Cookie auf der Clientseite befindet. Die Sitzungssicherheit ist höher, während die Cookie-Sicherheit schwach ist. 3. Sitzungen spielen eine sehr wichtige Rolle in der Webentwicklung. Es kann die korrekten Anmeldeinformationen des Benutzers
im Speicher des Servers aufzeichnen. Wenn der Benutzer als diese Identität auf den Verwaltungshintergrund der Website zugreift
, kann der Benutzer die Identitätsbestätigung erhalten ohne sich erneut anzumelden. Benutzer, die sich nicht korrekt angemeldet haben, weisen keinen Sitzungsraum zu und können den Seiteninhalt nicht sehen, selbst wenn sie die Zugriffsadresse des Verwaltungshintergrunds eingeben. Die Berechtigung des Benutzers zum Betrieb der Seite wird durch die Sitzung ermittelt. Schritte zur Verwendung der Sitzung:

1. Sitzung starten: Verwenden Sie zum Starten die Funktion session_start().

2. Sitzung registrieren: Fügen Sie einfach Elemente direkt zum Array $_SESSION hinzu.

3. Sitzung verwenden: Bestimmen Sie, ob die Sitzung leer oder registriert ist. Wenn
bereits vorhanden ist, verwenden Sie sie wie ein gewöhnliches Array.
4. Sitzung löschen: 1. Sie können „unset“ verwenden, um eine einzelne Sitzung zu löschen array()-Methode, alle Sitzungsvariablen auf einmal abmelden
;
3. Verwenden Sie die Funktion session_destroy(), um die Sitzung vollständig zu zerstören.
Wie verwendet man Cookies?
1. Zeichnen Sie einen Teil der vom Benutzer besuchten Informationen auf

2. Übergeben Sie Variablen zwischen Seiten

3 Seiten werden in temporären Cookie-Ordnern gespeichert, was

zukünftige Browsing-Geschwindigkeiten verbessern kann.

创建 cookie:setcookie(stringcookiename,stringvalue,int expire);
读取 cookie:通过超级全局数组$_COOKIE 来读取浏览器端 的 cookie 的值。
删除 cookie:有两种方法
1.手工删除方法:
右击浏览器属性,可以看到删除 cookies,执行操作即可将所 有 cookie 文件删除。
2.setcookie()方法:
跟设置 cookie 的方法一样,不过此时将 cookie 的值设置为 空,有效时间为0或小于当前时间戳。

 23. 设置或读取 session 之前,需要做什么?

可以直接在php.ini中开启session.auto_start=1或者在页面 头部session_start();
开启 session,session_start()前面不能有任何输出,包括空行。

24. 在实际开发中,session 在哪些场合使用?

session 用来存储用户登录信息和用在跨页面传值。
1)常用在用户登录成功后,将用户登录信息赋值给 session;
2)用在验证码图片生成,当随机码生成后赋值给 session。

25. 注销 session 会话的形式有几种?

unset() $_SESSION=array(); 
session_destroy();

 相关推荐: 

php服务nginx不能使用file_get_contents的解决方法

php输出中文页面时出现中文乱码的解决方案

Das obige ist der detaillierte Inhalt vonZusammenfassung einiger häufiger Probleme in PHP (Sammlung). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn