php - 从 CURL 响应中获取特定行
问题描述
我正在研究 WHMCS API 并在 curl 中获得响应。我必须从第 25 行准确获取值。响应看起来像这样..
array(1) {
["product"]=>
array(1) {
[0]=>
array(41) {
["id"]=>
int(107) // This is line 25
我必须获取括号内的整数(然后在我的 bash 脚本中将其用作变量)。对于上面的示例,它是 107。
有没有更简单的方法来实现这一点。
======
这是我的 php 文件包含。
<?php
/**
* WHMCS Sample API Call
*
* @package WHMCS
* @author WHMCS Limited <development@whmcs.com>
* @copyright Copyright (c) WHMCS Limited 2005-2016
* @license http://www.whmcs.com/license/ WHMCS Eula
* @version $Id$
* @link http://www.whmcs.com/
*/
// API Connection Details
$whmcsUrl = "https://my.whmcswebsite.net/";
// For WHMCS 7.2 and later, we recommend using an API Authentication Credential pair.
// Learn more at http://docs.whmcs.com/API_Authentication_Credentials
// Prior to WHMCS 7.2, an admin username and md5 hash of the admin password may be used.
$username = "something";
$password = "something";
// Set post values
$postfields = array(
'username' => $username,
'password' => $password,
'action' => 'GetClientsProducts',
'domain' => 'fifi790.mydomain.net',
'responsetype' => 'json',
);
// Call the API
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $whmcsUrl . 'includes/api.php');
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_TIMEOUT, 30);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($postfields));
$response = curl_exec($ch);
if (curl_error($ch)) {
die('Unable to connect: ' . curl_errno($ch) . ' - ' . curl_error($ch));
}
curl_close($ch);
// Decode response
$jsonData = json_decode($response, true);
// Dump array structure for inspection
var_dump($jsonData);
解决方案
如果您只需要变量中第 25 行的数字,您可以使用它sed
var=$(sed -n '25s/.*(\([0-9]*\))/\1/p' $file)
推荐阅读
- windows - 跟踪失败的登录尝试 Windows Server
- prometheus - AlertManager - 根据特定 Jobnames 的路由向不同的接收者发送警报
- java - 序列 #1 的 FIX 消息太低(预期序列 #2)
- java - (Scala)绑定变量在凤凰城中返回无效查询
- javascript - Fix minimum size of 3D globe cesium
- android - React Native Android SDK 包,因为某些许可证尚未被接受(Windows)
- node.js - 我在谷歌云存储中有多个图像,我想将它们压缩为 jpg 格式。压缩如果图像上传到谷歌云存储
- python - 从 azure databricks 中的另一个 ipynb 笔记本导入 ipynb 文件
- reactjs - 数组在函数中检测为空,即使其中有元素
- angular - 如何为不同的环境添加角度构建器/自定义 webpack?