python wrapper for tshark:
https://pypi.python.org/pypi/...
let button = document.querySelector('button');
let input = document.querySelectorAll('input')[0];
let input$ = Rx.Observable.fromEvent(input, 'keyup')
.pluck('target', 'value');
let button$ = Rx.Observable.fromEvent(button, 'click');
button$.withLatestFrom(input$, (_, data) => data)
.subscribe((data) => console.log(data))
這要看這套API了,看它支持不支持多線程多進(jìn)城調(diào)用,如果它管理不好它使用的資源,就需要你幫他管理啦。
數(shù)組也是對(duì)象,不信[] instanceof Object
試試。for-in
遍歷的是鍵,而for-of
遍歷的是可迭代對(duì)象的值,你可以用for-in
遍歷對(duì)象和數(shù)組,但只能用for-of
遍歷數(shù)組。
經(jīng)過(guò)一個(gè)下午的折騰,上周五還是發(fā)現(xiàn)出現(xiàn)該異常情況的原因。概括來(lái)說(shuō)還是中文轉(zhuǎn)編碼的問(wèn)題,即utf-8轉(zhuǎn)gbk出現(xiàn)的小部分行缺少空格或者雙引號(hào)的問(wèn)題。
出現(xiàn)問(wèn)題的原因:
在進(jìn)行導(dǎo)出的過(guò)程中,接收其他程序傳過(guò)來(lái)的數(shù)組參數(shù),均為utf-8編碼,我這邊在調(diào)用fwrite或者fputcvs寫(xiě)入文件的過(guò)程中并沒(méi)有進(jìn)行 iconv("UTF-8", "GB2312//IGNORE", $header),而是將文件保存在了 export目錄下,然后由vuejs做的后臺(tái)調(diào)用位于同application下的一個(gè)共用類(lèi)的 export方法,該方法是這樣的:
public function export()
{
$file = \Request::get('file');
header('Content-Type: application/vnd.ms-excel');
header('Content-Disposition: attachment;filename=export.csv');
header('Cache-Control: max-age=0');
$contents = file_get_contents(\Env::get('runtime_path') . '/export/' . $file);
echo iconv("UTF-8", "GB2312//IGNORE", $contents);
@unlink(RUNTIME_PATH . '/export/' . $filename);
exit;
}
問(wèn)題就出在 echo iconv("UTF-8", "GB2312//IGNORE", $contents); 這句代碼上面,這里看到是對(duì)傳入的整個(gè)文件進(jìn)行轉(zhuǎn)編碼的,這里未進(jìn)行測(cè)試到底多少行的數(shù)據(jù)會(huì)出現(xiàn)缺少逗號(hào)引號(hào)的問(wèn)題。
最終的解決思路是,把共用類(lèi)中對(duì)整個(gè)文件的轉(zhuǎn)編碼放到寫(xiě)入方法中,逐條轉(zhuǎn)編碼就解決了該問(wèn)題。
更改后的代碼:
public static function createCsv($data, $header = [], $filename = '')
{
// 參數(shù)判斷
$data = is_object($data) ? $data->toArray() : $data;
$header = is_array($header) ? $header : [];
$filename = (1 > strlen(trim($filename))) ? 'csv-' : trim($filename);
if (empty($data)) {
return false;
}
// 文件名/目錄
$filename = $filename . date("YmdHis", time()) . rand(1000, 9999) . ".csv";
$dir = Env::get('runtime_path') . '/export/';
if (!is_dir($dir) && !mkdir($dir)) {
return false;
}
// 打開(kāi)文件指針資源
$handle = fopen($dir . $filename, 'w+');
if (!$handle) {
return false;
}
// 寫(xiě)入文件header頭
if (!empty($header)) {
foreach ($header as $key => $item) {
$header[$key] = iconv("UTF-8", "GB2312//IGNORE", $item);
}
$res = fputcsv($handle, $header);
if (!$res) {
return false;
}
}
// 判斷header是索引數(shù)組還是關(guān)聯(lián)數(shù)組
$is_assoc = array_keys($header) !== range(0, count($header) - 1);
// 寫(xiě)入文件內(nèi)容
$frequency = 0; // 頻率
$limit = 100000;
foreach ($data as $datum) {
$frequency++;
if ($limit == $frequency) {
// 刷新輸出buffer
ob_flush();
flush();
$frequency = 0;
}
// 如果是關(guān)聯(lián)數(shù)組,則獲取內(nèi)容中和頭部key相對(duì)應(yīng)的值
if ($is_assoc) {
$csv = "";
foreach(array_keys($header) as $item) {
$datum[$item] = iconv("UTF-8", "GB2312//IGNORE", $item);
$val = str_replace('"', '""', $datum[$item]); // 將單個(gè)雙引號(hào)替換為兩個(gè)雙引號(hào)
$csv .= '"' . $val . '",'; // 為每個(gè)字符增加雙引號(hào),并添加逗號(hào)分割符
}
$csv = substr($csv, 0, -1); // 去掉每行最后一個(gè)逗號(hào)
$csv .= "\n"; // 添加換行符
$res = @fwrite($handle, $csv);
} else {
$res = fputcsv($handle, $datum);
}
if (!$res) {
return false;
}
}
// 關(guān)閉指針資源
fclose($handle);
return Url::build('erp/Common/export', 'file=' . $filename);
}
public function export()
{
$file = \Request::get('file');
header('Content-Type: application/vnd.ms-excel');
header('Content-Disposition: attachment;filename=export.csv');
header('Cache-Control: max-age=0');
$contents = file_get_contents(\Env::get('runtime_path') . '/export/' . $file);
echo $contents;
exit;
}
調(diào)用步驟:
先調(diào)用createCsv生成文件,再調(diào)用export下載。
———————————————————————分割線——————————————————————
另外一種解決思路:
csv文件直接存儲(chǔ) UTF-8 編碼:
即不需要進(jìn)行 iconv 轉(zhuǎn)編碼,這樣會(huì)有個(gè)小問(wèn)題就是MacOS中的Excel無(wú)法自動(dòng)識(shí)utf-8編碼,中文會(huì)出現(xiàn)亂碼的情況。
原因:
Excel在讀取csv的時(shí)候是通過(guò)讀取文件頭上的bom來(lái)識(shí)別編碼的,如果文件頭無(wú)bom信息,則默認(rèn)按照unicode編碼讀取。(這個(gè)bom是微軟自己定義的一種文件頭部協(xié)定,顧名思義存儲(chǔ)在文件頭部,存儲(chǔ)內(nèi)容就是標(biāo)識(shí)文件編碼的信息。)而我們生成csv的平臺(tái)不一定遵循微軟的bom協(xié)議,導(dǎo)致如果輸出非unicode編碼的csv文件(例如utf-8),并且沒(méi)有生成bom信息的話,Excel自動(dòng)按照unicode編碼讀取,就會(huì)出現(xiàn)亂碼問(wèn)題了。作者:李蛟 鏈接:https://www.zhihu.com/questio...
來(lái)源:知乎 著作權(quán)歸作者所有。商業(yè)轉(zhuǎn)載請(qǐng)聯(lián)系作者獲得授權(quán),非商業(yè)轉(zhuǎn)載請(qǐng)注明出處。
根據(jù)知乎查到的答案,原來(lái)是這里未遵循微軟的bom協(xié)議。原因找到了,解決方案就能出了。
解決方法:
fopen 方法下寫(xiě)入bom頭,這里簡(jiǎn)單寫(xiě)一下步驟
function createCsv($filename, $header, $data) {
$handle = fopen($filename, 'w+');
// 添加BOM,標(biāo)識(shí)為UTF-8格式
fwrite($handle, chr(0xEF).chr(0xBB).chr(0xBF));
// 寫(xiě)入頭部
fputcsv($handle, $header);
// 逐行寫(xiě)入內(nèi)容
foreach ($data as $datum) {
fputcsv($handle, $datum);
}
// 關(guān)閉指針資源
fclose($handle);
}
另外再補(bǔ)充一下 Bom 簡(jiǎn)介
- 在UCS 編碼中有一個(gè)叫做”ZERO WIDTH NO-BREAKSPACE”的字符,它的編碼是FEFF。
- FFFE在UCS中是不存在的字符,所以不應(yīng)該出現(xiàn)在實(shí)際傳輸中。
- UCS規(guī)范建議我們?cè)趥鬏斪止?jié)流前,先傳輸字符”ZERO WIDTH NO-BREAK SPACE”。
- 這樣如果接收者收到FEFF,就表明這個(gè)字節(jié)流是Big-Endian的;
- 如果收到FFFE,就表明這個(gè)字節(jié)流是Little-Endian的。
- 因此字符”ZERO WIDTH NO-BREAK SPACE”又被稱(chēng)作BOM。
- UTF-8不需要BOM來(lái)表明字節(jié)順序,但可以用BOM來(lái)表明編碼方式。
- 字符”ZERO WIDTH NO-BREAK SPACE”的UTF-8編碼是EF BB BF。
- 所以如果接收者收到以EF BB BF開(kāi)頭的字節(jié)流,就知道這是UTF-8編碼了。
- Windows就是使用BOM來(lái)標(biāo)記文本文件的編碼方式的。
該內(nèi)容來(lái)自 http://blog.csdn.net/chaozhi_... 這篇博客
:closeOnClickModal= "false" 前面加一個(gè)冒號(hào)
https://stackoverflow.com/que...
這里告訴你,需要手動(dòng)源碼編譯一波
持續(xù)訪問(wèn)必須快,因?yàn)閚fs網(wǎng)絡(luò)tcp連接在第一次訪問(wèn)時(shí)已經(jīng)建立,后續(xù)的訪問(wèn)復(fù)用此次建立的連接。
間斷訪問(wèn)每一次都會(huì)重新建立tcp連接,過(guò)程會(huì)慢,這取決于nfs響應(yīng)速度。
僅個(gè)人見(jiàn)解。
DataGridView 改變一下`Id`呢、
可能多個(gè)`Id`造成了報(bào)錯(cuò)
1、外邊距的疊加,其實(shí)是特指垂直外邊距的疊加,因?yàn)橐?guī)定水平外邊距是不會(huì)進(jìn)行疊加的。
2、外邊距的疊加原則,可以用通俗的四個(gè)字概括:“弱肉強(qiáng)食”,即都為正值是取較大值。
3、為什么要有外邊距的疊加呢?有一些標(biāo)簽,如<p></p>標(biāo)簽,是默認(rèn)有上下外邊距的。當(dāng)你上下排列數(shù)個(gè)<p>標(biāo)簽時(shí),如果沒(méi)有外邊距的疊加原則,那么就會(huì)出現(xiàn)2倍邊距的尷尬情況。同理,如果你通過(guò)列表渲染輸出數(shù)個(gè)上下排列的子塊級(jí)元素,如果沒(méi)有外邊距的疊加原則,也是會(huì)出現(xiàn)此類(lèi)情況。
自己找到方法了,解決了,代碼如下。
$conditions = array(
'id' => $id
);
$extra = array(
...
);
$service = RecordModel::firstOrNew($conditions);
$service->extra = $extra;
$service->save();
另外這個(gè)方法會(huì)自動(dòng)把沒(méi)有變化的字段去掉,只更新有變化的字段,如果待更新的字段全部未變化則不進(jìn)行Mysql更新操作。
每個(gè)文件里面都給axios設(shè)置了攔截器,產(chǎn)生了全局疊加的效果,最好是用axios.create來(lái)創(chuàng)建一個(gè)實(shí)例來(lái)攔截
沒(méi)辦法獲取, Gizmo 對(duì)象是私有的,但你可以參考 Philippe 的這個(gè)樣例,他有針對(duì)這個(gè)需求寫(xiě)一個(gè) Translate 工具:
排查你的站是不是有什么違法內(nèi)容
所有接口都不支持還是只是這一個(gè)接口的問(wèn)題!
我的也沒(méi)問(wèn)題啊!
是不是有個(gè)中間件沒(méi)有next呢或這看看是不是node的版本.我的8.2
另外再放個(gè)鏈接吧。pyQt不同窗體間的值傳遞
java代碼執(zhí)行順序,了解過(guò)jvm類(lèi)加載機(jī)制的應(yīng)該就會(huì)知道,一個(gè)類(lèi)在加載過(guò)程中會(huì)先加載靜態(tài)的方法和變量,所以上面的代碼最先執(zhí)行的應(yīng)該是static代碼塊,至于這個(gè)mian方法的話我不清楚他和其他的static代碼的加載順序關(guān)系,有不對(duì)的地方還請(qǐng)指出
你需要看看這句話是在什么年代說(shuō)出來(lái)的。
北大青鳥(niǎo)APTECH成立于1999年。依托北京大學(xué)優(yōu)質(zhì)雄厚的教育資源和背景,秉承“教育改變生活”的發(fā)展理念,致力于培養(yǎng)中國(guó)IT技能型緊缺人才,是大數(shù)據(jù)專(zhuān)業(yè)的國(guó)家
北大青鳥(niǎo)中博軟件學(xué)院創(chuàng)立于2003年,作為華東區(qū)著名互聯(lián)網(wǎng)學(xué)院和江蘇省首批服務(wù)外包人才培訓(xùn)基地,中博成功培育了近30000名軟件工程師走向高薪崗位,合作企業(yè)超4
中公教育集團(tuán)創(chuàng)建于1999年,經(jīng)過(guò)二十年潛心發(fā)展,已由一家北大畢業(yè)生自主創(chuàng)業(yè)的信息技術(shù)與教育服務(wù)機(jī)構(gòu),發(fā)展為教育服務(wù)業(yè)的綜合性企業(yè)集團(tuán),成為集合面授教學(xué)培訓(xùn)、網(wǎng)
達(dá)內(nèi)教育集團(tuán)成立于2002年,是一家由留學(xué)海歸創(chuàng)辦的高端職業(yè)教育培訓(xùn)機(jī)構(gòu),是中國(guó)一站式人才培養(yǎng)平臺(tái)、一站式人才輸送平臺(tái)。2014年4月3日在美國(guó)成功上市,融資1
曾工作于聯(lián)想擔(dān)任系統(tǒng)開(kāi)發(fā)工程師,曾在博彥科技股份有限公司擔(dān)任項(xiàng)目經(jīng)理從事移動(dòng)互聯(lián)網(wǎng)管理及研發(fā)工作,曾創(chuàng)辦藍(lán)懿科技有限責(zé)任公司從事總經(jīng)理職務(wù)負(fù)責(zé)iOS教學(xué)及管理工作。
浪潮集團(tuán)項(xiàng)目經(jīng)理。精通Java與.NET 技術(shù), 熟練的跨平臺(tái)面向?qū)ο箝_(kāi)發(fā)經(jīng)驗(yàn),技術(shù)功底深厚。 授課風(fēng)格 授課風(fēng)格清新自然、條理清晰、主次分明、重點(diǎn)難點(diǎn)突出、引人入勝。
精通HTML5和CSS3;Javascript及主流js庫(kù),具有快速界面開(kāi)發(fā)的能力,對(duì)瀏覽器兼容性、前端性能優(yōu)化等有深入理解。精通網(wǎng)頁(yè)制作和網(wǎng)頁(yè)游戲開(kāi)發(fā)。
具有10 年的Java 企業(yè)應(yīng)用開(kāi)發(fā)經(jīng)驗(yàn)。曾經(jīng)歷任德國(guó)Software AG 技術(shù)顧問(wèn),美國(guó)Dachieve 系統(tǒng)架構(gòu)師,美國(guó)AngelEngineers Inc. 系統(tǒng)架構(gòu)師。