企业🤖AI Agent构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
[TOC] ## 一些案例代码 `dd()`函数 ~~~  function dd($params)  {      echo "<pre>";   print_r($params);      echo "</pre>";  } ~~~ ~~~  <?php  /**   * Created By basic   * Author: Virus   * Date: 2020/5/24   * Time: 18:02   */  require 'func.php';  ​  $str1 = 'yabadabadoo';  $str2 = 'yaba';  ​  if (strpos($str1, $str2) !== false) {      echo $str1.'包含'.$str2."\n";  } else {      echo $str1.'不包含'.$str2.'\n';  }  ​  $x = true and false;  var_dump($x);  ​  dd($_SERVER['HTTP_USER_AGENT']);  ​  echo function_exists('print');  echo false;  // 空  ​  echo "<hr>";  ​  $a = true;  echo gettype($a);   // 输出该变量的类型  echo is_string($a); // 先判断是否是字符串,不是 => false ,echo false; 结果为空  ​  echo "<hr>";  ​  $_1 = 12;  $_2 = 012;  // 八进制的12  $_3 = 0x12; // 16进制的12  // 12 10 18 输出是都会转成十进制进行输出  echo $_1."\t", $_2."\t", $_3;  ​  echo "<hr>";  ​  /*  进制转换  12  00010010  0 => 0  16 + 2 = 18  ​  */  ​  // 字符串里面前面+时,取第一个数  echo 1 + 2 + "3 + 4 + 5"; // 6  ​  echo "<hr>";  ​  dd(chr(65) == 'A'); // 1 true  ​  echo ord('a');  // 97  ​  echo "<hr>";  ​  // 如果说有一个没有数组下标,那么它的下标就是它前面的下标中最大值+1  $arr1 = [1 => 5, 5 => 8, 22, 2 => '8', 81];  ​  /**   * 上述数组结构   * Array   * (   * [1] => 5   * [5] => 8   * [6] => 22   * [2] => 8   * [7] => 81   * )   */  ​  dd($arr1);  ​  echo "<hr>";  ​  echo 1 >> 0; // 001 => 1 往右移1位  echo 2 >> 1; // 010 => 001 => 1 往右移1位  echo 3 << 2; // 011 => 01100 => 1100 => 12 往左移动了2位  ​  echo "<hr>";  ​  // 当心面试题中第二个表达式没有美元符,则i永远为0,是死循环  for ($i = 0; $i < 10; $i++) {      print $i;  }  ​  echo "<hr>";  ​  function change()  {      static $i = 0;      $i++;            return $i;  }  ​  print change(); // 1  print change(); // 2  ​  echo "<hr>";  ​  // heredoc  $foo = 'test';  $bar = <<<EOT  $foo bar  EOT;  ​  echo $bar; // test bar  ​  ​  $array = ['1', '1'];  foreach ($array as $k => $v) {      $v = 2; // 不会改变数组      //   $array[$k] = 2; 会改变数组  }  ​  dd($array); ~~~ ## `crontab`定时任务语法 > 分 时 日 月 周 星期 执行的程序 > > 案例: 一个备份程序`mybackup`,需要在周一到周五下午1点和晚上8点运行,命令如下: ~~~  0 13,20 * * 1,2,3,4,5 mybackup  // 或者  0 13,20 * * 1-5 mybackup  ​  // 逗号是并且,-,是从什么到什么 ~~~ ## 字符串转化为数组的方法 `str_split`、`explode`、`preg_split` > 正则分割 ~~~  $str     = '2020-07_02';  // 正则分割  $str_arr = preg_split('/-|_/', $str);  dd($str_arr); ~~~ > `str_split`按长度分割 ~~~  $str3     = '123456789';  $str3_arr = str_split($str3, 3);  dd($str3_arr);  /*   * 格式如下  Array  (      [0] => 123      [1] => 456      [2] => 789  )  */ ~~~ > `explode`按照具体的某个东西进行分割 ~~~  $str4     = '1,2,3,4,5,6,7,8,9';  $str4_arr = explode(",", $str4);  dd($str4_arr); ~~~ ~~~  Array  (     [0] => 1     [1] => 2     [2] => 3     [3] => 4     [4] => 5     [5] => 6     [6] => 7     [7] => 8     [8] => 9  ) ~~~ ## 字符串替换函数 `str_replace`、`preg_replace` ~~~  $str5 = 'linux is very much and php';  // php is very much and php  echo str_replace('linux', 'php', $str5);  // js is very much and js  echo preg_replace('/linux|php/', 'js', $str5); ~~~ ## 字符串查找 `preg_mathc()`:正则匹配 `preg_match_all()`:正则匹配多个 `strpos()`: 第一个出现的位置 `strrpos()`:最后一个出现的位置 > 案例:将字符串`08/26/2003`替换为`2003-08-26` ~~~  $str6    = '08/26/2003';  $pattern = '/(\d+)\/(\d+)\/(\d+)/';  $rep     = '$3-$1-$2';  $str6    = preg_replace($pattern, $rep, $str6);  dd($str6); ~~~ ## SQL语句 案例1:从表`login`中选出`name`字段包含`admin`的前10条结果所有信息的sql语句 ~~~  select * from login where name like "%admin%" limit 10; ~~~ **左连接** `left...join..on` > 左连接是以左边的表为主导,先输出左边的表的所有数据,右边匹配输出 ,不匹配的为`null` **右连接** `right...join...on` > 右连接是以右边的表为主导,先输出右边的表的所有数据,左边匹配输出 ,不匹配的为`null` **内连接** `inner...join...on` > 内连接必须同时符合左右表条件的内容才会输出,相等于普通多表查询 **索引** > 索引可以极大的提高表的查询速度,是数据库中最为重要的优化手段,索引最主要的作用就是降低扫描行数,常用索引分为三种:主键索引、唯一索引和普通索引 ## 高效的从一个标准的`url`里取出文件的扩展名 ~~~  $url  = "http:www.lanp.com/web/index.php?id=10";  $arr2 = parse_url($url);  $arr3 = pathinfo($arr2['path']);  $ext  = $arr2['extension']; ~~~ **$arr2** ~~~  Array  (     [scheme] => http     [path] => www.lanp.com/web/index.php     [query] => id=10  ) ~~~ ## 描述下大流量高并发网站的解决方案 1. 服务器负载均衡(多增加几台服务器同时对客户提供网站服务) 2. `web`服务器用`nginx`替换`apache`(把其中的并发数调到最高) 3. 页面静态化 4. 数据缓存(`memcache,redis,tp文件缓存`) 5. 表索引 6. 数据库实现主从复制,读写分离 7. 减少客户在服务器上的连接断开时间 8. 代码优化