【置顶】技术每天一点点--2017.09-2018.10月 PHP读取sphinx实例

本文地址:http://www.cnblogs.com/aiweixiao/p/7451352.html

本文提纲:

  1. 概述
  2. 每天进展

1.【遗留问题】

  1.1)【问题】

问题列表

1.2)【todo】

  • 【shell登录】不用输入密码的方法。
    • php变量的引用,unset引用,原值还在。
    • php的对象函数修改
    • php遍历目录下的所有文件和文件夹
    • 两个文件都是1G的,复制一个文件的内容到另一个文件末尾(DONE):http://www.cnblogs.com/aiweixiao/p/7535351.html ,使用php生成器 yield也行
    • 多进程写入到一个文件
    • Shell 脚本写出来网站访问的Top 10,PHP实现呢?
    • MySQL的联合索引中具体用到那个索引,有大小比较呢?
    • MySQL的事务隔离级别
    • innodb 为什么比myisam的并发性好
    • gearman的消息队列

2.【每天进展】

序号日期关键词状态内容备注
182018.10.28js修改打开本页面的上一个页面(父页面)中的元素
//修改母页面中的图片为审核完成
var parentDoc = window.opener.document;
parentDoc.getElementById('img').src="/img/icon_audited.png";
//调用可变变量函数名

for (var i=1; i<= 2;i++)

{

var checkStr = "func"+i;

eval(checkStr)();

}

172018.03.12周一linux下安装mysql
  • centos 7默认是 mariDB,修改其为mysql的方法:http://blog.csdn.net/dogfish/article/details/53167564
  • 修改默认mysql的密码的方法:

    UPDATE user SET Password = PASSWORD(‘111') WHERE user = 'root';

    或者 : /usr/bin/mysqladmin -u root password "111"

162018.03.10 周六php
  • php脚本执行的时候,这时候修改php脚本内容,执行的结果没有发生变化, 是因为php的字节码在内存中了,这时候,即使将执行的这个脚本删除了,还是会继续正确输出内容的。
152018.03.09周五使用腾讯云
  • lnmp安装:

yum install php

yum install mysql

yunm install nginx

142018.03.06php
  • php的对象也是可以 foreach循环的
132018.02.26js

1) 防止重复提交 -- js全局变量实现

window.__canSubmmit__ = true;

function submit()
{
  if(window.__canSubmmit__ == false)
  {
    alert('不能重复提交');
    return false;  
  }    
  
  //业务逻辑
  setTimeout(function(){
    alert('提交完成');
    window.__canSubmmit__ = true;    
  },10000);//延时10秒
}

我之前做的防止提交的方法是 将一个html的元素的值设置为不可提交的逻辑,处理完后再设置为可以提交,没有这里通过设置一个全局变量的布尔值来的简洁

122018.02.25周日学习书籍《Modren PHP》已完成

1)php生成器 yield,解决迭代和内存问题

2)闭包 = 匿名函数(对PHP而言), $test = function(){echo 1;}; $test();

3) __invoke() 把对象当成函数调用时,该魔术方法被调用,匿名函数其实是一个Closure类,所以调用触发该魔术方法

4)array_map('addOne', $testArr);

5) preg_replace_call()

112018.02.03周六AI paddlepaddle进行中
  • 文档地址:http://ai.baidu.com/paddlepaddle

  是Python的一个库,深度学习,

102018.01.06周六composer已完成

官方文档: http://docs.phpcomposer.com/00-intro.html

composer的安装和使用:

01)curl -sS https://getcomposer.org/installer | php

下载后是一个 composer.phar 二进制包

02) 创建 composer.json文件(内容如左)

改成国内的镜像包,否则会很慢,参考: https://pkg.phpcomposer.com/

"repositories": {

"packagist": {

"type": "composer",

"url": "https://packagist.phpcomposer.com"

}

}

03)composer.phar install

{

"name":"IFrame PHP",

"description":"PHP Framework",

"type":"Framework",

"keywords":[

"PHP","PHP Framework"

],

"repositories": {

"packagist": {

"type": "composer",

"url": "https://packagist.phpcomposer.com"

}

},

"require":{

"php":">= 5.3.0",

"symfony/var-dumper":"*"

}

}

92017.11.14 周二sphinx未进行
8

2017.10.13周五

UML未进行

数据库设计不足: 1)未考虑到企业的唯一性,所以要企业和账户分离 2)一对多的数据库设计,查询效率问题

怎么解决:1)对数据库设计的考虑要周全,建议看写UML设计的书籍,锤炼下

7

2017.10.11周三

开源技术

1)【前端web上传组件】:

前端使用的上传组件百度的webUploader

文档地址: http://fex.baidu.com/webuploader/

2)【百度云的php文档】:

相关的百度云的SDK文档如下: https://cloud.baidu.com/doc/BOS/PHP-SDK.html

6

2017.10.10周二

php变量引用已完成

1)php的变量引用,unset后的结果

$a = 3;
$b = &$a;
unset($a);
echo $b;//输出结果是 3

