#EXTM3U #EXT-X-VERSION:3 #EXT-X-ALLOW-CACHE:NO #EXT-X-MEDIA-SEQUENCE:1692344893 #EXT-X-TARGETDURATION:4 #EXTINF:4.00, http://a.com/1692344893.ts #EXTINF:4.00, http://a.com/1692344896.ts';

怎么使$1 输出为从第一个ts开始递增一个时间戳内容:您可以使用preg_replace_callback函数来实现从第一个ts开始递增一个时间戳的功能。这个函数可以传递一个回调函数来处理匹配到的结果,并返回替换后的结果。

下面是一个示例代码:

$txt='#EXTM3U
#EXT-X-VERSION:3
#EXT-X-ALLOW-CACHE:NO
#EXT-X-MEDIA-SEQUENCE:1692344893
#EXT-X-TARGETDURATION:4
#EXTINF:4.00,
http://a.com/1692344893.ts
#EXTINF:4.00,
http://a.com/1692344896.ts';

$ts = time(); // 获取当前时间戳

$result = preg_replace_callback('/(.*?.ts.*)/i', function($matches) use (&$ts) {
    $ts += 1; // 每次递增1秒
    return $_SERVER['PHP_SELF'] . '?ts=' . $ts;
}, $txt);

echo $result;

在这个例子中,我们使用了一个匿名函数作为preg_replace_callback的回调函数。在回调函数中,我们使用了引用传递(&$ts)来确保$ts值可以被修改并在每次匹配时递增。然后,我们将修改后的结果返回。

请注意,这个例子中每次递增的时间单位是秒,您可以根据自己的需求进行调整。

PHP正则表达式:使用preg_replace_callback递增时间戳

原文地址: https://www.cveoy.top/t/topic/qonV 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录