首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

八年phper的高级工程师面试之路八年phper的高级工程师面试之路

公司1: 1、mysql_real_escape_string mysql_escape_string有什么本质的区别,有什么用处,为什么被弃用?...它们的用处都是用来能让数据正常插入到数据库,并防止sql注入,但是并不能做到100%防止sql注入。 再问:为什么不能100%防止?...答:使用redis队列存储请求,跑守护进程异步发奖,产生的问题是用户无法实时看到中奖情况。 再问:这样肯定不行。 再答:使用全局内存加锁确保抽奖过程是单进程在跑,但是会面临大并发阻塞问题。...8、b+树的查询时间复杂度是多少,哈希表是多少,为什么数据库索引用b+树存储,而不是哈希表,数据库索引存储还有其他数据结构吗?...10、php的垃圾回收机制? 答:垃圾回收是指当php运行状态结束时,比如遇到了exit/die/致命错误/脚本运行结束时,php需要回收运行过程创建的变量、资源的内存。

2K20

记录工作小问题-数据库返回类型

事情到这里结束了? ? ? 这三个到底什么关系, 为什么移除旧 mysql 安装上 mysqlnd 类型就不会转换了呢?...简单来说, mysqlnd 提供了底层与myslq网络交互的能力, 而 pdo_mysql 则属于上层的协议, 是我们代码可以直接使用的方法(query). ?...同样,在过去,您需要针对MySQL客户端库的副本构建MySQL数据库扩展。这通常意味着您需要在用于构建PHP代码的计算机上安装MySQL。...使用MySQL Native Driver不再是这种情况,因为它已包含在标准发行版。因此,您不需要安装MySQL即可构建PHP或运行PHP数据库应用程序。...内存效率的一个例子是,当使用MySQL客户端库时,每行在内存存储两次,而对于MySQL Native Driver,每行仅在内存存储一次。 ?

72530
您找到你想要的搜索结果了吗?
是的
没有找到

八年phper的高级工程师面试之路八年phper的高级工程师面试之路

公司1: 1、mysql_real_escape_string mysql_escape_string有什么本质的区别,有什么用处,为什么被弃用?...它们的用处都是用来能让数据正常插入到数据库,并防止sql注入,但是并不能做到100%防止sql注入。 再问:为什么不能100%防止?...答:使用redis队列存储请求,跑守护进程异步发奖,产生的问题是用户无法实时看到中奖情况。 再问:这样肯定不行。 再答:使用全局内存加锁确保抽奖过程是单进程在跑,但是会面临大并发阻塞问题。...8、b+树的查询时间复杂度是多少,哈希表是多少,为什么数据库索引用b+树存储,而不是哈希表,数据库索引存储还有其他数据结构吗?...10、php的垃圾回收机制? 答:垃圾回收是指当php运行状态结束时,比如遇到了exit/die/致命错误/脚本运行结束时,php需要回收运行过程创建的变量、资源的内存。

95900

Swoole开发要点介绍

摘要:简介Swoole是一个PHP扩展,提供了PHP语言的异步多线程服务器,异步TCP/UDP网络客户端,异步MySQL,异步Redis,数据库连接池,AsyncTask,消息队列,毫秒定时器,异步文件读写...我们可以总结出来上面简单的Server,当客户端连接的时候这个过程,三种进程之间是怎么协作的: Client主动Connect的时候,Client实际上是与Master进程的某个Reactor线程发生了连接...来捕获致命错误,在进程异常退出时做一些请求工作,具体参看/wiki/page/305.html PHP代码如果有异常抛出,必须在回函数中进行try/catch捕获异常,否则会导致工作进程退出 swoole...不支持set_exception_handler,必须使用try/catch方式处理异常 Worker进程不得共用同一个Redis或MySQL等网络服务客户端,Redis/MySQL创建连接的相关代码可以放到...onWorkerStart回函数

1K10

PHP 安全与性能

我们来分析一下: 我们假设,一个用户上传一个文件到images目录,会有几种情况: 上传一个.php文件,我们可以通过程序禁止上传.php文件 我们上传一个.jpg文件,OK 通过了,通过某种手段将他重命名位...代码是www用户,nobody可能读取但不能修改。...不同的地方是:php_admin_value(php_admin_flag) 命令只能用在apache的httpd.conf文件, 而php_value(php_flag)则是用在.htacces 在...Session / Cookie安全 session.save_path 默认session 存储在/tmp, 并且一明文的方式将变量存储在以sess_为前缀的文件 $ cat session.php...views|i:3; 经过侧记你可以看到session文件存储的是明文数据,所以不要将敏感数据放到Session,如果必须这样作。

