要实现一个广播功能,广播的表里有内容,开始时间,结束时间,间隔时间。
如图:
我用do while 做定时处理,代码如下:
do{ $ti = strtotime(date('Y-m-d H:i:s'));//当前时间戳 $array = $this->all_broadcast();//广播数组 foreach($array as $key => $val){ $intervals = 60;//(秒)间隔时间 $content = urlencode($val['content']);//广播内容 if($ti >= $val['starttime'] && $ti <= $val['endtime']){//判断当前时间是否大于等于开始时间并且小于等于结束时间 $hello = $this->get_curl($content);//调用广播的方法开始广播 sleep($intervals);//间隔时间调用一次 } fclose($fp); } sleep(10);//10秒 }while(true);
现在的问题是:如果广播是一条的话,可以根据间隔时间来按时广播。如果广播有好几条,那他就不能在同一时间调用get_curl方法N次。这要怎么解决呢?
怎样能让他们根据各自的开始时间、结束时间、间隔时间,互不干扰地进行播放呢?
这是不是需要PHP中的并行来实现呢?
回复讨论(解决方案)
这个问题貌似涉及到了多线程,如果在java中可以做到,弄多个线程让它跑就是了。
php不支持多线程。但是可以用一个苯点的办法实现你要的需求就是:定时任务;
linux下可以用crontab来实现。
试试 curl_multi 吧
这个问题貌似涉及到了多线程,如果在java中可以做到,弄多个线程让它跑就是了。
php不支持多线程。但是可以用一个苯点的办法实现你要的需求就是:定时任务;
linux下可以用crontab来实现。 不是linux的系统,win下怎么实现呢?能点建议吧!
1086 和 1087 的开始时间相同
你打算混合输出这两条内容?
这个问题貌似涉及到了多线程,如果在java中可以做到,弄多个线程让它跑就是了。
php不支持多线程。但是可以用一个苯点的办法实现你要的需求就是:定时任务;
linux下可以用crontab来实现。 不是linux的系统,win下怎么实现呢?能点建议吧!
windows装一个crontab工具
1086 和 1087 的开始时间相同
你打算混合输出这两条内容?
是的。他们互不干扰地输入各种预先设定好的!
不知道什么意思,
sleep(10);//10秒
这个不会在网页上显示内容 啊只有10 过后才会显示,一次性显示,
你的好像是死循环吧
我也是新人
并行未必需要用多线程~ 而且php的多线程库在cgi下鬼知道会发生什么情况,绝对要好好测试下,有兴趣的同学试试。
回到正题,楼主可能需要的是异步~
比如程序运行到某一刻发一条通知到某个处理单元(实现方式先不论),然后也不等待这个处理单元的处理结果就直接向下执行,这样就能省下时间~
关于这个,鸟哥讨论过几种实现方式~
http://www.laruence.com/2008/04/14/318.html
另,其中用curl的办法有点小变化,我在评论里加了一笔。
翻了一下文档~ 发现curl 有了毫秒级的超时设置~CURLOPT_CONNECTTIMEOUT_MS 这个选项备注: Added in cURL 7.16.2. Available since PHP 5.2.3我现在用的cURL 7.24 和 php5.4 ~ 暗爽~
当然,时隔这么久,也许有其它更好的办法~ http://www.swoole.com/ 就是一例,私以为这个堪成大器,phper可以不用再跪着写代码了~
好吧,有点不太习惯CSDN自带的文字编辑~ 凑合看吧~
并行未必需要用多线程~ 而且php的多线程库在cgi下鬼知道会发生什么情况,绝对要好好测试下,有兴趣的同学试试。
回到正题,楼主可能需要的是异步~
比如程序运行到某一刻发一条通知到某个处理单元(实现方式先不论),然后也不等待这个处理单元的处理结果就直接向下执行,这样就能省下时间~
关于这个,鸟哥讨论过几种实现方式~
http://www.laruence.com/2008/04/14/318.html
另,其中用curl的办法有点小变化,我在评论里加了一笔。
翻了一下文档~ 发现curl 有了毫秒级的超时设置~CURLOPT_CONNECTTIMEOUT_MS 这个选项备注: Added in cURL 7.16.2. Available since PHP 5.2.3我现在用的cURL 7.24 和 php5.4 ~ 暗爽~
当然,时隔这么久,也许有其它更好的办法~ http://www.swoole.com/ 就是一例,私以为这个堪成大器,phper可以不用再跪着写代码了~
哎!我也看过这个swoole,可看那代码,不像是PHP的啊?而且我复制到代码里都报错。不会用啊这是!

PHP和Python各有優勢,適合不同場景。 1.PHP適用於web開發,提供內置web服務器和豐富函數庫。 2.Python適合數據科學和機器學習,語法簡潔且有強大標準庫。選擇時應根據項目需求決定。

PHP是一種廣泛應用於服務器端的腳本語言,特別適合web開發。 1.PHP可以嵌入HTML,處理HTTP請求和響應,支持多種數據庫。 2.PHP用於生成動態網頁內容,處理表單數據,訪問數據庫等,具有強大的社區支持和開源資源。 3.PHP是解釋型語言,執行過程包括詞法分析、語法分析、編譯和執行。 4.PHP可以與MySQL結合用於用戶註冊系統等高級應用。 5.調試PHP時,可使用error_reporting()和var_dump()等函數。 6.優化PHP代碼可通過緩存機制、優化數據庫查詢和使用內置函數。 7

PHP成為許多網站首選技術棧的原因包括其易用性、強大社區支持和廣泛應用。 1)易於學習和使用,適合初學者。 2)擁有龐大的開發者社區,資源豐富。 3)廣泛應用於WordPress、Drupal等平台。 4)與Web服務器緊密集成,簡化開發部署。

PHP在現代編程中仍然是一個強大且廣泛使用的工具,尤其在web開發領域。 1)PHP易用且與數據庫集成無縫,是許多開發者的首選。 2)它支持動態內容生成和麵向對象編程,適合快速創建和維護網站。 3)PHP的性能可以通過緩存和優化數據庫查詢來提升,其廣泛的社區和豐富生態系統使其在當今技術棧中仍具重要地位。

在PHP中,弱引用是通過WeakReference類實現的,不會阻止垃圾回收器回收對象。弱引用適用於緩存系統和事件監聽器等場景,需注意其不能保證對象存活,且垃圾回收可能延遲。

\_\_invoke方法允許對象像函數一樣被調用。 1.定義\_\_invoke方法使對象可被調用。 2.使用$obj(...)語法時,PHP會執行\_\_invoke方法。 3.適用於日誌記錄和計算器等場景,提高代碼靈活性和可讀性。

Fibers在PHP8.1中引入,提升了並發處理能力。 1)Fibers是一種輕量級的並發模型,類似於協程。 2)它們允許開發者手動控制任務的執行流,適合處理I/O密集型任務。 3)使用Fibers可以編寫更高效、響應性更強的代碼。

PHP社區提供了豐富的資源和支持,幫助開發者成長。 1)資源包括官方文檔、教程、博客和開源項目如Laravel和Symfony。 2)支持可以通過StackOverflow、Reddit和Slack頻道獲得。 3)開發動態可以通過關注RFC了解。 4)融入社區可以通過積極參與、貢獻代碼和學習分享來實現。


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

禪工作室 13.0.1
強大的PHP整合開發環境

WebStorm Mac版
好用的JavaScript開發工具

MantisBT
Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。

SublimeText3 Linux新版
SublimeText3 Linux最新版

記事本++7.3.1
好用且免費的程式碼編輯器