Maison  >  Article  >  développement back-end  >  Résumé de quelques problèmes courants en PHP (collection)

Résumé de quelques problèmes courants en PHP (collection)

不言
不言original
2018-09-10 14:18:571787parcourir

Le contenu de cet article est un résumé (collection) de certains problèmes courants en PHP. Il a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer.

1. Quelle est la différence entre les guillemets simples et les guillemets doubles lors de la définition de chaînes ?

Les guillemets simples se chargent plus rapidement que les guillemets doubles

2 Quelles sont les différences entre echo(), print() et print_r() ?

(1)echo est une syntaxe, génère une ou plusieurs chaînes, aucune valeur de retour
(2)print est une fonction, ne peut pas générer de tableaux et d'objets, Outputastring, print
a une valeur de retour
(3)print_r est une fonction qui peut générer un tableau. print_r est une fonction intéressante. Elle peut générer une chaîne, un int, un float, un tableau, un objet, etc. Lors de la sortie d'un tableau, il sera représenté par une structure print_r renvoie true lorsque la sortie est réussie et print_r peut être transmis à print_r($). str,true), de sorte que print_r renvoie la valeur traitée par print_r sans la sortir. De plus, pour echo et print, echo est principalement utilisé car il est plus efficace que print.

3. Quelles sont les fonctions de traitement des chaînes selon la classification fonctionnelle ? A quoi servent ces fonctions ?

A. La fonction de sortie de chaîne
(1)echo $a,$b,$c...; est une structure de langage, pas une vraie
Fonction.
(2)print($a) Cette fonction génère une chaîne. En cas de succès, il renvoie 1, s'il échoue, il renvoie 0
(3)print_r($a)
(4)var_dump($a); Peut afficher le type, la longueur, la valeur
B. espaces au début et à la fin de la chaîne Fonction : trim ltrim rtrim (alias : chop) En utilisant le deuxième paramètre, vous pouvez également supprimer les caractères spécifiés.
C. Fonction de chaîne d'échappement : addlashes()
D. Récupérer la fonction de longueur de chaîne : strlen()
E. Fonction d'interception de chaîne : substr()
F. , strpos()
G. Remplacer les fonctions de chaîne : str_replace()

4 Veuillez donner les réponses correctes aux questions suivantes ?

1).$arr = array('james', 'tom', 'symfony'); Veuillez diviser la valeur du tableau $arr avec ',' et le fusionner dans une chaîne de sortie ?

echo implode(‘,’,$arr);

2).$str = 'jack,james,tom,symfony' ; Veuillez diviser $str avec ',' et diviser la valeur. Mettez-le dans le Tableau $arr ?

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

3).$arr=array(3,7,2,1,'d','abc'); Veuillez changer $arr du plus grand); au plus grand Trier en petit ordre et garder leurs valeurs clés inchangées ?

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

4).$mail = «gaofei@163.com» Veuillez retirer le domaine de cette boîte aux lettres (163.com) et l'imprimer pour voir le plus de vous possible. peut écrire Combien de méthodes ?

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

5. Les caractères de la page sont tronqués, comment le résoudre ?

1. le fichier est défini Jeu de caractères. Vérifiez si charset est écrit dans la balise méta. S'il s'agit d'une page php, vous pouvez également vérifier si
spécifie charset dans la fonction header()
Par exemple :

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

2. Si le jeu de caractères (c'est-à-dire le jeu de caractères) est défini, déterminez si le format d'encodage enregistré dans le fichier actuel est cohérent avec le jeu de caractères défini par la page Les deux doivent être cohérents ;
3. S'il s'agit d'extraire des données de la base de données, déterminez si le jeu de caractères
lors de l'interrogation de la base de données est cohérent avec le jeu de caractères défini sur la page actuelle. unifié,
par exemple :

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). Rechercher des informations liées à la conversation

3). Stocker les informations de la session

4). Supprimer les données de session

