• php 的一些问题


    ------------------------------------------------------------------------------
    * 绝对路径转化为相对路径
    <?php
    /**
     * $path相对于$base的相对路径
     * @param string $base
     * @param string $path
     */
    function abs2rel(string $base, string $path) {
        if (is_dir($base)) {
            $base = rtrim($base, DIRECTORY_SEPARATOR) . DIRECTORY_SEPARATOR . ".";
        }
    
        $a = explode(DIRECTORY_SEPARATOR, $base);
        $b = explode(DIRECTORY_SEPARATOR, $path);
     
        $d = [];   // $path push
        $i = count($a)-1;
     
        $sliceEquals = function($a, $b, $j) {
            if ($j >= count($a) || $j >= count($b)) {
                throw new Exception('$j out of range');
            }
            for ($i = $j; $i >= 0; $i--) {
                if (strcmp($b[$i], $a[$i])!==0) {
                    return false;
                }
            }
            return true;
        };
        // 找到a,b数组元素相同的下标
        while (array_pop($a)) {
            $i = count($a)-1;
            if (isset($b[$i])) {
                if ($sliceEquals($a, $b, $i)) {
                    break;
                }
            }
            array_push($d, "..");
        }
        // 从首个不同元素开始
        for ($i+=1; $i < count($b); $i++) {
            array_push($d, $b[$i]);
        }
        return ".".DIRECTORY_SEPARATOR.implode(DIRECTORY_SEPARATOR, $d);
    }
    

      


    * 联合索引哪些有效
    * 链表逆顺序 包含头节点
    * 数组合并哪几种方式 
    ------------------------------------------------------------------------------

    1. 负载均衡    [TO BE DONE]

        https://blog.csdn.net/qq_28602957/article/details/61615876

    2. 索引的建立 和查询 以及索引场景建立

    3. thinkphp的路由    [ONGOING]

       https://www.kancloud.cn/manual/thinkphp5/118030

       ./application/route.php

    4.PHP中一些常用的spl函数   [TO BE DONE]

       http://php.net/manual/en/book.spl.php

    5.mysql的主从分离 对id进行hash 理解hash

    6.linux的一些常用命令 熟悉linux  [DONE]

    7. 递归 n!   [DONE]

    8. php单例模式

    9. mysql 分表

    10. CAS认证, ucenter认证

      

    ---------------------------------------------爬虫相关的问题---------------------------------------------------

    * php程序发送http请求

    - curl

    $ch = curl_init();
    
    curl_setopt_array($ch, [
        CURLOPT_URL => 'https://www.baidu.com',
        CURLOPT_HEADER => 1,
        CURLOPT_RETURNTRANSFER => 1
    ]);
    
    $data = curl_exec($ch);
    curl_close($ch);
    
    echo $data.PHP_EOL;
    

    -socket


    * mysql存储引擎 myisam / innodb  select count(*) ... 用哪个存储引擎快

      MyISAM会保存表的总行数,select count(*)在MyISAM存储引擎中执行,MyISAM只要简单地读出保存好的行数即可。

      InnoDB存储引擎不会保存表的具体行数,因此,在InnoDB存储引擎中执行这段代码,InnoDB要扫描一遍整个表来计算有多少行。

    * mysql 函数pconnect/connect

      mysql_pconnect — Open a persistent connection to a MySQL server


    * linux shell 定时器 脚本

      crontab


    * 投票限制 每人每分钟3次,每人每小时10次; 每个IP每分钟30次,每天100次


    * 爬虫架构


    * php实现一个跨请求的队列 (redis?)


    * 上传文件安全限制

    * "Hello world Blog Control" 字符串按空格分隔,分成数组,全部转化为小写,按字母顺序排

      (php sort 和javascript的sort方法不同 不传回调用SORT_STRING )

    <?php
    class TestArrayObject {
      private $s = "";
       
      public function __construct($s) {
        $this->s = $s;
      }
       
      public function run() {
         
        $ao = new ArrayObject(array_map(function($word) {
          return strtolower($word);
        }, explode(' ', $this->s)));
         
        $ao->uasort(function($a, $b) {
          return strcmp($a, $b);
        });
     
        return $ao->getArrayCopy();
      }
       
    }
     
    $o = new TestArrayObject("Hello world Blog Controll Hola Hi Shalom");
    $a = $o->run();
    var_dump($a);
    TestArrayObject.php  

      

    ---------------------------------------------/爬虫相关的问题---------------------------------------------------

  • 相关阅读:
    js练习题2
    js样式
    js小练习
    css动画样式
    css盒子、布局样式
    css一般样式
    css样式、选择器
    html表格、表单
    html 标签
    mysql连接查询,子查询,联合查询
  • 原文地址:https://www.cnblogs.com/mingzhanghui/p/9273874.html
Copyright © 2020-2023  润新知