分类 Demo 下的文章

“各种示例”

要读取网页上一个json内的数据内容,先将json内容保存为了多个json文件,然后将json字段提取出来保存在其他文件里面。

<?php
if(0)
{
 $prefix="rd";      
 $jsonfile = "rd-1.json,rd-2.json";
}
else
{
 $prefix="all"; 
 $jsonfile = "all-1.json,all-2.json,all-3.json,all-4.json,all-5.json,all-6.json,all-7.json,all-8.json";
}
$file = $prefix."-".date('Ymd').".txt"; 
$arr = explode(',', $jsonfile);
for($idx=0;$idx<count($arr);$idx++)
{
    $json=file_get_contents($arr[$idx]);
    $J=json_decode($json);   
    echo "通过下面的信息就可以获取里面的信息了</br>";  
    print_r($J);   
    printf(count($J->Data->users));
    for($i=0;$i<count($J->Data->users);$i++)
    {
        print_r($J->Data->users[$i]->name."\r\n"); 
        file_put_contents($file,$J->Data->users[$i]->name."\r\n", FILE_APPEND);
        
    }  
}
?> 

php 提取json字段 参考了下面这个

<?php   
$json=  
'{  
"item1":  
{"item11":{"n":"chenling","m":"llll"},"sex":"男","age":"25"},  
"item2":  
{"item21":"ling","sex":"女","age":"24"}  
}';    
$J=json_decode($json);   
echo "通过下面的信息就可以获取里面的信息了</br>";  
print_r($J);  
print_r("</br>");  
echo "测试访问对象内元素</br>";  
print_r($J->item1->item11->n."</br>");   
print_r($J->item1->sex."</br>");   
//注意不是标准的json  
print_r($J->item2->age."</br>");   
?>  

Referenced from:https://blog.csdn.net/zhoushengbin3/article/details/8174123
php 提取json字段 搜索到了下面这个

<?php
    $json = '{"state":"1","info":"登录成功"}';
    $arr = (array) json_decode($json,true);
    echo '状态码:'. $arr['state'];
 
    $json2 = '{"data":{"date":"2019-02-09","team":"第二学期"}}';
    $arr2 = (array) json_decode($json,true);
    echo '日期:'. $arr2['data']['date'].'学期:'.$arr2['data']['team'];
?>

Referenced from:https://blog.csdn.net/qq_17497931/article/details/87733372

func strtime2unix(strtime string) int {
    tm2, _ := time.Parse("20060102150405", strtime)
    fmt.Println(tm2.Unix())
    return int(tm2.Unix())
}

c/c++中使用mktime时,有时候会返回-1错误,主要的原因是输入了非法值,下面是一些常用的示例

#include <bits/stdc++.h>
#include <ctime>
#include <cstdio>
using namespace std;
//g++ mktime.cpp -std=c++11 -o mktime
int main(int argc, char* argv[])
{
    cout<<"mktime example"<<endl;
    struct tm stm;
    stm.tm_sec = 0;
    stm.tm_min = 0;
    stm.tm_hour = 0;
    stm.tm_mday = 1;
    stm.tm_mon = 0;
    stm.tm_year = 70;
    time_t ret;
    setenv("TZ","Etc/GMT",1);
    tzset();
    ret = mktime(&stm);
    printf("Etc/GMT ret = %ld\n", ret);
    setenv("TZ","Europe/Berlin",1);
    tzset();
    ret = mktime(&stm);
    printf("UTC+01:00 ret = %ld\n", ret);
    setenv("TZ","Atlantic/Azores",1);
    tzset();
    ret = mktime(&stm);
    printf("UTC-01:00 ret = %ld\n", ret);
    setenv("TZ","Asia/Shanghai",1);
    tzset();
    ret = mktime(&stm);
    printf("Asia/Shanghai ret = %ld\n", ret);
}

编译,运行,结果

