第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

使用 php 解析 aptitude 搜索

使用 php 解析 aptitude 搜索

PHP
慕絲7291255 2023-10-15 15:30:42
我正在使用 PHP 和 jquery 構建一個 UI,它允許某人輸入字符串并進行搜索apt search我想要做的是分離(使用 php)packaga name,就在包和架構的行the architecture之后/和正下方,這樣我就可以將此數據推送到 JSON 集合中并將其返回給 jQuery。description of the package我正在執(zhí)行以下命令:$data=shell_exec("sudo apt search $searchString")我可以使用爆炸獲取包名稱和架構,/但不知道如何獲取下面的行以下是此搜索的示例輸出php:wwwconfig-common/bionic 0.3.0 all  Debian web auto configurationxine-ui/bionic 0.99.9-1.3 amd64  the xine video player, user interfacexjed/bionic 1:0.99.19-7 amd64  editor for programmers (x11 version)xmlsysd/bionic 2.6.0-0ubuntu4 amd64  wulfware daemon to extract data from cluster nodesyasat/bionic 848-1ubuntu1 all  simple stupid audit toolyhsm-validation-server/bionic 1.2.0-1 all  Validation server using YubiHSMyrmcds/bionic 1.1.8-1.1 amd64  memcached compatible KVS with master/slave replicationyubikey-server-c/bionic 0.5-1build3 amd64  Yubikey validation serveryubikey-val/bionic 2.38-2 all  One-Time Password (OTP) validation server for YubiKey tokenszabbix-frontend-php/bionic 1:3.0.12+dfsg-1 all  network monitoring solution - PHP front-endzendframework/bionic 1.12.20+dfsg-1ubuntu1 all  powerful PHP frameworkzendframework-bin/bionic 1.12.20+dfsg-1ubuntu1 all  binary scripts for zendframework感謝您的幫助!更新:我可以使用爆炸“/”獲取包名稱和體系結構,但我不知道如何獲取下面的行。我想我能找到一個漂亮的解決方案
查看完整描述

1 回答

?
慕哥6287543

TA貢獻1831條經驗 獲得超10個贊

這里有幾種方法可以做到這一點。


一種是使用 array_map 進行爆炸(您可以使用普通的 foreach 代替),另一種方法是使用正則表達式。


<?php

$str = 'wwwconfig-common/bionic 0.3.0 all

  Debian web auto configuration


...';

  

  

$packages = array_map(function($item) {

    

    $item = array_map('trim', explode("\n", trim($item)));

    $line = explode(" ", $item[0]);

    $line[0] = explode("/", $item[0]);

    

    return [

        'package' => $line[0][0],

        'distro' => $line[0][1],

        'version' => $line[1],  

        'arch' => $line[2], 

        'desc' => $item[1]

    ];

}, explode("\n\r", $str));

或者使用正則表達式,


preg_match_all('#(?<package>.*?)/(?<distro>.*?) (?<version>.*?) (?<arch>.*?)\n  (?<desc>.*?)\n\r#', $str, $packages);

$result = [];

foreach ($packages['package'] as $key => $value) {

    $result[] =  [

        'package' => $packages['package'][$key],

        'distro' =>  $packages['distro'][$key],

        'version' =>  $packages['version'][$key],

        'arch' =>  $packages['arch'][$key],

        'desc' =>  $packages['desc'][$key]

    ];

}


print_r($result);

兩者產生相同的結果:


Array

(

    [0] => Array

        (

            [package] => wwwconfig-common

            [distro] => bionic

            [version] => 0.3.0

            [arch] => all

            [desc] => Debian web auto configuration

        )


    [1] => Array

        (

            [package] => xine-ui

            [distro] => bionic

            [version] => 0.99.9-1.3

            [arch] => amd64

            [desc] => the xine video player, user interface

        )


    [2] => Array

        (

            [package] => xjed

            [distro] => bionic

            [version] => 1:0.99.19-7

            [arch] => amd64

            [desc] => editor for programmers (x11 version)

        )


    [3] => Array

        (

            [package] => xmlsysd

            [distro] => bionic

            [version] => 2.6.0-0ubuntu4

            [arch] => amd64

            [desc] => wulfware daemon to extract data from cluster nodes

        )


    [4] => Array

        (

            [package] => yasat

            [distro] => bionic

            [version] => 848-1ubuntu1

            [arch] => all

            [desc] => simple stupid audit tool

        )


    [5] => Array

        (

            [package] => yhsm-validation-server

            [distro] => bionic

            [version] => 1.2.0-1

            [arch] => all

            [desc] => Validation server using YubiHSM

        )


    [6] => Array

        (

            [package] => yrmcds

            [distro] => bionic

            [version] => 1.1.8-1.1

            [arch] => amd64

            [desc] => memcached compatible KVS with master/slave replication

        )


    [7] => Array

        (

            [package] => yubikey-server-c

            [distro] => bionic

            [version] => 0.5-1build3

            [arch] => amd64

            [desc] => Yubikey validation server

        )


    [8] => Array

        (

            [package] => yubikey-val

            [distro] => bionic

            [version] => 2.38-2

            [arch] => all

            [desc] => One-Time Password (OTP) validation server for YubiKey tokens

        )


    [9] => Array

        (

            [package] => zabbix-frontend-php

            [distro] => bionic

            [version] => 1:3.0.12+dfsg-1

            [arch] => all

            [desc] => network monitoring solution - PHP front-end

        )


    [10] => Array

        (

            [package] => zendframework

            [distro] => bionic

            [version] => 1.12.20+dfsg-1ubuntu1

            [arch] => all

            [desc] => powerful PHP framework

        )


)


查看完整回答
反對 回復 2023-10-15
  • 1 回答
  • 0 關注
  • 143 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號