:

时钟的时针、分针和秒针完全重合在一起

发布于:2019-4-15 10:50 作者:song100e 浏览:150 分类:面试题

问题:在一天的24小时之中,时钟的时针、分针和秒针完全重合在一起的时候有几次?都分别是什么时间?你怎样算出来的?

以下只涉及三针按格转动的情况,那些三针匀速转动的表不涉及
分针在每个整分时转一格;
时针在 12, 24, 36, 48, 60这些整分时转一格.即 0 到 11 分时在整小时处,12至23分时在下一小格......48 至 59 分时在差一格到下一整小时处.(按格转动的老表应该是这么转的吧)
时针每 12 小时转一圈;
分针每一小时转一圈,所以每一小时都和时针重合一次;
秒针每一分钟转一圈,所以每一分钟都和时针分针各重合一次.
所以三针重合时,在时针和分针重合的那一分钟里,秒针再转到那一格的那一秒.

阅读全文>>

0

2019年02月读书《PHP7内核剖析》

发布于:2019-3-13 8:58 作者:song100e 浏览:155 分类:人丑就要多读书

        PHP7 版本最大的特色在于其性能上的突破,比 PHP5 快了一倍。目前 PHP7 已经得到了广泛应用,越来越多的项目从 PHP5 迁移到了 PHP7。目前,关于PHP内核的资料非常有限,本书以当前流行的 PHP7 版本为基础,系统性地、尽可能详细地介绍PHP语言底层的实现,旨在帮助更多的开发者进一步理解PHP,参与到 PHP 的实现中,为未来 PHP 的发展贡献一份力量!全书内容主要包括 PHP 数据类型的实现、PHP 的编译及执行、PHP 内存的管理、函数及面向对象的实现、 PHP 基础语法的实现,以及 PHP 扩展的开发。


点击查看原图

标签: PHP7

0

2019年03月读书《未来世界的幸存者》

发布于:2019-3-10 17:50 作者:song100e 浏览:137 分类:人丑就要多读书

        总的来看,下一代青年不太可能像上一代有那么多机会。经济增长已经开始放缓,还将继续放缓;人口增长高峰已经过去;除了高科技,几乎所有行业都不会有以前那么高的增长率。现在是穷人,未来极大可能还是穷人,能翻身的只能是少数,而且难度越来越大。

 

未来世界的幸存者.jpg

标签: Survivor

0

请用 php 的 socket 相关知识,写出一个简易的 client

发布于:2019-3-1 10:43 作者:song100e 浏览:246 分类:面试题

请用php写出以下程序:假设网络中有一台服务器 192.168.1.101,开放端口 8899 进行侦听,请用 php 的 socket 相关知识,写出一个简易的 client,连接到 server,并发送字符串 ”hello server!”。程序仅对连接的成功和失败进行简易错误判断和处理即可。

参考代码如下:

<?php
$sock = socket_create(AF_INET, SOCK_DGRAM, SOL_UDP);
socket_connect($sock,"192.168.1.101", 8899);
socket_set_option($sock, SOL_SOCKET, SO_BROADCAST, 1);
$buf = "hello server!";
socket_write($sock,$buf,strlen($buf));
socket_close($sock);
?>

这里着重讲一下 socket_create 函数:

阅读全文>>

标签: socket

0

php-fpm 输出 php 错误日志

发布于:2019-2-28 11:25 作者:song100e 浏览:162 分类:Linux
        nginx 是一个 web 服务器,因此 nginx 的 access 日志只有对访问页面的记录,不会有 php 的 error log 信息。

        nginx 把对 php 的请求发给 php-fpm fastcgi 进程来处理,默认的 php-fpm 只会输出 php-fpm 的错误信息,在 php-fpm 的 errors log 里也看不到 php 的 errorlog。原因是 php-fpm 的配置文件 php-fpm.conf 中默认是关闭 worker 进程的错误输出,直接把他们重定向到 /dev/null,所以我们在 nginx 的 error log 和 php-fpm 的 errorlog 都看不到 php 的错误日志。

解决 nginx 下 php-fpm 不记录 php 错误日志的办法如下:

阅读全文>>

标签: php-fpm

0

GET 和 POST的区别

发布于:2019-2-28 10:41 作者:song100e 浏览:166 分类:面试题
如果有人问你 GET 和 POST 的区别,你可以轻轻松松的给出了一个“标准答案”:
    (1), GET 在浏览器回退时是无害的,而 POST 会再次提交请求。
    (2), GET 产生的URL地址可以被 Bookmark,而 POST 不可以。
    (3), GET 请求会被浏览器主动 cache,而 POST 不会,除非手动设置。
    (4), GET 请求只能进行 URL 编码,而 POST 支持多种编码方式。
    (5), GET 请求参数会被完整保留在浏览器历史记录里,而 POST 中的参数不会被保留。
    (6), GET 请求在 URL 中传送的参数是有长度限制的,而 POST 么有。
    (7), 对参数的数据类型,GET 只接受 ASCII 字符,而 POST 没有限制。
    (8), GET 比 POST 更不安全,因为参数直接暴露在 URL 上,所以不能用来传递敏感信息。
    (9), GET 参数通过 URL 传递,POST 放在 Request body 中。
    (本标准答案参考自 W3schools)

很遗憾,你挖的不够深!如果我告诉你 GET 和 POST 本质上没有区别你信吗? 

那么 GET 和 POST 到底是什么?HTTP 协议中的两种发送请求的方法

结束了吗?!没有。

阅读全文>>

标签: POST

0

2019年02月读书《菜根谭的智慧》