g++ mktime.cpp -std=c++11 -o mktime
./mktime
mktime example
Etc/GMT ret = 0
UTC+01:00 ret = -3600
UTC-01:00 ret = 3600
Asia/Shanghai ret = -28800
(UTC-12:00) 国际日期变更线西Etc/GMT+12
(UTC-11:00) 协调世界时-11Etc/GMT+11
(UTC-10:00) 夏威夷Pacific/Honolulu
(UTC-09:00) 安克雷奇America/Anchorage
(UTC-08:00) 下加利福尼亚州America/Santa_Isabel
(UTC-08:00) 太平洋时间(美国和加拿大)America/Los_Angeles
(UTC-07:00) 奇瓦瓦,拉巴斯,马萨特兰America/Chihuahua
(UTC-07:00) 亚利桑那America/Phoenix
(UTC-07:00) 山地时间(美国和加拿大)America/Denver
(UTC-06:00) 中美洲America/Guatemala
(UTC-06:00) 中部时间(美国和加拿大)America/Chicago
(UTC-06:00) 萨斯喀彻温America/Regina
(UTC-06:00) 瓜达拉哈拉,墨西哥城,蒙特雷America/Mexico_City
(UTC-05:00) 波哥大,利马,基多America/Bogota
(UTC-05:00) 印地安那州(东部)America/Indiana/Indianapolis
(UTC-05:00) 东部时间(美国和加拿大)America/New_York
(UTC-04:30) 加拉加斯America/Caracas
(UTC-04:00) 大西洋时间(加拿大)America/Halifax
(UTC-04:00) 亚松森America/Asuncion
(UTC-04:00) 乔治敦,拉巴斯,马瑙斯,圣胡安America/La_Paz
(UTC-04:00) 库亚巴America/Cuiaba
(UTC-04:00) 圣地亚哥America/Santiago
(UTC-03:30) 纽芬兰America/St_Johns
(UTC-03:00) 巴西利亚America/Sao_Paulo
(UTC-03:00) 格陵兰America/Godthab
(UTC-03:00) 卡宴,福塔雷萨America/Cayenne
(UTC-03:00) 布宜诺斯艾利斯America/Argentina/Buenos_Aires
(UTC-03:00) 蒙得维的亚America/Montevideo
(UTC-02:00) 协调世界时-2Etc/GMT+2
(UTC-01:00) 佛得角群岛Atlantic/Cape_Verde
(UTC-01:00) 亚速尔群岛Atlantic/Azores
(UTC+00:00) 卡萨布兰卡Africa/Casablanca
(UTC+00:00) 蒙罗维亚,雷克雅未克Atlantic/Reykjavik
(UTC+00:00) 都柏林,爱丁堡,里斯本,伦敦Europe/London
(UTC+00:00) 协调世界时Etc/GMT
(UTC+01:00) 阿姆斯特丹,柏林,伯尔尼,罗马,斯德哥尔摩,维也纳Europe/Berlin
(UTC+01:00) 布鲁塞尔,哥本哈根,马德里,巴黎Europe/Paris
(UTC+01:00) 中非西部Africa/Lagos
(UTC+01:00) 贝尔格莱德,布拉迪斯拉发,布达佩斯,卢布尔雅那,布拉格Europe/Budapest
(UTC+01:00) 萨拉热窝,斯科普里,华沙,萨格勒布Europe/Warsaw
(UTC+01:00) 温得和克Africa/Windhoek
(UTC+02:00) 雅典,布加勒斯特,伊斯坦布尔Europe/Istanbul
(UTC+02:00) 赫尔辛基,基辅,里加,索非亚,塔林,维尔纽斯Europe/Kiev
(UTC+02:00) 开罗Africa/Cairo
(UTC+02:00) 大马士革Asia/Damascus
(UTC+02:00) 安曼Asia/Amman
(UTC+02:00) 哈拉雷,比勒陀利亚Africa/Johannesburg
(UTC+02:00) 耶路撒冷Asia/Jerusalem
(UTC+02:00) 贝鲁特Asia/Beirut
(UTC+03:00) 巴格达Asia/Baghdad
(UTC+03:00) 明斯克Europe/Minsk
(UTC+03:00) 利雅得Asia/Riyadh
(UTC+03:00) 内罗毕Africa/Nairobi
(UTC+03:30) 德黑兰Asia/Tehran
(UTC+04:00) 莫斯科,圣彼得堡,伏尔加格勒Europe/Moscow
(UTC+04:00) 第比利斯Asia/Tbilisi
(UTC+04:00) 埃里温Asia/Yerevan
(UTC+04:00) 阿布扎比,马斯喀特Asia/Dubai
(UTC+04:00) 巴库Asia/Baku
(UTC+04:00) 路易港Indian/Mauritius
(UTC+04:30) 喀布尔Asia/Kabul
(UTC+05:00) 塔什干Asia/Tashkent
(UTC+05:00) 伊斯兰堡,卡拉奇Asia/Karachi
(UTC+05:30) 斯里加亚渥登普拉Asia/Colombo
(UTC+05:30) 钦奈,加尔各答,孟买,新德里Asia/Kolkata
(UTC+05:45) 加德满都Asia/Kathmandu
(UTC+06:00) 阿斯塔纳Asia/Almaty
(UTC+06:00) 达卡Asia/Dhaka
(UTC+06:00) 叶卡捷琳堡Asia/Yekaterinburg
(UTC+06:30) 仰光Asia/Yangon
(UTC+07:00) 曼谷,河内,雅加达Asia/Bangkok
(UTC+07:00) 新西伯利亚Asia/Novosibirsk
(UTC+08:00) 克拉斯诺亚尔斯克Asia/Krasnoyarsk
(UTC+08:00) 乌兰巴托Asia/Ulaanbaatar
(UTC+08:00) 北京,重庆,香港,乌鲁木齐Asia/Shanghai
(UTC+08:00) 佩思Australia/Perth
(UTC+08:00) 吉隆坡,新加坡Asia/Singapore
(UTC+08:00) 台北Asia/Taipei
(UTC+09:00) 伊尔库茨克Asia/Irkutsk
(UTC+09:00) 首尔Asia/Seoul
(UTC+09:00) 大阪,札幌,东京Asia/Tokyo
(UTC+09:30) 达尔文Australia/Darwin
(UTC+09:30) 阿德莱德Australia/Adelaide
(UTC+10:00) 霍巴特Australia/Hobart
(UTC+10:00) 雅库茨克Asia/Yakutsk
(UTC+10:00) 布里斯班Australia/Brisbane
(UTC+10:00) 关岛,莫尔兹比港Pacific/Port_Moresby
(UTC+10:00) 堪培拉,墨尔本,悉尼Australia/Sydney
(UTC+11:00) 符拉迪沃斯托克Asia/Vladivostok
(UTC+11:00) 所罗门群岛,新喀里多尼亚Pacific/Guadalcanal
(UTC+12:00) 协调世界时+12Etc/GMT-12
(UTC+12:00) 斐济,马绍尔群岛Pacific/Fiji
(UTC+12:00) 马加丹Asia/Magadan
(UTC+12:00) 奥克兰,惠灵顿Pacific/Auckland
(UTC+13:00) 努库阿洛法Pacific/Tongatapu
(UTC+13:00) 萨摩亚群岛Pacific/Apia

