真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

phpcli采集數(shù)據(jù) PHP數(shù)據(jù)采集

Php cli是守護(hù)進(jìn)程的嗎

php_cli模式簡(jiǎn)介

創(chuàng)新互聯(lián)2013年至今,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項(xiàng)目做網(wǎng)站、網(wǎng)站建設(shè)網(wǎng)站策劃,項(xiàng)目實(shí)施與項(xiàng)目整合能力。我們以讓每一個(gè)夢(mèng)想脫穎而出為使命,1280元和順做網(wǎng)站,已為上家服務(wù),為和順各地企業(yè)和個(gè)人服務(wù),聯(lián)系電話:028-86922220

php-cli是php Command Line Interface的簡(jiǎn)稱,如同它名字的意思,就是php在命令行運(yùn)行的接口,區(qū)別于在Web服務(wù)器上運(yùn)行的php環(huán)境(php-cgi, isapi等) 也就是說(shuō),php不單可以寫(xiě)前臺(tái)網(wǎng)頁(yè),它還可以用來(lái)寫(xiě)后臺(tái)的程序。 PHP的CLI shell腳本適用于所有的PHP優(yōu)勢(shì),使創(chuàng)建要么支持腳本或系統(tǒng)甚至與GUI應(yīng)用程序的服務(wù)端!——注:windows和linux下都支持php_cli模式

PHP-cli應(yīng)用場(chǎng)景:

1.多線程應(yīng)用

這方面的好處,引用鳥(niǎo)哥的話:

優(yōu)點(diǎn):

1. 使用多進(jìn)程, 子進(jìn)程結(jié)束以后, 內(nèi)核會(huì)負(fù)責(zé)回收資源

2. 使用多進(jìn)程,子進(jìn)程異常退出不會(huì)導(dǎo)致整個(gè)進(jìn)程Thread退出. 父進(jìn)程還有機(jī)會(huì)重建流程.

3. 一個(gè)常駐主進(jìn)程, 只負(fù)責(zé)任務(wù)分發(fā), 邏輯更清楚.

php的多線程—沒(méi)錯(cuò)就是php多線程應(yīng)用,雖然大家都普遍認(rèn)為php沒(méi)有多線程(curl屬于模擬多線程而不是真實(shí)的),但是在php_cli模式下的php徹底的是屬于多線程。這個(gè)時(shí)候php屬于linux的一個(gè)守護(hù)進(jìn)程。 在本人之前寫(xiě)過(guò)的《PHP多線程批量采集下載美女圖片(續(xù))》的時(shí)候在采集程序里雖然使用curl來(lái)模擬多線程,但是在瀏覽器執(zhí)行的時(shí)候也是會(huì)遇到執(zhí)行超時(shí)或內(nèi)存abort而導(dǎo)致程序中斷,(要嘗試幾次才可以徹底成功),但是如果在php-cli模式下執(zhí)行,你就會(huì)發(fā)現(xiàn)這個(gè)程序執(zhí)行的很快,php多線程執(zhí)行的優(yōu)勢(shì)被徹底表現(xiàn)出來(lái)了.

備注:這種多線程方式不是很成熟,不適合大規(guī)模的生成應(yīng)用,偶爾使用還是可以的

2.定時(shí)執(zhí)行php程序

利用linux的cron方式,那么這個(gè)方式是如何定時(shí)執(zhí)行php程序?請(qǐng)看下文

3.開(kāi)發(fā)桌面程序

你可以做您的Windows或Linux中使用PHP的圖形用戶界面(GUI)應(yīng)用!所有你需要的是PHP的命令行接口和一包GTK。這將允許建立真正的便攜式圖形用戶界面應(yīng)用程序(呵呵,之前只是知道php可以做桌面程序,現(xiàn)在才知道是使用php_cli模式),并且不需要學(xué)習(xí)別的。

4.編寫(xiě)PHP的shell腳本

如果你不會(huì)bash shell或者Perl等的使用,但是你又需要一些腳本去執(zhí)行的時(shí)候,怎么辦?這個(gè)時(shí)候你完全可以使用你熟悉的php編寫(xiě)shell腳本,這個(gè)時(shí)候你是不是突然感覺(jué)PHP是不是太強(qiáng)大了!—–真正做到一種語(yǔ)言,到處開(kāi)發(fā)!