发布于:2019-2-27 9:56 作者:song100e 浏览:142 分类:人丑就要多读书

        昨天晚上从京东快递员手中拿到书,随机读了几篇, 个中意境、处世智慧,修身养性确实少有,是不可多得的好书,值得推荐。

        本书在参照各种权威版本的基础上,精心筛选出具有可靠性、时代性、契合度的经典原文。为便于阅读,编者将全书分为处世篇修持篇养身篇闲适篇,并编制了主题目录。书中详尽的“注释”和准确流畅的“译文”,更便于您去阅读和理解;独特的“解读”,意在扬弃封建糟粕,赋予时代新义,为您处理社会问题提供有益的借鉴。

       《菜根谭》这一旷古稀世的奇珍宝训,从生活的方方面面教导我们如何面对现实人生的苦难和复杂的人际关系,从而养成刚毅坚韧、与人为善、处世恬淡的健康人格,让我们能够悠闲从容地度过每一天

81dOzbviGaL.jpg

0

C语言中 .c 和 .h 文件

发布于:2019-2-26 11:00 作者:song100e 浏览:133 分类:C 语言
本质上没有任何区别。 只不过一般:.h文件是头文件,内含函数声明、宏定义、结构体定义等内容。.c文件是程序文件,内含函数实现,变量定义等内容。而且是什么后缀也没有关系,只不过编译器会默认对某些后缀的文件采取某些动作。你可以强制编译器把任何后缀的文件都当作c文件来编。
这样分开写成两个文件是一个良好的编程风格。

        简单的说其实要理解 C 文件与头文件(即.h)有什么不同之处,首先需要弄明白编译器的工作过程,一般说来编译器会做以下几个过程:

        1.预处理阶段
        2.词法与语法分析阶段
        3.编译阶段,首先编译成纯汇编语句,再将之汇编成跟 CPU 相关的二进制码,生成各个目标文件 (.obj文件)
        4.连接阶段,将各个目标文件中的各段代码进行绝对地址定位,生成跟特定平台相关的可执行文件,当然,最后还可以用 objcopy 生成纯二进制码,也就是去掉了文件格式信息。(生成 .exe 文件)

阅读全文>>

0

C 语言中 typedef struct 和 struct 的理解

发布于:2019-2-25 15:52 作者:song100e 浏览:146 分类:C 语言

举例代码:

typedef struct tagMyStruct
{ 
  int iNum;
  long lLength;
} MyStruct;

上面的 tagMyStruct 是标识符,MyStruct 是变量类型。


这段语句实际上完成两个操作
1) 定义一个新的结构类型

struct tagMyStruct
{   
  int iNum; 
  long lLength; 
};

2) typedef 为这个新的结构起了一个名字(别名),叫 MyStruct。
typedef struct tagMyStruct MyStruct;
因此,MyStruct 实际上相当于 struct tagMyStruct,我们可以使用 MyStruct varName 来定义变量。



标签: struct

0

PHP7内核学习起步!

发布于:2019-2-15 17:48 作者:song100e 浏览:197 分类:内核剖析学习

        PHP7 版本的发布,Zend 引擎被再次重写,并以 Zend Engine 3.0 的身份亮相,使得 PHP 语言的性能得到大幅度提升,大量测试显示 PHP7 比 PHP5.6 在各种开源项目中有 60% 到 200% 的性能提升。学习和研究 PHP7 内核对于提升个人使用水平和内功很有必要。

点击查看原图


一,源码下载及安装

$ wget http://php.net/distributions/php-7.0.12.tar.gz
$ tar zxvf php-7.0.12.tar.gz
$ cd php-7.0.12/
$ ./configure --prefix=/usr/local/php-7.0.12 --enable-debug --enable-fpm
$ make && sudo make install


二,目录概览

以 php-7.0.12 为例,下面是每个目录的说明。

目录 说明
TSRM 线程相关安全的实现
Zend PHP 解析器的核心实现
build linux 下编译相关的目录
ext PHP 的扩展
main PHP 的主要代码
netware 网络目录,socket 的定义与实现
pear PHP 扩展及应用的代码仓库
sapi PHP 的应用层接口
scripts Linux 下的脚本目录
tests 测试脚本目录
travis 用于构建,非 PHP 特有目录
win32 Windows 下编译 PHP 的相关脚本


三,核心目录

  1.         sapi 全称 Server API,负责 PHP 对外提供服务规范,它定义了结构体 sapi_module_struct,该结构体定义了模式启动、关闭、激活、失效等多个钩子函数指针,每个模式将这些函数指针指向自己的函数。
  2.         main 目录的作用是承接 SAPI 的请求,分析出要执行的脚本文件和参数,并对环境和配置进行初始化,比如初始化变量和常量、注册函数、解析配置文件、加载扩展等等。
  3.         Zend 目录就是大家所熟知的 Zend 引擎,是 PHP 最核心的部分,主要负责 PHP 的语法实现、内存管理及脚本的编译运行环境等,它由编译器、执行器两部分组成。编译器负责将 PHP 代码进行词法、语法分析,并生成抽象语法树,然后进一步编译为 opcode,opcode 是 Zend 虚拟机可识别的指令。
  4.         ext 是 extension 的缩写,它是扩展 PHP 内核功能的一种方式,分为 PHP 扩展 与 zend 扩展,都支持用户自定义开发,这两种都比较常见,PHP 扩展有 gd、json、date、array 等,而我们熟知的 opcache 就是 Zend 扩展。
  5.         TSRM 全称叫做 Thread Safe Resource Manager,也就是线程安全资源管理器。


标签: PHP7

0

1 2 3 4 5 6 7 8 9 10 ... »