Referenced from:https://jp.cybozu.help/general/zh/admin/list_systemadmin/list_localization/timezone.html

需要注意的是:
time():返回自00:00:00 UTC, January 1, 1970到現在所經過的秒數,注意,是UTC,中文默认时间是CST,也是UTC+08:00

示例文件main.proto

syntax = "proto3";
package main;

message Test {
    string comment = 1;
}

message Example {
    string name = 1;
    int32 age = 2;
    repeated Test t = 3;

    message Label {
        string source = 1;
    }
    repeated Label labels = 4;
}

示例文件main.txt

name: "Larry"
age: 99
t: [{comment: "hello"}, {comment: "world"}]
labels: [{source: "foo"}, {source: "bar"}]

protoc --encode编码

protoc --encode=main.Example main.proto < main.txt > main.bin

查看main.bin的内容

hexdump -C main.bin 

00000000 0a 05 4c 61 72 72 79 10 63 1a 07 0a 05 68 65 6c |..Larry.c....hel|
00000010 6c 6f 1a 07 0a 05 77 6f 72 6c 64 22 05 0a 03 66 |lo....world"...f|
00000020 6f 6f 22 05 0a 03 62 61 72 |oo"...bar|
00000029

protoc --decode编码

protoc --decode=main.Example main.proto < main.bin 

name: "Larry"
age: 99
t {
comment: "hello"
}
t {
comment: "world"
}
labels {
source: "foo"
}
labels {
source: "bar"
}

package main

import (
    "encoding/binary"
    "encoding/hex"
    "fmt"
    "log"
    "strings"

    "golang.org/x/text/encoding/simplifiedchinese"
)

您可以在结果上调用 strings.ToUpper() :

src := []byte("const.net.cn")
s := hex.EncodeToString(src)
fmt.Println(s)
s = strings.ToUpper(s)
fmt.Println(s)

或者,您可以将 fmt.Sprintf() 与%X动词一起使用:

s = fmt.Sprintf("%X", src)
fmt.Println(s)

函数实现

func string2hex(s string) string {
    src := []byte(s)
    encodedStr := hex.EncodeToString(src)
    encodedStr = strings.ToUpper(encodedStr)
    return encodedStr
}