1.6K61

PHP 安全与性能

我们来分析一下: 我们假设,一个用户上传一个文件到images目录,会有几种情况: 上传一个.php文件,我们可以通过程序禁止上传.php文件 我们上传一个.jpg文件,OK 通过了,通过某种手段将他重命名位...代码是www用户,nobody可能读取但不能修改。...不同的地方是:php_admin_value(php_admin_flag) 命令只能用在apache的httpd.conf文件, 而php_value(php_flag)则是用在.htacces 在...Session / Cookie安全 session.save_path 默认session 存储在/tmp, 并且一明文的方式将变量存储在以sess_为前缀的文件 $ cat session.php...views|i:3; 经过侧记你可以看到session文件存储的是明文数据,所以不要将敏感数据放到Session,如果必须这样作。

1.9K60

高性能PHP7【笔记】

一、搭建环境 二、PHP7新特性 A.OOP特性 1.类型声明 PHP7支持的形参类型声明的类型有整型、浮点型、字符串型、布尔类型,可以用在函数形参及对象的方法形参上 返回类型声明使用了data-type...‘ar’]); 2.Switch的多个default默认值,在php7会产生Fatal级别的错误 3.Session_start函数的选项数组:可以在调用session_start([...])传递参数选项数组...生成查询报告,pt-duplicate-key-checker找出重复索引和外键,pt-variable-advisor输出MySQL的配置信息以及对于每次查询的建议 B.Redis键值缓存存储 C.Memcached...键值缓存存储 五、调试和分析 A.Xdebug 六、PHP应用的压力/负载测试 A.Apache JMeter B.ApacheBench(ab) C.Siege 七、PHP编程最佳实践 A.代码风格...1.类名每个单词的首字母必须大写,左大括号应该在类名后新起一行,右大括号应该在类结束后新起一行 2.类的方法和函数命名应该是驼峰式的,参数和紧跟着的逗号之间不应有空格 3.命名空间的声明之后应该空一行

79820

浅谈PHPMySQL开发

.需要读者自己使用百度进行拓展学习. 4.本文所表达观点并不是最终观点,还会更新,因为本人还在学习过程,有什么遗漏或错误还望各位指出. 5.觉得哪里不妥请在评论留下建议~ 6.觉得还行的话就点个小心心鼓励下我吧...PHP基础 环境搭建 HTTP协议 基本语法 数据类型 语言基础 文件加载 数据存储和读取(服务器目录操作) 代码重用 函数编写 异常处理 MySQL基础 数据库概念...网络和协议函数 国际化与本地化 GD图像处理 会话控制 MySQL高级 权限系统 MySQL事务 存储过程、触发器和函数 存储引擎 优化、备份、恢复 Web应用安全性...大型项目中的PHP&MySQL 可维护代码 调试和日志 用户身份验证和个性化 框架应用项目实践 知识拓展 在学习PHPMySQL过程,书中都有涉及到AJAX和jQuery的知识...,希望各位读者在学习PHPMySQL过程可以进行AJAX和jQuery的了解.

2.3K150

年前的最后一次面试题总结

3、php脚本执行阶段 php代码解析执行的过程。Zend引擎接管控制权,将php脚本代码编译成opcodes并顺次执行。这也我们的代码真正执行的阶段。...在创建一个PHP变量时,会将这个变量存在zavl变量容器。这个容器存储的是这个变量的类型和值,初次之外还会存储is_ref和refcount两个额外的字段。...当前请求结束之后,PHP执行脚本结束,也会清楚所有的变量信息。 官网文档: 引用计数基本知识 每个php变量存在一个叫"zval"的变量容器。...每个 Worker 接受来自 Reactor 的请求,只需要执行回函数部分的 PHP 代码。 只在 Master 启动时执行一遍 PHP 初始化代码,Master 进入监听状态,并不会结束进程。...通过使用索引,可以在查询的过程,使用优化隐藏器,提高系统的性能。

1.3K20

深入理解php底层:php生命周期