原因是:

  • php的变量,$a $b这两个变量名同时指向了一块内存,unset($a)只是切断了$a这个变量名与这块内存的关联,但是因为还有$b这个变量名指向这块内存,所以内存还是不会释放,输出结果是3.
  • 如果 unset($a) 变成是 $a=1; 则echo $b;结果是也是 1
  • 【对象默认是引用传递】

2)参考文档: http://www.cnblogs.com/nixi8/p/4925094.html

5

2017.09.30周六

item2 PS1设置已完成

1)颜色配置: http://www.jianshu.com/p/33deff6b8a63

2)PS1命令提示符设置。:http://blog.sina.com.cn/s/blog_6268defa0100wijx.html

export PS1='[\[\e[31m\]\u@\[\e[36m\]\h \W \[\e[32m\]\t] \[\e[33m\]\$\[\e[m\]'

3)item2:

  • 回放功能:option+command+b
  • 光标去哪了?command+/
  • cmd+shift+3 截屏
  • ctrl + 单击 — 相当于右键点击,呼出菜单—万能的右键
  • ctrl + p: 上一条命令,相当于方向键上
  • ctrl + f/b: 前进后退,相当于左右方向键,但是显然比移开手按方向键更快
  • ⌘ + opt + b: 快照回放。很有意思的功能,你可以对你的操作根据时间轴进行回放。可以拖动下方的时间轴,也可以按左右方向键。如图:快照回放
memcache 的telnet命令

1)memcache telnet登录: http://www.cnblogs.com/zhhtao/p/4475746.html

telnet 127.0.0.1 23934

2)memcache php

1) telnet
set name 16 10 5 #设置name 为 5个字符,过期时间为10秒 12345 STORED #成功 get name #读取name的值 VALUE name 16 5 12345 END
2)php memcache
$memcache = new memcached();
$memcache->addServer('127.0.0.1', 23934);
$memcache->set('name', '周杰伦');
$memcache->get('name');
4

2017.09.20

周三

mysql索引受字段类型影响已完成
  • select userid from user where usermobile='13821870706' - 走索引
  • select userid from user where usermobile=13821870706 - 不走索引
  • -- 不走索引非常慢,因为 usermobile的字段类型是 archar,所以要是以字符串的形式进行查询,不能以整型的形式去查询
32017.09.13周三php-fpm进行中

1)php.ini中的内存设置是所有的php公用一个内存,

http://www.cnblogs.com/52fhy/p/5051722.html

1)【问题01】:什么是内存泄露?php-fpm的进程怎么查看占用的内存大小?

2)【问题 02】:查看linux的内存的方法:

答:三个命令都行: top free cat /proc/meminfo

3)【问题 03】:php-fpm的配置什么作用?配置的参数含义?

答:php-fpm是管理php进程的一个工具,全称是“FastCGI 进程管理器“。配置的参数含义在 http://www.cnblogs.com/52fhy/p/5051722.html

动态的进程参数,静态的进程参数。官方的说明文档:http://php.net/manual/zh/install.fpm.php

22017.09.04 周一redis的使用已完成

1)http://www.cnblogs.com/aipiaoborensheng/p/5666005.html

$this->redis = new Redis();
$this->redis->connect('127.0.0.1', 6379);
$this->redis->set('test', 1 , $expireTime=3600);
$this->redis->incr('test');
$this->redis->decr('test');
$this->redis->get('test');

1)mysql的索引,使用 有索引字段的 ,where userid> ,where userid<. where user = 都能用到索引,但是 where userid != 这种区间外的用不到索引

2)telnet 登录 redis

telnet 127.0.0.1 6397

http://blog.csdn.net/bravezhe/article/details/8727907

set yourname 666

get yourname

12017.09.02 周六反向代理百度已完成1)反向代理百度
#反向代理百度 start
location ~ /baidu{
     proxy_pass http://www.baidu.com;
}
git的安装使用已完成

git init

git clone

git config --global user.email "you@example.com”

git config --global user.name "Your Name”

git commit -m ‘提交注释’ yourfile.php

git pull

git push

git push -u origin master

1)git clone的报错解决:http://blog.csdn.net/z_dianjun/article/details/50819908

2)git push 需要安装 ssh key (有时候如如的用户名不带后面邮箱的@后缀)

3)git diff 中文乱码的解决(todo), 因为默认git的编码都是utf8的

http://blog.sina.com.cn/s/blog_4cd5d2bb01017w76.htm

表格css样式已完成

设置表格的css样式,设置上一级td标签的style,而不是span

  2.1)【2017.08.30】

    --部署,变更与发布维护

    --JDOS系统,对代码镜像在开发,测试,预发布,线上环境之间流转

    --交付:向开发交付充足的资源,向业务方交付稳定的系统(响尾蛇系统),向运维交互可维护的系统(sysgraph系统)

    --稳定性建设,内部技术竞赛

    --故障阶段:从技术思路出发,我们把故障处理分为预防、发现、定位、止损、恢复几个大的阶段

    --监控建设:“基于Falcon的滴滴内部监控系统”,数据的采集,聚合,实时计算,存储等,异常检测智能化,统一报警收敛化(对报警类及操作类事件进行统一收敛,形成事件库。初步以 timeline 的方式)