吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 435|回复: 6
收起左侧

[求助] php 正则取相关数据该如何写代码?

[复制链接]
skoy03 发表于 2023-11-15 21:48
X-Limit: current_qps=1; limit_qps=5; current_pv=5268; limit_pv=10000"
请教下,php正则里如何写规则取 current_qps和 current_pv这个数据?

免费评分

参与人数 2吾爱币 +2 热心值 +2 收起 理由
x1aodongddj + 1 + 1 热心回复!
为之奈何? + 1 + 1 我很赞同!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

丶七年 发表于 2023-11-15 22:05
[PHP] 纯文本查看 复制代码
<?php

$pattern = '/current_qps=(\d+).*?current_pv=(\d+)/';

$string = 'X-Limit: current_qps=1; limit_qps=5; current_pv=5268; limit_pv=10000';

if (preg_match($pattern, $string, $matches)) {
    $current_qps = $matches[1];
    $current_pv = $matches[2];

    echo 'current_qps: ' . $current_qps . PHP_EOL;
    echo 'current_pv: ' . $current_pv . PHP_EOL;
} else {
    echo 'No match found.' . PHP_EOL;
}

?>


以上

免费评分

参与人数 1吾爱币 +1 热心值 +1 收起 理由
skoy03 + 1 + 1 谢谢@Thanks!

查看全部评分

tszlfasy 发表于 2023-11-15 22:12
本帖最后由 tszlfasy 于 2023-11-15 22:15 编辑

在PHP中,如果需要通过正则表达式找到"current_qps"和"current_pv"的数值,我们可以使用preg_match_all函数,具体的实现方式如下:
[PHP] 纯文本查看 复制代码
<?php
$str = 'X-Limit: current_qps=1; limit_qps=5; current_pv=5268; limit_pv=10000';
preg_match_all('/(current_qps|current_pv)=([0-9]+)/', $str, $matches);
$result = array_combine($matches[1], $matches[2]);

echo 'current_qps: ' . $result['current_qps'] . PHP_EOL;
echo 'current_pv: ' . $result['current_pv']. PHP_EOL;
?>


在这个例子中,通过"/(current_qps|current_pv)=([0-9]+)/"这个正则表达式,我们可以取得包含"current_qps"或"current_pv"的键值对。使用array_combine函数将相对应的键和值组合成一个数组,通过它就能获取到需要的数值。


 楼主| skoy03 发表于 2023-11-15 22:14
 楼主| skoy03 发表于 2023-11-15 22:15
tszlfasy 发表于 2023-11-15 22:12
在PHP中,如果需要通过正则表达式找到"current_qps"和"current_pv"的数值,我们可以使用preg_match_all函数 ...

感谢大佬
javonz 发表于 2023-11-16 08:52
本帖最后由 javonz 于 2023-11-16 08:54 编辑

[PHP] 纯文本查看 复制代码
<?php
$string = "X-Limit: current_qps=1; limit_qps=5; current_pv=5268; limit_pv=10000";

$tmp = explode(';' , $string);

$list = [];
foreach($tmp as $key =>$value){
     if( strstr(  $value , 'current_qps' ) OR strstr( $value , 'current_pv')){
           $tmpList = exploed('=' , $value);
           $listTmp[$tmpList[0]] = $tmpList[1];
           $list[] = $listTmp;
}
}

神农架曹鑫 发表于 2023-11-16 09:18
[PHP] 纯文本查看 复制代码
$str = 'X-Limit: current_qps=1; limit_qps=5; current_pv=5268; limit_pv=10000';
$pattern_qps = '/current_qps=(\d+)/';
$pattern_pv = '/current_pv=(\d+)/';

preg_match($pattern_qps, $str, $matches_qps);
$qps = $matches_qps[1];

preg_match($pattern_pv, $str, $matches_pv);
$pv = $matches_pv[1];

echo "current_qps: " . $qps . "\n";
echo "current_pv: " . $pv . "\n";
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-24 17:23

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表