3)、执行php代码: 一旦请求被初始化了,ZE开始接管控制权,将PHP脚本翻译成符号,最终形成操作码并逐步运行之。...扩展层是一组函数、类库和流,PHP使用它们来执行一些特定的操作。比如,我们需要mysql扩展来连接MySQL数据库; 7....3、PHP的开始和结束阶段 开始阶段有两个过程: 第一个过程:apache启动的过程,即在任何请求到达之前就发生。...请求到达之后,SAPI层将控制权交给PHP层,PHP初始化本次请求执行脚本所需的环境变量,例如创建一个执行环境,包括保存php运行过程变量名称和变量值内容的符号表....prefork 进程池模型,用在 UNIX 和类似的系统上比较多,主要是由于写起来方便,也容易移植,还不容易出问题。

56030

Node.js与PHP对战:一场关于开发者喜好的史诗级战役

PHP胜出:代码与内容混合 大家在输入的过程当然希望能将自己的思路直接转化为网站的文本内容,同时还要为进程添加分支、一部分if-then语句以保证站点拥有漂亮的视觉效果,具体取决于URL的某些参数。...PHP胜出:便捷性(或多或少吧) PHP语言在使用过程并没有太多可说的:几种变量再加上由字符串与数字构成的基本函数就是它的一切。...PHP胜出:SQL PHP的设计思路本身就考虑到了与MySQL及其多种变体——例如MariaDB——的共存协作需要。...Node.js胜出:原始速度 如果从代码本身的大括号与小括号数量角度来看,编写JavaScript代码的难度确实更高一些,但在开发工作结束后、Node.js代码的运行速度却极为惊人。...回机制的引入堪称天才之举,因为这能大大节约我们处理不同线程的时间。代码的核心构建良好而且专门设计用于实现我们的实际需要。这不正是每一位开发人员梦寐以求的效果么?

47700

深入理解php底层:php生命周期

3)、执行php代码: 一旦请求被初始化了,ZE开始接管控制权,将PHP脚本翻译成符号,最终形成操作码并逐步运行之。...扩展层是一组函数、类库和流,PHP使用它们来执行一些特定的操作。比如,我们需要mysql扩展来连接MySQL数据库; 7....3、PHP的开始和结束阶段开始阶段有两个过程: 第一个过程:apache启动的过程,即在任何请求到达之前就发生。...请求到达之后,SAPI层将控制权交给PHP层,PHP初始化本次请求执行脚本所需的环境变量,例如创建一个执行环境,包括保存php运行过程变量名称和变量值内容的符号表....prefork 进程池模型,用在 UNIX 和类似的系统上比较多,主要是由于写起来方便,也容易移植,还不容易出问题。

1.9K90

40+个对初学者非常有用的PHP技巧(一)

3.在应用程序维护调试环境 在开发过程,我们echo数据库查询,转储创造问题的变量,然后一旦问题被解决,我们注释它们或删除它们。但让一切留在原地可提供长效帮助。...以上代码可以应用到很多地方让你的代码更加灵活。 6.省略结束php标签,如果它是脚本的最后一行 我不知道为什么很多博客文章在谈论php小技巧时要省略这个技巧。 ? 这可以帮助你省略大量问题。...你可以要么将它存储于函数的变量内部,要么使用ob_start和ob_end_clean。所以,现在应该看起来像这样 ?...发送输出给浏览器,并在同一时间做php处理并不是好主意。你见过这样的网站,它有一个Fatal error在侧边栏或在屏幕中间的方框吗?你知道为什么会出现这种情况吗?...9.为MySQL连接设置正确的字符编码 曾碰到过unicode/utf-8字符被正确地存储mysql表的问题,phpmyadmin也显示它们是正确的,但是当你使用的时候,你的网页上却并不能正确地显示。

87430

40+个对初学者非常有用的PHP技巧(一)

3.在应用程序维护调试环境 在开发过程,我们echo数据库查询,转储创造问题的变量,然后一旦问题被解决,我们注释它们或删除它们。但让一切留在原地可提供长效帮助。...以上代码可以应用到很多地方让你的代码更加灵活。 6.省略结束php标签,如果它是脚本的最后一行 我不知道为什么很多博客文章在谈论php小技巧时要省略这个技巧。 ? 这可以帮助你省略大量问题。...你可以要么将它存储于函数的变量内部,要么使用ob_start和ob_end_clean。所以,现在应该看起来像这样 ?...发送输出给浏览器,并在同一时间做php处理并不是好主意。你见过这样的网站,它有一个Fatal error在侧边栏或在屏幕中间的方框吗?你知道为什么会出现这种情况吗?...9.为MySQL连接设置正确的字符编码 曾碰到过unicode/utf-8字符被正确地存储mysql表的问题,phpmyadmin也显示它们是正确的,但是当你使用的时候,你的网页上却并不能正确地显示。

