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
---------------------------------------------/爬虫相关的问题---------------------------------------------------
随机推荐
- noip 模拟 7
我花了我多久的rp啊-- 考试经过 这次是三道题,依旧先看一遍,然后从头开始做 T1一看,这好像是KMP?等等,我好像忘了啊你个废,没事哈希也能做,On似乎可以呀,一波操作,我是不是要A题了? 转到T ...
- 如果被问到 HTTP 协议,你真的能讲清楚吗?
前段时间,在和许久未见的老同学聊天时,突然被问到 http 协议到底是什么?脑海里面第一时间想起来的就是 request 请求.response 响应之类的词汇,但是这样讲他真的能知道是什么吗?我反问 ...
- 数据结构解析-HashTable
概要 HashTable也是散列表的一种实现,我们在上一篇解析了HashMap,在这里我们与HashMap做个对比,让你能清晰的了解两者的区别: 散列表 实现方式 数据安全 数据安全实现方式 key\ ...
- 【转】ps命令详解与使用
ps 概述 Linux中的ps命令是Process Status的缩写.ps命令用来列出系统中当前运行的那些进程.ps命令列出的是当前那些进程的快照,就是执行ps命令的那个时刻的那些进程,如果想要动态 ...
- nginx 实现反向代理、负载均衡、高可用
转自:https://blog.csdn.net/zy1471162851/article/details/91795712 tip: nginx是一款高性能的http 服务器/反向代理服务器及电 ...
- ConcurrentModificationException异常原因和解决方法
一.ConcurrentModificationException异常出现的原因 先看下面这段代码: public class Test { public static void main(Strin ...
- 【IDE】WebStorm常用快捷键
WebStorm常用快捷键 1. ctrl + shift + n: 打开工程中的文件,目的是打开当前工程下任意目录的文件. 2. ctrl + j: 输出模板 3. ctrl + b: 跳到变量申明 ...
- 使用dom4j工具:XMLWriter写出文件(五)
package dom4j_write; import java.io.File; import java.io.FileOutputStream; import java.io.OutputStre ...
- Hadoop分布式资源管理器Yarn、MR运行机制剖析
介绍YARN组件的功能及应用场景 1.ResourceManager(RM) RM是一个全局的资源管理器,集群中只有一个.它负责整个Hadoop系统的资源管理和分配,包括处理客户端请求.启动监控 Ap ...
- VMware虚拟机 + ubuntu16.04 Linux OpenCV打不开摄像头解决办法
通过如下步骤,已解决:(不知哪个步骤是关键,全写下来) sudo apt-get update sudo apt-get upgrade 在Windows下先确认摄像头能正常读取. USB控制器选择U ...