20. Quelles sont les précautions à prendre lors de l'utilisation des cookies ?

1) Il ne peut y avoir de sortie de page avant setcookie(), même les espaces, les vides et les lignes blanches ne sont pas autorisés
2) Après setcookie(), il n'y aura aucune sortie lors de l'appel de $_COOKIE['cookiename'] sur la page actuelle. Vous devez actualiser ou passer à la page suivante pour voir la valeur du cookie  ; >3) Différents navigateurs gèrent les cookies différemment. Le client peut désactiver les cookies, et le navigateur peut également désactiver le nombre de cookies. Un navigateur peut créer jusqu'à 300 cookies, et chacun ne peut pas dépasser 4 Ko,
. Le nombre total de cookies pouvant être définis par chaque site Web ne peut excéder 20. 4) Les cookies sont stockés côté client. Si l'utilisateur désactive les cookies, setcookie ne fonctionnera pas. Ne comptez donc pas trop sur les cookies.

21. Lors de l'utilisation d'une session, qu'est-ce qui est utilisé pour représenter l'utilisateur actuel afin de le distinguer des autres utilisateurs ?

sessionid, le session_id actuel peut être obtenu via la fonction session_id().

22. Quelles sont les étapes pour utiliser la session et le cookie ? Quel est le cycle de vie de la session et du cookie ? Quelle est la différence entre une session et un cookie ?

1. Les cookies sont stockés sur la machine cliente. Pour les cookies sans délai d'expiration défini, la valeur du cookie sera stockée dans la mémoire de la machine tant que le navigateur est fermé. le cookie disparaîtra automatiquement. Si le délai d'expiration du cookie est défini, le navigateur enregistrera le cookie sur le disque dur sous la forme d'un fichier texte et la valeur du cookie sera toujours valide lors de la réouverture du navigateur.

2. La session consiste à enregistrer les informations que l'utilisateur doit stocker côté serveur. Les informations de session de chaque utilisateur sont stockées côté serveur comme une paire clé-valeur, où la clé est l'ID de session et la valeur est les informations que l'utilisateur doit stocker. Le serveur
utilise l'ID de session pour distinguer à quel utilisateur appartiennent les informations de session stockées. La plus grande différence entre les deux est que la session est stockée côté serveur, tandis que le cookie est côté client. La sécurité des sessions est plus élevée, tandis que la sécurité des cookies est faible.
3. La session joue un rôle très important dans le développement Web. Il peut enregistrer les informations de connexion correctes de l'utilisateur
dans la mémoire du serveur. Lorsque l'utilisateur accède à l'arrière-plan de gestion du site Web sous cette identité , l'utilisateur peut obtenir une confirmation d'identité sans. reconnectez-vous. Les utilisateurs qui ne se sont pas connectés correctement n'attribueront pas d'espace de session et ne pourront pas voir le contenu de la page même s'ils saisissent l'adresse d'accès de l'arrière-plan de gestion. L'autorisation de l'utilisateur d'utiliser la page est déterminée au cours de la session.

Étapes pour utiliser la session :

1. Démarrer la session : utilisez la fonction session_start() pour démarrer.

2. Enregistrez la session : ajoutez simplement des éléments directement au tableau $_SESSION.
3. Utiliser la session : Déterminez si la session est vide ou enregistrée. Si
existe déjà, utilisez-la comme un tableau ordinaire. 4. Supprimer une session :
1. Vous pouvez utiliser unset pour supprimer une seule session ;
2. array(), déconnectez toutes les variables de session à la fois
; 3. Utilisez la fonction session_destroy() pour détruire complètement la session.

Comment utiliser les cookies ?

1. Enregistrez certaines informations sur les visites des utilisateurs

2. Les variables de transmission entre les pages
3. dans des dossiers de cookies temporaires, qui peuvent
améliorer les vitesses de navigation futures.

创建 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输出中文页面时出现中文乱码的解决方案

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Articles Liés

Voir plus