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模拟12[简单的区间·简单的玄学·简单的填数]
noip模拟12 solutions 这次考试靠的还是比较好的,但是还是有不好的地方, 为啥嘞??因为我觉得我排列组合好像白学了诶,文化课都忘记了 正难则反!!!!!!!! 害没关系啦,一共拿到了\( ...
- MySQL自动填充
一.数据库级别 1.1 表设计 create_time默认值添加CURRENT_TIMESTAMP. update_time默认值添加CURRENT_TIMESTAMP,更新打勾. 1.2 验证是否成 ...
- centos上安装zookeeper
下载zookeeper # 创建zookeeper文件夹 cd /usr/local/ mkdir zookeeper cd zookeeper # 下载 解压 wget https://mirror ...
- SpringDataJpa使用原生sql(EntityManager)动态拼接,分页查询
SpringDataJpa Spring Data JPA是较大的Spring Data系列的一部分,可轻松实现基于JPA的存储库.该模块处理对基于JPA的数据访问层的增强支持.它使构建使用数据访问技 ...
- C++11 shared_ptr智能指针(超级详细)
在实际的 C++ 开发中,我们经常会遇到诸如程序运行中突然崩溃.程序运行所用内存越来越多最终不得不重启等问题,这些问题往往都是内存资源管理不当造成的.比如: 有些内存资源已经被释放,但指向它的指针并没 ...
- tar.gz 文件解压
tar.gz 文件解压 解压缩 file.tar.gz 的过程中出现如下所示问题: tar: 它似乎不像是一个 tar 归档文件 tar: 跳转到下一个头 tar: 由于前次错误,将以上次的错误状态退 ...
- JDK 5.0新特性
时间:2016-11-5 12:03 JDK5.0新特性 泛型.枚举.静态导入.自动拆装箱.增强for循环.可变参数1.Junit单元测试 测试的对象是类中的一个方法. junit不 ...
- Java程序设计学习笔记(一)
时间:2015-6-2 23:04 程序员,程序猿,程序媛,码农 ------------------------------------------------------- --Java的应用 ...
- springboot全局异常封装案例
@ControllerAdvice三个场景:>https://www.cnblogs.com/lenve/p/10748453.html 全局异常处理 全局数据绑定 全局数据预处理 首先定义一个 ...
- Django的form组件——正则校验
from django.contrib import admin from django.urls import path from app01 import views urlpatterns = ...