96720

【专业技术】PHP对战Node.js

PHP胜出:代码与内容混合 大家在输入的过程当然希望能将自己的思路直接转化为网站的文本内容,同时还要为进程添加分支、一部分if-then语句以保证站点拥有漂亮的视觉效果,具体取决于URL的某些参数。...PHP胜出:便捷性(或多或少吧) PHP语言在使用过程并没有太多可说的:几种变量再加上由字符串与数字构成的基本函数就是它的一切。...PHP胜出:SQL PHP的设计思路本身就考虑到了与MySQL及其多种变体——例如MariaDB——的共存协作需要。...Node.js胜出:原始速度 如果从代码本身的大括号与小括号数量角度来看,编写JavaScript代码的难度确实更高一些,但在开发工作结束后、Node.js代码的运行速度却极为惊人。...回机制的引入堪称天才之举,因为这能大大节约我们处理不同线程的时间。代码的核心构建良好而且专门设计用于实现我们的实际需要。这不正是每一位开发人员梦寐以求的效果么?

1K50

PHP Opcache的工作原理

它将PHP编译产生的字节码以及数据缓存到共享内存, 在每次请求,从缓存中直接读取编译后的opcode,进行执行。 通过节省脚本的编译过程,提高PHP的运行效率。...不要在高峰期发布代码,这是任何情况下都要遵守的规则 代码预热,比如使用脚本批量PHP 访问URL,或者使用OPCache 暴露的API 如opcache_compile_file() 进行编译缓存 6...默认5 6.2 允许缓存的文件数量以及大小 opcache.max_accelerated_files=2000 OPcache 哈希表存储的脚本文件数量上限。...opcache.file_cache_onlyboolean 启用或禁用在共享内存的 opcode 缓存。...以上内容希望帮助到大家,很多PHPer在进阶的时候总会遇到一些问题和瓶颈,业务代码写多了没有方向感,不知道该从那里入手去提升,对此我整理了一些资料,包括但不限于:分布式架构、高可扩展、高性能、高并发、服务器性能

99421

深入浅出学习后端开发(PHP篇)

)] 稍后更新 本文阅读建议 1.一定要辩证的看待本文. 2.本文并不会涉及到PHP详细知识点,只陈述在学习PHP过程遇到的关键点. 3.PHP依照其开发应用分为'基础篇,面向对象篇,框架篇,实际应用篇...',根据本人学习进度更新. 4.本文只阐述学习路线和学习当中的重点问题.需要读者自己使用百度进行拓展学习. 5.本文所表达观点并不是最终观点,还会更新,因为本人还在学习过程,有什么遗漏或错误还望各位指出...为什么要学习PHP 为什么学习PHP,PHP的优点在哪里呢....数据存储和读取(服务器目录操作) 错误处理 算法(稍难) 机器码(了解) 高级路线 面向对象概念 类和对象 类设计 GD动态图像 MySQL扩展 PDO数据库抽象层 PDO...PHP实际应用 暂时没有进行PHP框架的学习,稍后我会更新其相关篇幅及文章. 结束语 如果您对这篇文章有什么意见或者建议,请评论与我讨论. 如果您觉得还不错的话~可以点个喜欢鼓励我哦.

1.3K120

PHP+Redis实现延迟任务 实现自动取消订单,自动完成订单

,$use_mysql]; $key = implode(':',$list); $redis->setex($key,3,'redis延迟任务'); //3秒后回 $test_del...使监听后台始终运行(订阅) 有个问题 做到这一步,利用 phpredis 扩展,成功在代码里实现对过期 Key 的监听,并在 psCallback()里进行回调处理。开头提出的两个需求已经实现。...同时nohup把脚本程序的所有输出,都放到当前目录的nohup.out文件,如果文件不可写,则放到<用户主目录>/nohup.out 文件。...: kill -9 进程号 清空 nohup.out文件方法: cat /dev/null > nohup.out 我们在使用nohup的时候,一般都和&配合使用,但是在实际使用过程,很多人后台挂上程序就这样不管了...,其实这样有可能在当前账户非正常退出或者结束的时候,命令还是自己结束了。

1.4K20
领券