php 怎么调用cli,有哪些的实用网站推荐?
极其强烈推荐这6个超实用的神仙网站
1、医学微视
https://www.mvyxws.com/
医学微视是响应落实党的十八届五中全会提出的“健康中国”国家战略,配合卫健委宣传司“健康中国行——全民健康素养促进活动”精神,为了提高公民医学素养水平,以让公众“多了解一点专业医学知识,生命和健康就多一分保障”为主旨,在中华医学会科学普及分会指导下,由中国医学科学院健康科普研究中心监制,结合互联网等现代科技方便、快捷、普众的特征,而实施的一项权威医学科普项目。
2、SubHD字幕平台
https://subhd.tv/
SubHD 网站是一个致力于分享国外电影、动漫、电视剧字幕翻译和分享的站点,帮助国内用户欣赏国外的媒体视频资源无障碍,同时还可以通过看视频来学习不同的语言,提高听力和翻译能力。
3、Topbook | 高效生活视频书
https://topbook.cc/
Topbook是一个有关「高效率」的百宝箱网站。关于生活、学习、工作,都有相关的app、网站推荐。Topbook的宗旨:推荐最纯粹的工具,让你摆脱无用讯息的控制。网站一共有4个板块,分别是:高效生活研究所、文章、计划、市集。
4、中国大学MOOC(慕课)
https://www.icourse163.org/
《中国大学MOOC》慕课是汇集了高等教育资源的学习网站,有效解决了除了小初高学生之外的大学生群体学习问题,海量免费优质课程应有尽有,四六级考试、考研、雅思精准对接,视频、直播、考试、讨论,高效学习不在话下。
5、美食杰
https://www.meishij.net/
美食菜谱网站,收天下美食菜谱,提供丰富的菜谱家常菜做法大全,全国各地菜谱大全,精美的美食图片,生动的美食视频让你最快的学会各类家常菜谱。
6、考试酷
https://www.examcoo.com/index
这个网站真的很酷,里面有各种考试题,都是非常实用,借鉴性非常强,无论是学历考试、成人考试、公务员、职称考试等都有考题可以让你参考,支持在线模拟考试。
以上是我的回答,希望可以帮助到你!
IT网络运维:扎根IT行业十几年的资深高级网络工程师, 分享IT网络运维技术知识资源, 用冷静、专业的视角带给你不一样的认知。
Linux下PHP程序使用多线程?
引言
别的语言都在一窝蜂地搞编译,搞虚拟机,搞多线程,提高效率。我们整天敲 PHP 代码,除了 Nginx 调用 php-fpm 拉取 PHP 文件的解析外,对于多线程有多少了解?
请问,PHP 能不能使用多线程?如果能,怎么实现的?
本文就带你打开这个疑问。
学习时间这个问题的答案是肯定的,PHP 可以使用多线程。我们借助于 pthreads 实现:
该项目提供了与基于Posix Threads的PHP兼容的多线程。
有啥亮点没?下面这些全是:
一个易于使用,快速学习的面向对象的PHP 7.2线程API执行所有预定义和用户声明的方法和函数,包括闭包。包括现成的同步无限的可能性...需要一些扩展的基础的支持,PHP 7.2 及以上版本,ZTS Enabled ( Thread Safety ),Posix Threads Implementation。
还有一些注意事项:
pthreads是一个面向对象的API,它提供了PHP中多线程所需的所有工具。 PHP应用程序可以创建,读取,写入,执行并与线程,辅助对象和线程对象同步。 警告:pthreads扩展名不能在Web服务器环境中使用。 因此,PHP中的线程应仅保留给基于CLI的应用程序使用。
命令行应用脚本完全适用,这也与我们编写 Bash,Python等等类似。下面举一个例子:
然后执行一次:
再执行一次:
实际运用上面的代码是个示例性质的应用,仅仅是为了展示多线程运行。下面来一段业务代码。
该类模拟一个url请求。因为网络问题,有可能失败,或者不确定返回时间,所以适合并行。接着我们使用该类进行多网络请求并发。为了减轻系统负荷,使用微秒延时。
$t = microtime(true);
$g = new AsyncWebRequest(sprintf("http://www.google.com/?q=%s", rand() * 10));
实例化之后,我们发起请求:
if ($g->start()) {
printf("Request took %f seconds to start ", microtime(true) $t);
while ( $g->isRunning() ) {
echo "."; usleep(100);
}
if ($g->join()) {
printf(" and %f seconds to finish receiving %d bytes\n", microtime(true) $t, strlen($g->data));
} else
printf(" and %f seconds to finish, request failed\n", microtime(true) $t);
}
其他方案如果不用 pthreads 库提供的能力,该怎么写并行的多任务呢?其实 PHP 提供了一个 popen 函数,用于打开进程文件指针。
popen 返回一个和 fopen 所返回的相同的文件指针,只不过它是单向的(只能用于读或写)并且必须用 pclose 来关闭。此指针可以用于 fgets,fgetss 和 fwrite。 当模式为 'r',返回的文件指针等于命令的 STDOUT,当模式为 'w',返回的文件指针等于命令的 STDIN。
直接上代码:
for ($i=0; $i<10; $i++) { // 打开10个进程 for ($j=0; $j<10; $j++) { $pipe[$j] = popen('script2.php', 'w'); } // 等待完成 for ($j=0; $j<10; ++$j) { pclose($pipe[$j]); } }
大家看到了实现的方法与 pthreads 完全不同,这段代码仍然是阻塞运行,只不过同时打开10个进程,并行运行。
并行与多线程完全不同。不过,可视作一个简单的解决方案吧。
写在最后经过上述两种实现方法,大家应该对于多线程,多进程,并行这些概念有一些认识了。
Happy coding :_)
我是 @程序员小助手 ,持续分享编程知识,欢迎关注。
PHP文件可以放在vue?
PHP文件可以放到网站目录任何地方,只要你访问时路径不要写错。
但是你既然用了vue,说明是打算前后端分离的,那么建议分开部署。
以你PHP文件都运行不起来的情况,还是先夯实基础再说吧。
opcache怎么清除缓存?
opcache.enable 启用操作码缓存,默认为“1”
如果禁用此选项,则不会优化和缓存代码回。 在运行期使用 ini_set() 函数只能禁答用 opcache.enable 设置,不可以启用此设置。 如果在脚本中尝试启用此设置项会产生警告。
opcache.enable_cli 仅针对 CLI 版本的 PHP 启用操作码缓存。
通常被用来测试和调试。
opcache.revalidate_freq=0 检查脚本时间戳是否有更新的周期,以秒为单位。
设置为 0 会导致针对每个请求, OPcache 都会检查脚本更新。
opcache.validate_timestamps=0 如果启用,那么 OPcache 会每隔 opcache.revalidate_freq 设定的秒数 检查脚本是否更新。
如果禁用此选项,你必须使用 opcache_reset() 或者 opcache_invalidate() 函数来手动重置 OPcache,也可以 通过重启 Web 服务器来使文件系统更改生效。
PHP的优缺点是什么?
本人做程序较长时间了,下面是一些个人的观点,不喜勿喷: 优点和缺点:
1:学习简单,做为一种脚本语言,学习简单是必须的!同样的,作为一种脚本语言,效率问题,永远是痛点,特别是复杂的运算
2:语法较随意,同样的,语法的随意性,使得在阅读没有注释的代码时,无法很清楚的明白到底是什么意思,比如Java,变量的类型是固定的,而php则前面可以是string,后面直接成array都没关系
3:php本身不支持多线程(swoole除外)
4:php没有直接操作内存的函数(至少本人不知道,6还没研究,不知道有没)
5:作为一种弱语言,php也算很好了,比之perl等也不错
6: php可以说应用范围很狭窄(个人理解,除了网页之外,好像没什么其他用途了,如果内嵌在游戏中那么python是不错的选择,cli也能凑合,),当然,我把php做的server-api这种模式也理解为是网页! 据说php6出来之后效率会提高很多,用了比较好的内存分配算法,但目前出来的是alpha版本,有很大的不稳定性 以上是个人见解,不喜勿喷!谢绝私信骂人!谢谢