Maison php教程 php手册 php技巧篇:高质量php代码的50个实用技巧(下)

php技巧篇:高质量php代码的50个实用技巧(下)

Mar 19, 2017 am 10:09 AM
php代码 Compétences pratiques PHP

这篇文章主要为大家分享了50个高质量PHP代码的实用技巧,大家必备的php实用代码,感兴趣的小伙伴们可以参考一下

接着上篇《高质量PHP代码的50个实用技巧必备(上)》继续研究。

26. 避免直接写SQL, 抽象之
不厌其烦的写了太多如下的语句: 

<span style="color:#333333;font-family:&#39;&#39;Helvetica, Arial, sans-serif&#39;&#39;;">$query = "INSERT INTO users(name , email , address , phone) VALUES(&#39;$name&#39; , &#39;$email&#39; , &#39;$address&#39; , &#39;$phone&#39;)";
 $db->query($query); //call to mysqli_query()</span>
Copier après la connexion

这不是个建壮的方案. 它有些缺点:

  • >>每次都手动转义值

  • >>验证查询是否正确

  • >>查询的错误会花很长时间识别(除非每次都用if-else检查)

  • >>很难维护复杂的查询

因此使用函数封装:


<span style="color:#333333;font-family:&#39;&#39;Helvetica, Arial, sans-serif&#39;&#39;;">function insert_record($table_name , $data)
 {
 foreach($data as $key => $value)
 {
 //mysqli_real_escape_string
 $data[$key] = $db->mres($value);
 }
 $fields = implode(&#39;,&#39; , array_keys($data));
 $values = "&#39;" . implode("&#39;,&#39;" , array_values($data)) . "&#39;";
 //Final query
 $query = "INSERT INTO {$table}($fields) VALUES($values)";
 return $db->query($query);
}
 $data = array(&#39;name&#39; => $name , &#39;email&#39; => $email , &#39;address&#39; => $address , &#39;phone&#39; => $phone);
 insert_record(&#39;users&#39; , $data);</span>
Copier après la connexion

看到了吗? 这样会更易读和扩展. record_data 函数小心的处理了转义。最大的优点是数据被预处理为一个数组, 任何语法错误都会被捕获。该函数应该定义在某个database类中, 你可以像 $db->insert_record这样调用。查看本文, 看看怎样让你处理数据库更容易。类似的也可以编写update,select,delete方法. 试试吧.

27. 將数据库生成的内容缓存到静态文件中
如果所有的内容都是从数据库获取的, 它们应该被缓存. 一旦生成了, 就將它们保存在临时文件中. 下次请求该页面时, 可直接从缓存中取, 不用再查数据库.
好处:
>>节约php处理页面的时间, 执行更快
>>更少的数据库查询意味着更少的mysql连接开销

28. 在数据库中保存session
基于文件的session策略会有很多限制. 使用基于文件的session不能扩展到集群中, 因为session保存在单个服务器中. 但数据库可被多个服务器访问, 这样就可以解决问题.
在数据库中保存session数据, 还有更多好处:
>>处理username重复登录问题. 同个username不能在两个地方同时登录.
>>能更准备的查询在线用户状态.

29. 避免使用全局变量

  • >>使用 defines/constants

  • >>使用函数获取值

  • >>使用类并通过$this访问

30. 在head中使用base标签
没听说过? 请看下面:


<head>
 <base href="http://www.domain.com/store/">
 </head>
 <body>
 <img src="happy.jpg" />
 </body>
 </html>
Copier après la connexion

base 标签非常有用. 假设你的应用分成几个子目录, 它们都要包括相同的导航菜单.

  • www.domain.com/store/home.php

  • www.domain.com/store/products/ipad.php

在首页中, 可以写:


<a href="home.php">Home</a>
<a href="products/ipad.php">Ipad</a>
Copier après la connexion

但在你的ipad.php不得不写成:


<span style="color:#333333;font-family:&#39;&#39;Helvetica, Arial, sans-serif&#39;&#39;;"><a href="../home.php">Home</a>
 <a href="ipad.php">Ipad</a></span>
Copier après la connexion

因为目录不一样. 有这么多不同版本的导航菜单要维护, 很糟糕啊。因此, 请使用base标签.


<span style="color:#333333;font-family:&#39;&#39;Helvetica, Arial, sans-serif&#39;&#39;;"><head>
 <base href="http://www.domain.com/store/">
 </head>
 <body>
 <a href="home.php">Home</a>
 <a href="products/ipad.php">Ipad</a>
 </body>
 </html></span>
Copier après la connexion

现在, 这段代码放在应用的各个目录文件中行为都一致.

31. 永远不要將 error_reporting 设为 0
关闭不相的错误报告. E_FATAL 错误是很重要的.


<span style="color:#333333;font-family:&#39;Helvetica, Arial, sans-serif&#39;;">ini_set(&#39;display_errors&#39;, 1);
 error_reporting(~E_WARNING & ~E_NOTICE & ~E_STRICT);</span>
Copier après la connexion

32. 注意平台体系结构
integer在32位和64位体系结构中长度是不同的. 因此某些函数如 strtotime 的行为会不同.
在64位的机器中, 你会看到如下的输出.


<span style="color:#333333;font-family:&#39;&#39;Helvetica, Arial, sans-serif&#39;&#39;;">$ php -a 
 Interactive shell 
 php > echo strtotime("0000-00-00 00:00:00"); 
 -62170005200 
 php > echo strtotime(&#39;1000-01-30&#39;); 
 -30607739600 
 php > echo strtotime(&#39;2100-01-30&#39;); 
 4104930600</span>
Copier après la connexion

但在32位机器中, 它们將是bool(false). 查看这里, 了解更多.

33. 不要过分依赖 set_time_limit
如果你想限制最小时间, 可以使用下面的脚本:


<span style="color:#333333;font-family:&#39;&#39;Helvetica, Arial, sans-serif&#39;&#39;;">set_time_limit(30);
 //Rest of the code</span>
Copier après la connexion

高枕无忧吗? 注意任何外部的执行, 如系统调用,socket操作, 数据库操作等, 就不在set_time_limits的控制之下.
因此, 就算数据库花费了很多时间查询, 脚本也不会停止执行. 视情况而定.

34. 使用扩展库
一些例子:

  • >>mPDF — 能通过html生成pdf文档

  • >>PHPExcel — 读写excel

  • >>PhpMailer — 轻松处理发送包含附近的邮件

  • >>pChart — 使用php生成报表

使用开源库完成复杂任务, 如生成pdf, ms-excel文件, 报表等.

35. 使用MVC框架
是时候使用像 codeigniter 这样的MVC框架了. MVC框架并不强迫你写面向对象的代码. 它们仅將php代码与html分离.

  • >>明确区分php和html代码. 在团队协作中有好处, 设计师和程序员可以同时工作.

  • >>面向对象设计的函数能让你更容易维护

  • >>内建函数完成了很多工作, 你不需要重复编写

  • >>开发大的应用是必须的

  • >>很多建议, 技巧和hack已被框架实现了

36. 时常看看 phpbench
phpbench 提供了些php基本操作的基准测试结果, 它展示了一些徽小的语法变化是怎样导致巨大差异的.
查看php站点的评论, 有问题到IRC提问, 时常阅读开源代码, 使用Linux开发.

37. 如何正确的创建一个网站的Index页面
创建每一个网站时,建立网站的index页面是首要做的事情之一。如果你是一个PHP新手,在编写index页面时典型的做法是只对index页面所需的内容进行编程,其它链接创建另一个页面。不过,如果想学习一种更高效的方式来实现PHP编程,可以采用“index.php?page=home”模式,许多网站都在采用这种模式。

38. 使用Request Global Array抓取数据
实际上我们没有任何理由使用$_GET和$_POST数组来抓取数值。$_REQUEST这个全局数组能够让你获取一个get或form请求。因此,多数情况下解析数据的更高效代码大体如下:


$action = isset($_REQUEST[&#39;action&#39;]) ? $_REQUEST[&#39;action&#39;] : 0;
Copier après la connexion

39. 利用var_dump进行PHP代码调试
如果你在寻找php调试技术,我必须说var_dump应该是你要找的目标。在显示php信息方面这个命令可以满足你的所有需要。而调试代码的多数情况与得到PHP中的数值有关。

40. PHP处理代码逻辑,Smarty处理展现层
Smarty是一个使用PHP写出来的模板PHP模板引擎,是目前业界最著名的PHP模板引擎之一。它分离了逻辑代码和外在的内容,提供了一种易于管理和使用的方法,用来将原本与HTML代码混杂在一起PHP代码逻辑分离。简单的讲,目的就是要使PHP程序员同前端人员分离,使程序员改变程序的逻辑内容不会影响到前端人员的页面设计,前端人员重新修改页面不会影响到程序的程序逻辑,这在多人合作的项目中显的尤为重要。

41. 的确需要使用全局数值时,创建一个Config文件
动辄创建全局数值是一种糟糕的做法,不过有时候实际情况的确又需要这么做。对于数据库表或数据库连接信息使用全局数值是一个不错的想法,但不要在你的PHP代码中频繁使用全局数值。另外,更好的一种做法是把你的全局变量存放在一个config.php文件中。

42. 如果未定义,禁止访问!
如果你正确的创建了页面,那么任何其他人没有理由访问index.php或home.php之外的index.php页面。一旦index.php被访问后,你可以通过获得变量的方式来打开需要的页面。你的index页面应该包含类似的以下代码:


define(&#39;yourPage&#39;,1);
Copier après la connexion

然后,其它页面应该包含:


if (!defined(&#39;yourPage&#39;)) die(&#39;Access Denied&#39;);
Copier après la connexion

这么做的目的是防止直接访问你的其它php页面。这样,任何试图不通过index.php访问其它网页的人,将得到“访问被拒绝”的消息。

43. 创建一个数据库类
如果你正在进行数据库编程(在PHP中非常常见的任务),一个不错的想法是创建一个数据库类来处理任何数据库管理功能。示例代码如下:


public function dbExec($query)  
    
 {  
    
   $result = $this->db->exec($query);  
    
   if (PEAR::isError($result))  
    
     errorRedirect($result->getMessage(), true);  
    
   else 
    
     return $result;  
    
 }
Copier après la connexion

这个函数仅接收一个查询语句并对其执行。它还处理可能出现的任何错误。你还可以在这儿包含审核代码,不过我更喜欢使用一个类似的审核函数:


// checks if arguments given are integer values not less than 0 - has multiple arguments  
    
 function sanitizeInput()  
    
 {  
    
   $numargs = func_num_args();  
    
   $arg_list = func_get_args();  
    
   for ($i = 0; $i < $numargs; $i++) {  
    
     if (!is_numeric($arg_list[$i]) || $arg_list[$i] < 0)  
    
       errorRedirect("Unexpected variable value", true);  
    
   }  
    
 }
Copier après la connexion

44. 一个php文件处理输入,一个class.php文件处理具体功能
不让代码变得混乱的一个重要方法是:获取用户输入后,将其重定向到其它函数来进行处理。原理非常简单,php文件获得我们需要的任何输入,然后将其执行重定向到类文件中的一个函数。举例来讲,假设有一个类似“index.php?page=profile&action=display”的URL。由profile.php来检索该网址并得到操作是“display”。然后使用一个简单的switch函数,我们来执行真正的显示函数:


require_once PROJECTROOT.&#39;libs/messages.class.php&#39;;  
    
$message = new Message();  
    
switch ($action) 
    
{ 
    
  case &#39;display&#39;: 
    
    $message->display(); 
    
    break;  
    
...
Copier après la connexion

如上所示,我使用了一个消息类,然后开始进行switch检查。$message只是被类中的调用函数使用的一个对象。

45. 了解你的SQL语句,并总是对其审查(Sanitize)
正如我以前所提到的,任何php网站中最重要的部分有99%的可能是数据库。因此,你需要非常熟悉如何正确的使用sql。学会关联表和更多高级技术。下面我将展示一个使用MySQL的函数示例,并使用本文第7条函数进行审查。


private function getSentMessages($id)  
    
 {  
    
$this->util->sanitizeInput($id);  
    
  $pm_table = $GLOBALS[&#39;config&#39;][&#39;privateMsg&#39;];  
    
 $users = $GLOBALS[&#39;config&#39;][&#39;users&#39;];  
    
   $sql = "SELECT PM.*, USR.username as name_sender FROM $pm_table PM, $users USR  
    
     WHERE id_sender = &#39;$id&#39; AND sender_purge = FALSE AND USR.id = PM.id_receiver AND is_read = TRUE  
    
     ORDER BY date_sent DESC";  
    
 $result = $this->dbQueryAll($sql);  
    
  return $result;  
    
 }
Copier après la connexion

首先,我们对用户输入进行检查(通过一个GET变量传递消息id),然后我们执行我们的SQL命令。注意这儿SQL的用法。你需要了解如何使用别名和关联表。

46. 当你只需要一个对象时,使用单例模式
在PHP中相当常见的一种情形时,我们只需要创建一个对象一次,然后在我们的整个程序中使用它。一个很好的例子就是smarty变量,一旦被初始化后就可以在任何地方使用。这种情形的一个很好实现方案就是单例模式。示例代码如下:


function smartyObject()  
    
 {  
    
   if ($GLOBALS[&#39;config&#39;][&#39;SmartyObj&#39;] == 0)  
    
   {  
    
     $smarty = new SmartyGame();  
    
     $GLOBALS[&#39;config&#39;][&#39;SmartyObj&#39;] = $smarty;  
    
   }  
    
   else 
    
     $smarty = $GLOBALS[&#39;config&#39;][&#39;SmartyObj&#39;];  
    
   return $smarty;  
    
 }
Copier après la connexion

注意,我们拥有一个全局smarty变量(该示例中它在config.php中被初始化),如果它的值为0,我们将创建一个新smarty对象。否则,它意味着该对象已经被创建,我们只需要返回它。

47. 关于PHP重定向
方法一:header("Location:index.php");
方法二:echo"<script>window.location=\"$PHP_SELF\";</script>";
方法三:echo"";

48. 获取访问者浏览器


functionbrowse_infor()
{
$browser="";$browserver="";
$Browsers=array("Lynx","MOSAIC","AOL","Opera","JAVA","MacWeb","WebExplorer","OmniWeb");
$Agent=$GLOBALS["HTTP_USER_AGENT"];
for($i=0;$i<=7;$i++)
{
if(strpos($Agent,$Browsers[$i]))
{
$browser=$Browsers[$i];
$browserver="";
}
}
if(ereg("Mozilla",$Agent)&&!ereg("MSIE",$Agent))
{
$temp=explode("(",$Agent);$Part=$temp[0];
$temp=explode("/",$Part);$browserver=$temp[1];
$temp=explode("",$browserver);$browserver=$temp[0];
$browserver=preg_replace("/([\d\.]+)/","\1",$browserver);
$browserver="$browserver";
$browser="NetscapeNavigator";
}
if(ereg("Mozilla",$Agent)&&ereg("Opera",$Agent))
{
$temp=explode("(",$Agent);$Part=$temp[1];
$temp=explode(")",$Part);$browserver=$temp[1];
$temp=explode("",$browserver);$browserver=$temp[2];
$browserver=preg_replace("/([\d\.]+)/","\1",$browserver);
$browserver="$browserver";
$browser="Opera";
}
if(ereg("Mozilla",$Agent)&&ereg("MSIE",$Agent))
{
$temp=explode("(",$Agent);$Part=$temp[1];
$temp=explode(";",$Part);$Part=$temp[1];
$temp=explode("",$Part);$browserver=$temp[2];
$browserver=preg_replace("/([\d\.]+)/","\1",$browserver);
$browserver="$browserver";
$browser="InternetExplorer";
}
if($browser!="")
{
$browseinfo="$browser$browserver";
}
else
{
$browseinfo="Unknown";
}
return$browseinfo;
}
//调用方法$browser=browseinfo();直接返回结果
Copier après la connexion

49.获取访问者操作系统


functionosinfo(){
$os="";
$Agent=$GLOBALS["HTTP_USER_AGENT"];
if(eregi(&#39;win&#39;,$Agent)&&strpos($Agent,&#39;95&#39;)){
$os="Windows95";
}
elseif(eregi(&#39;win9x&#39;,$Agent)&&strpos($Agent,&#39;4.90&#39;)){
$os="WindowsME";
}
elseif(eregi(&#39;win&#39;,$Agent)&&ereg(&#39;98&#39;,$Agent)){
$os="Windows98";
}
elseif(eregi(&#39;win&#39;,$Agent)&&eregi(&#39;nt5\.0&#39;,$Agent)){
$os="Windows2000";
}
elseif(eregi(&#39;win&#39;,$Agent)&&eregi(&#39;nt&#39;,$Agent)){
$os="WindowsNT";
}
elseif(eregi(&#39;win&#39;,$Agent)&&eregi(&#39;nt5\.1&#39;,$Agent)){
$os="WindowsXP";
}
elseif(eregi(&#39;win&#39;,$Agent)&&ereg(&#39;32&#39;,$Agent)){
$os="Windows32";
}
elseif(eregi(&#39;linux&#39;,$Agent)){
$os="Linux";
}
elseif(eregi(&#39;unix&#39;,$Agent)){
$os="Unix";
}
elseif(eregi(&#39;sun&#39;,$Agent)&&eregi(&#39;os&#39;,$Agent)){
$os="SunOS";
}
elseif(eregi(&#39;ibm&#39;,$Agent)&&eregi(&#39;os&#39;,$Agent)){
$os="IBMOS/2";
}
elseif(eregi(&#39;Mac&#39;,$Agent)&&eregi(&#39;PC&#39;,$Agent)){
$os="Macintosh";
}
elseif(eregi(&#39;PowerPC&#39;,$Agent)){
$os="PowerPC";
}
elseif(eregi(&#39;AIX&#39;,$Agent)){
$os="AIX";
}
elseif(eregi(&#39;HPUX&#39;,$Agent)){
$os="HPUX";
}
elseif(eregi(&#39;NetBSD&#39;,$Agent)){
$os="NetBSD";
}
elseif(eregi(&#39;BSD&#39;,$Agent)){
$os="BSD";
}
elseif(ereg(&#39;OSF1&#39;,$Agent)){
$os="OSF1";
}
elseif(ereg(&#39;IRIX&#39;,$Agent)){
$os="IRIX";
}
elseif(eregi(&#39;FreeBSD&#39;,$Agent)){
$os="FreeBSD";
}
if($os==&#39;&#39;)$os="Unknown";
return$os;
}
//调用方法$os=os_infor();
Copier après la connexion

50. 文件格式类


$mime_types=array(
&#39;gif&#39;=>&#39;image/gif&#39;,
&#39;jpg&#39;=>&#39;image/jpeg&#39;,
&#39;jpeg&#39;=>&#39;image/jpeg&#39;,
&#39;jpe&#39;=>&#39;image/jpeg&#39;,
&#39;bmp&#39;=>&#39;image/bmp&#39;,
&#39;png&#39;=>&#39;image/png&#39;,
&#39;tif&#39;=>&#39;image/tiff&#39;,
&#39;tiff&#39;=>&#39;image/tiff&#39;,
&#39;pict&#39;=>&#39;image/x-pict&#39;,
&#39;pic&#39;=>&#39;image/x-pict&#39;,
&#39;pct&#39;=>&#39;image/x-pict&#39;,
&#39;tif&#39;=>&#39;image/tiff&#39;,
&#39;tiff&#39;=>&#39;image/tiff&#39;,
&#39;psd&#39;=>&#39;image/x-photoshop&#39;,
  
&#39;swf&#39;=>&#39;application/x-shockwave-flash&#39;,
&#39;js&#39;=>&#39;application/x-javascript&#39;,
&#39;pdf&#39;=>&#39;application/pdf&#39;,
&#39;ps&#39;=>&#39;application/postscript&#39;,
&#39;eps&#39;=>&#39;application/postscript&#39;,
&#39;ai&#39;=>&#39;application/postscript&#39;,
&#39;wmf&#39;=>&#39;application/x-msmetafile&#39;,
  
&#39;css&#39;=>&#39;text/css&#39;,
&#39;htm&#39;=>&#39;text/html&#39;,
&#39;html&#39;=>&#39;text/html&#39;,
&#39;txt&#39;=>&#39;text/plain&#39;,
&#39;xml&#39;=>&#39;text/xml&#39;,
&#39;wml&#39;=>&#39;text/wml&#39;,
&#39;wbmp&#39;=>&#39;image/vnd.wap.wbmp&#39;,
  
&#39;mid&#39;=>&#39;audio/midi&#39;,
&#39;wav&#39;=>&#39;audio/wav&#39;,
&#39;mp3&#39;=>&#39;audio/mpeg&#39;,
&#39;mp2&#39;=>&#39;audio/mpeg&#39;,
  
&#39;avi&#39;=>&#39;video/x-msvideo&#39;,
&#39;mpeg&#39;=>&#39;video/mpeg&#39;,
&#39;mpg&#39;=>&#39;video/mpeg&#39;,
&#39;qt&#39;=>&#39;video/quicktime&#39;,
&#39;mov&#39;=>&#39;video/quicktime&#39;,
  
&#39;lha&#39;=>&#39;application/x-lha&#39;,
&#39;lzh&#39;=>&#39;application/x-lha&#39;,
&#39;z&#39;=>&#39;application/x-compress&#39;,
&#39;gtar&#39;=>&#39;application/x-gtar&#39;,
&#39;gz&#39;=>&#39;application/x-gzip&#39;,
&#39;gzip&#39;=>&#39;application/x-gzip&#39;,
&#39;tgz&#39;=>&#39;application/x-gzip&#39;,
&#39;tar&#39;=>&#39;application/x-tar&#39;,
&#39;bz2&#39;=>&#39;application/bzip2&#39;,
&#39;zip&#39;=>&#39;application/zip&#39;,
&#39;arj&#39;=>&#39;application/x-arj&#39;,
&#39;rar&#39;=>&#39;application/x-rar-compressed&#39;,
  
&#39;hqx&#39;=>&#39;application/mac-binhex40&#39;,
&#39;sit&#39;=>&#39;application/x-stuffit&#39;,
&#39;bin&#39;=>&#39;application/x-macbinary&#39;,
  
&#39;uu&#39;=>&#39;text/x-uuencode&#39;,
&#39;uue&#39;=>&#39;text/x-uuencode&#39;,
  
&#39;latex&#39;=>&#39;application/x-latex&#39;,
&#39;ltx&#39;=>&#39;application/x-latex&#39;,
&#39;tcl&#39;=>&#39;application/x-tcl&#39;,
  
&#39;pgp&#39;=>&#39;application/pgp&#39;,
&#39;asc&#39;=>&#39;application/pgp&#39;,
&#39;exe&#39;=>&#39;application/x-msdownload&#39;,
&#39;doc&#39;=>&#39;application/msword&#39;,
&#39;rtf&#39;=>&#39;application/rtf&#39;,
&#39;xls&#39;=>&#39;application/vnd.ms-excel&#39;,
&#39;ppt&#39;=>&#39;application/vnd.ms-powerpoint&#39;,
&#39;mdb&#39;=>&#39;application/x-msaccess&#39;,
&#39;wri&#39;=>&#39;application/x-mswrite&#39;,
);
5、php生成excel文档
<?
header("Content-type:application/vnd.ms-excel");
header("Content-Disposition:filename=test.xls");
echo"test1\t";
echo"test2\t\n";
echo"test1\t";
echo"test2\t\n";
echo"test1\t";
echo"test2\t\n";
echo"test1\t";
echo"test2\t\n";
echo"test1\t";
echo"test2\t\n";
echo"test1\t";
echo"test2\t\n";
?>

//改动相应文件头就可以输出.doc.xls等文件格式了
Copier après la connexion

以上就是本文的全部内容,大家结合前一篇进行深入学习,一定会有所收获。

Déclaration de ce site Web
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

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Comment déverrouiller tout dans Myrise
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Comment utiliser des expressions régulières pour modifier par lots du code PHP afin de répondre aux dernières spécifications de code ? Comment utiliser des expressions régulières pour modifier par lots du code PHP afin de répondre aux dernières spécifications de code ? Sep 05, 2023 pm 03:57 PM

Comment utiliser des expressions régulières pour modifier par lots du code PHP afin de répondre aux dernières spécifications de code ? Introduction : Au fil du temps et de l'évolution de la technologie, les spécifications du code sont constamment mises à jour et améliorées. Au cours du processus de développement, nous devons souvent modifier l’ancien code pour le rendre conforme aux dernières spécifications du code. Cependant, la modification manuelle peut être une tâche fastidieuse et chronophage. Dans ce cas, les expressions régulières peuvent être un outil puissant. À l'aide d'expressions régulières, nous pouvons modifier le code par lots et répondre automatiquement aux dernières spécifications du code. 1. Préparation : avant utilisation

Comment utiliser la fonction de test de code PHP pour améliorer la maintenabilité du code Comment utiliser la fonction de test de code PHP pour améliorer la maintenabilité du code Aug 11, 2023 pm 12:43 PM

Comment utiliser la fonction de test de code PHP pour améliorer la maintenabilité du code. Dans le processus de développement logiciel, la maintenabilité du code est un aspect très important. Un code maintenable signifie qu’il est facile à comprendre, facile à modifier et facile à maintenir. Les tests sont un moyen très efficace d’améliorer la maintenabilité du code. Cet article expliquera comment utiliser la fonction de test de code PHP pour atteindre cet objectif et fournira des exemples de code pertinents. Tests unitaires Les tests unitaires sont une méthode de test couramment utilisée dans le développement de logiciels pour vérifier la plus petite unité testable dans le code. en P

Comment écrire du code PHP dans le navigateur et empêcher l'exécution du code ? Comment écrire du code PHP dans le navigateur et empêcher l'exécution du code ? Mar 10, 2024 pm 02:27 PM

Comment écrire du code PHP dans le navigateur et empêcher l’exécution du code ? Avec la popularisation d'Internet, de plus en plus de personnes ont commencé à entrer en contact avec le développement Web, et l'apprentissage de PHP a également attiré de plus en plus d'attention. PHP est un langage de script qui s'exécute côté serveur et est souvent utilisé pour écrire des pages Web dynamiques. Cependant, pendant la phase d'exercice, nous voulons pouvoir écrire du code PHP dans le navigateur et voir les résultats, mais nous ne voulons pas que le code soit exécuté. Alors, comment écrire du code PHP dans le navigateur et l’empêcher d’être exécuté ? Ceci sera décrit en détail ci-dessous. d'abord,

Le code PHP implémente le traitement de cryptage et de déchiffrement des paramètres de demande de l'interface API Baidu Wenxinyiyan Le code PHP implémente le traitement de cryptage et de déchiffrement des paramètres de demande de l'interface API Baidu Wenxinyiyan Aug 16, 2023 pm 11:40 PM

Le code PHP implémente le traitement de cryptage et de déchiffrement des paramètres de demande de l'interface API Baidu Wenxin Yiyan. Hitokoto est un service qui donne accès à l'API Baidu Wenxin Yiyan. Afin de garantir la sécurité des données, nous pouvons crypter les paramètres de la demande et décrypter la réponse après réception de la réponse. Ce qui suit est un exemple de code PHP implémentant le traitement de chiffrement et de déchiffrement des paramètres de requête de l'interface API Baidu Wenxinyiyan : &lt;?phpfunction

Comment vérifier automatiquement si le code PHP est conforme aux dernières spécifications du code ? Comment vérifier automatiquement si le code PHP est conforme aux dernières spécifications du code ? Sep 06, 2023 pm 12:33 PM

Comment utiliser des outils pour vérifier automatiquement si le code PHP est conforme aux dernières normes de codage ? Introduction : Dans le processus de développement logiciel, nous devons souvent suivre certaines spécifications du code pour garantir la lisibilité, la maintenabilité et l'évolutivité du code. Cependant, vérifier manuellement les spécifications du code est une tâche fastidieuse et sujette aux erreurs. Afin d'améliorer l'efficacité et de réduire les erreurs, nous pouvons utiliser certains outils pour vérifier automatiquement les spécifications du code. Dans cet article, je vais vous présenter comment utiliser certains outils populaires pour vérifier automatiquement si le code PHP est conforme aux dernières normes de codage. 1. PH

Analyser la fonction de test du code PHP et son importance Analyser la fonction de test du code PHP et son importance Aug 11, 2023 pm 03:12 PM

Analyser la fonction de test de code PHP et son importance Préface : Dans le processus de développement logiciel, le test de code est un maillon indispensable. En testant le code, les bogues et erreurs potentiels peuvent être découverts et résolus efficacement, et la qualité et la stabilité du code peuvent être améliorées. Dans le développement PHP, tester les fonctions est également important. Cet article approfondira la fonction et l'importance des tests de code PHP et l'illustrera avec des exemples. 1. Tests unitaires fonctionnels (UnitTesting) des tests de code PHP Les tests unitaires sont la méthode de test la plus courante

Technologie d'analyse statique du code PHP et de détection des vulnérabilités Technologie d'analyse statique du code PHP et de détection des vulnérabilités Aug 07, 2023 pm 05:21 PM

Introduction à la technologie d'analyse statique du code PHP et de détection des vulnérabilités : Avec le développement d'Internet, PHP, en tant que langage de script côté serveur très populaire, est largement utilisé dans le développement de sites Web et la génération de pages Web dynamiques. Cependant, en raison de la nature flexible et non standardisée de la syntaxe PHP, des failles de sécurité sont facilement introduites au cours du processus de développement. Afin de résoudre ce problème, une technologie d’analyse statique du code PHP et de détection de vulnérabilités a vu le jour. 1. Technologie d'analyse statique La technologie d'analyse statique fait référence à l'analyse du code source et à l'utilisation de règles statiques pour identifier les problèmes de sécurité potentiels avant l'exécution du code.

Erreurs de débogage et comportement inattendu dans le code PHP Erreurs de débogage et comportement inattendu dans le code PHP Aug 12, 2023 pm 04:49 PM

Titre : Débogage du code PHP : erreurs d'analyse et comportements inattendus Introduction : Le débogage est une compétence importante lors du développement d'applications PHP. Lorsque notre code signale des erreurs ou un comportement inattendu, nous devons rapidement localiser le problème et le résoudre. Cet article explorera certaines erreurs PHP courantes et comportements inattendus, et donnera des exemples de code et des méthodes de débogage correspondants. 1. Erreurs grammaticales Les erreurs grammaticales sont l’une des erreurs les plus courantes. En PHP, les erreurs de syntaxe peuvent empêcher l’exécution correcte de l’ensemble du script. Voici un exemple de code : &lt;?php

See all articles