分类 Ubuntu 下的文章

“Ubuntu是以桌面应用为主的Linux发行版,基于Debian。Ubuntu有三个正式版本,包括桌面版、服务器版及用于物联网设备和机器人的Core版。从17.10版本开始,Ubuntu以GNOME为默认桌面环境。 Ubuntu是著名的Linux发行版之一,也是目前最多用户的Linux版本。 ”

<?php
...
$json_string = json_encode($data, JSON_PRETTY_PRINT);
...
?>

Bitmask consisting of JSON_FORCE_OBJECT, JSON_HEX_QUOT, JSON_HEX_TAG, JSON_HEX_AMP, JSON_HEX_APOS, JSON_INVALID_UTF8_IGNORE, JSON_INVALID_UTF8_SUBSTITUTE, JSON_NUMERIC_CHECK, JSON_PARTIAL_OUTPUT_ON_ERROR, JSON_PRESERVE_ZERO_FRACTION, JSON_PRETTY_PRINT, JSON_UNESCAPED_LINE_TERMINATORS, JSON_UNESCAPED_SLASHES, JSON_UNESCAPED_UNICODE, JSON_THROW_ON_ERROR.

https://www.php.net/manual/en/json.constants.php

SON_PRETTY_PRINT (int)
Use whitespace in returned data to format it.

<?php
$xml = simplexml_load_string($xml_string);
$json = json_encode($xml);
$array = json_decode($json,TRUE);
?>

PHP convert XML to JSON

$xml = simplexml_load_file("states.xml");
echo json_encode($xml);

php json to xml

$xml = new SimpleXMLElement('<root/>');
$this->arrayToXml($array, $xml);
function arrayToXml($array, &$xml){
    foreach ($array as $key => $value) {
        if(is_int($key)){
            $key = "e";
        }
        if(is_array($value)){
            $label = $xml->addChild($key);
            $this->arrayToXml($value, $label);
        }
        else {
            $xml->addChild($key, $value);
        }
    }
}

#include <chrono>
#include <iomanip>
#include "bits/stdc++.h"

using namespace std;
using namespace chrono;  

std::uint32_t time_date_stamp = 1484693089;

std::time_t temp = time_date_stamp;
std::tm* t = std::gmtime(&temp);
std::stringstream ss; // or if you're going to print, just input directly into the output stream
ss << std::put_time(t, "%Y-%m-%d %I:%M:%S %p");
std::string output = ss.str();

安装 vcpkg
从 GitHub 存储库下载 vcpkg:

wget -O vcpkg.tar.gz https://github.com/microsoft/vcpkg/archive/master.tar.gz

创建一个新目录来存储 vcpkg 并将tar.gz文件解压缩到其中:

sudo mkdir /opt/vcpkg
sudo tar xf vcpkg.tar.gz --strip-components=1 -C /opt/vcpkg

运行以下命令来构建 vcpkg 本身:

sudo /opt/vcpkg/bootstrap-vcpkg.sh

在/usr/local/bin目录中,我们可以创建一个指向vcpkg命令的符号链接:

sudo ln -s /opt/vcpkg/vcpkg /usr/local/bin/vcpkg

现在vcpkg可以用作所有用户的系统范围命令。我们可以使用以下命令检查 vcpkg 版本:

vcpkg version

tar.gz不再需要该文件,将其删除:

rm -rf vcpkg.tar.gz

测试 vcpkg
我们可以使用vcpkg install命令来构建和安装库。例如,以下命令安装 zlib 库:

sudo vcpkg install zlib:x64-linux

运行以下命令以获取已安装库的列表:

sudo vcpkg list

卸载 vcpkg
如果想彻底删除vcpkg,删除安装目录:

sudo rm -rf /opt/vcpkg

删除符号链接:

sudo rm -rf /usr/local/bin/vcpkg

您还可以删除 vcpkg 缓存和相关目录:

sudo rm -rf /root/.cache/vcpkg
sudo rm -rf /root/.vcpkg
rm -rf ~/.vcpkg

Wget介绍

GNU Wget(常简称为Wget)是一个在网络上进行下载的简单而强大的自由软件,其本身也是GNU计划的一部分。它的名字是“World Wide Web”和“Get”的结合,同时也隐含了软件的主要功能。目前它支持通过HTTP、HTTPS,以及FTP这三个最常见的TCP/IP协议协议下载。
Wget2
源代码库 git.savannah.gnu.org/cgit/wget/wget2.git
网站 www.gnu.org/software/wget/
GNU Wget2 2.0.0 发布于 2021 年 9 月 26 日。比起Wget1.x支持以下协议和技术:

  • HTTP/2
  • HTTP压缩
  • 并行连接
  • 使用HTTP头字段If-Modified-Since
  • TCP Fast Open

wget 下载目录下指定文件扩展名的文件

Usage

wget -r -np -A pdf,doc https://web.cs.ucla.edu/~harryxu/

Result

tree

└── web.cs.ucla.edu
    ├── ~harryxu
    │   ├── papers
    │   │   ├── chianina-pldi21.pdf
    │   │   ├── dorylus-osdi21.pdf
    │   │   ├── genc-pldi20.pdf
    │   │   ├── jaaru-asplos21.pdf
    │   │   ├── jportal-pldi21.pdf
    │   │   ├── li-sigcomm20.pdf
    │   │   ├── trimananda-fse20.pdf
    │   │   ├── vigilia-sec18.pdf
    │   │   ├── vora-asplos17.pdf
    │   │   ├── wang-asplos17.pdf
    │   │   ├── wang-osdi18.pdf
    │   │   ├── wang-osdi20.pdf
    │   │   ├── wang-pldi19.pdf
    │   │   └── zuo-eurosys19.pdf

wget 安全错误 Unable to locally verify the issuer's authority
解决方案1:
获取证书密钥并复制到/etc/ssl/certs。证书可以从cusl.se上面下载[https://curl.se/ca/cacert.pem]。

$ wget https://www.python.org --ca-certificate=/etc/ssl/certsfile

如果您想使用不安全的方式,请尝试解决方案2

解决方案2:

$ wget https://www.python.org --no-check-certificate

或使用 Curl

$ curl https://www.python.org --insecure

wget 保存路径
要让档案自动储存到指令的目录下,则需要借用-P这个参数,可以使用以下的指令

wget -P 目录 网址

举例来说,如果你要放到/root底下,你可以打下列的指令:

wget -P /root 网址
wget -r -p -k -np -nH -nd -P 围棋初级学堂 https://xxx/down/weiqi/