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
---------------------------------------------/爬虫相关的问题---------------------------------------------------
随机推荐
- SSM整合(Maven工程)
SSM整合(Maven工程) 一.概述 SSM(Spring+SpringMVC+MyBatis)框架集由Spring.MyBatis两个开源框架整合而成(SpringMVC是Spring中的部分内容 ...
- Semaphore 的使用
var workerSemphore = new Semaphore(0, 800000); var IsWorkThreadCreated = true; var workThread = new ...
- numpy、pandas、scipy、matplotlib、jieba、 openpyxl、pillow的安装
cmd环境下进入python安装包里的Script文件夹 安装numpy 安装pandas 安装scipy 安装matplotlib 安装jieba(应该是之前装的库安装依赖时下载了) 安装openp ...
- 深入Pulsar Consumer的使用方式&源码分析
原文链接 1.使用前准备 引入依赖: <dependency> <groupId>org.apache.pulsar</groupId> <artifactI ...
- Go语言 判断key是否在map里 if _, ok := map[key]; ok
if val, ok := map[key]; ok { //do something here } 如果key在map里 val 被赋值map[key] ok 是true 否则val得到相应类型的零 ...
- JavaScript——字符串——模板字符串
JavaScript--字符串--模板字符串 字符串可以用反引号包裹起来,其中的${expression}表示特殊的含义,JavaScript会将expression代表的变量的值和反引号中的其它普通 ...
- cmd(命令行)超好用的技巧,很不错的打开方式
超快速打开管理cmd widows + x 按a 直接打开文件位置,在地址栏输入cmd 地址----直接cmd打开到所在文件位置 ex:cmd D:\work cd ../../../ 返回上几层的方 ...
- RGB 与 HSB/HSV 的关系
能理解 RGB 模式中确定数值的各种颜色,但怎么理解「明度」.「饱和度」.「色相」等概念? 从第一张图可以简单得出以下结论: 明度--这个最简单,rgb中,三色光的值,其加起来的和越大,明度就越大. ...
- 前后端数据交互(六)——ajax 、fetch 和 axios 优缺点及比较
一.ajax.fetch 和 axios 简介 1.1.ajax ajax是最早出现发送后端请求的技术,属于原生 js .ajax使用源码,请点击<原生 ajax 请求详解>查看.一般使用 ...
- GDAL的基本操作
上一节简单介绍了GDAL,这一节将介绍一些GDAL的基本操作,如影像读写.波段提取.波段合成等.代码均用python编写. 1.遥感影像的读写 众所周知,遥感影像是以栅格形式存储的,GDAL中使用da ...