PHP_CLI使用方法

win下面的執(zhí)行方法:

假設(shè)php.exe 在D:xamppphp在dos命令在可以這個(gè)執(zhí)行:

復(fù)制代碼 代碼如下:D:\xamppphpphp.exe D:\xampphtdocstest.php

就可以執(zhí)行test.php這個(gè)文件了 。這里推薦win平臺(tái)下xampp集成環(huán)境,真正比wamp強(qiáng)大N倍,這個(gè)集成包可以直接進(jìn)入dos模式。

linux下php_cli使用

首先找到你安裝php的路徑,以我為例:

php安裝在路徑/usr/local/php/bin/php下

復(fù)制代碼 代碼如下:/usr/local/php/bin/php /usr/local/apache/htdocs/a.php ?

就可以執(zhí)行a。php文件

PHP_CLI編程需知

如何檢測(cè)環(huán)境支持php_cli模式?

復(fù)制代碼 代碼如下:

?php

//方法1

if (PHP_SAPI === 'cli')

{

// ...

}

//方法2

if (php_sapi_name() === 'cli')

{

// ...

}

PHP_ClI如何接收參數(shù)?

默認(rèn)情況下/usr/local/php/bin/php接收參數(shù)是$argv,這個(gè)變量是固定的!在php文件中var_dump($argv);

得到下面結(jié)果:

可以寫(xiě)個(gè)簡(jiǎn)單的處理函數(shù)把這個(gè)方式轉(zhuǎn)化為大家常用的GET/post的參數(shù)模式。

簡(jiǎn)單代碼:

復(fù)制代碼 代碼如下:

?php

function parseArgs($argv){

array_shift($argv);

$out = array();

foreach ($argv as $arg){

if (substr($arg,0,2) == '--'){

$eqPos = strpos($arg,'=');

if ($eqPos === false){

$key = substr($arg,2);

$out[$key] = isset($out[$key]) ? $out[$key] : true;

} else {

$key = substr($arg,2,$eqPos-2);

$out[$key] = substr($arg,$eqPos+1);

}

} else if (substr($arg,0,1) == '-'){

if (substr($arg,2,1) == '='){

$key = substr($arg,1,1);

$out[$key] = substr($arg,3);

} else {

$chars = str_split(substr($arg,1));

foreach ($chars as $char){

$key = $char;

$out[$key] = isset($out[$key]) ? $out[$key] : true;

}

}

} else {

$out[] = $arg;

}

}

return $out;

}

var_dump($argv);

var_dump(parseArgs($argv));exit;

執(zhí)行結(jié)果:

當(dāng)然實(shí)現(xiàn)的方法不止一個(gè),大家可以嘗試其他方法實(shí)現(xiàn)!

例外關(guān)于php的cli還有很多參數(shù)可以加入:具體可以參考:

關(guān)于定時(shí)執(zhí)行

cron是一個(gè)linux下的定時(shí)執(zhí)行工具,可以在無(wú)需人工干預(yù)的情況下運(yùn)行作業(yè),周期性作業(yè),比如備份數(shù)據(jù) 打開(kāi)/etc/crontab,添加:

復(fù)制代碼 代碼如下:

/usr/bin/php -f /data/htdocs/test.php

php怎么使用隊(duì)列來(lái)處理批量采集

首先,隊(duì)列的作用不是批量處理,而是延時(shí)處理,也叫異步處理

要做批量采集的話,首先你要?jiǎng)澐趾脜^(qū)間,可以用php的多進(jìn)程,也可以用php的cli模式做,只要數(shù)據(jù)不竄就行

php cli模式如何獲取session

原生態(tài)php的session簡(jiǎn)單使用如下:

sesstion_start(); // 首先開(kāi)啟session

$_SESSION['user'] = 'username'; // 把username存在$_SESSION['user'] 里面

echo $_SESSION['user']; // 直接輸出 username

session_destroy(); // 銷(xiāo)毀session


新聞標(biāo)題:phpcli采集數(shù)據(jù) PHP數(shù)據(jù)采集
分享鏈接:http://weahome.cn/article/docdgji.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部