首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何选择字符串的一部分,在特定的单词之后?

如何选择字符串的一部分,在特定的单词之后?
EN

Stack Overflow用户
提问于 2014-08-10 16:10:22
回答 1查看 66关注 0票数 0

我有一些这样的文本:(这个文件包含一些文本文件块,以line : x/x/x/x开头,以tgt-noise-margin-down : x短语结尾)

代码语言:javascript
复制
------------------------------------------------------------------------------------------------------------------------------------
linkup-record
------------------------------------------------------------------------------------------------------------------------------------
line : 1/1/6/31              link-timestamp-down : 2014-06-16:00:06:11
attained-bitrate-down : 7616                       max-bitrate-up : 1024                     max-bitrate-down : 4096
threshold-bitrate-up : 512                threshold-bitrate-down : 1024                         max-delay-up : 15
max-delay-down : 15                    tgt-noise-margin-up : 60                  tgt-noise-margin-down : 60 
------------------------------------------------------------------------------------------------------------------------------------
linkup-record
------------------------------------------------------------------------------------------------------------------------------------
line : 1/1/6/32              link-timestamp-down : 2014-06-16:00:06:11
attained-bitrate-down : 3616                       max-bitrate-up : 512                     max-bitrate-down : 2048
threshold-bitrate-up : 256                threshold-bitrate-down : 512                         max-delay-up : 15
max-delay-down : 15                    tgt-noise-margin-up : 60                  tgt-noise-margin-down : 60 
------------------------------------------------------------------------------------------------------------------------------------
linkup-record
------------------------------------------------------------------------------------------------------------------------------------
line : 1/1/6/33              link-timestamp-down : 2014-06-16:00:06:11
attained-bitrate-down : 4096                       max-bitrate-up : 1024                     max-bitrate-down : 4096
threshold-bitrate-up : 1024                threshold-bitrate-down : 1024                         max-delay-up : 15
max-delay-down : 15                    tgt-noise-margin-up : 100                  tgt-noise-margin-down : 80 

我想写一个带有$line参数的函数

代码语言:javascript
复制
function extarctText($line)
{
...
return $block;
}

选择以$line开头的块,例如,调用$this->extarctText(1/1/6/32)应返回此结果($block):

代码语言:javascript
复制
line : 1/1/6/32              link-timestamp-down : 2014-06-16:00:06:11
attained-bitrate-down : 3616                       max-bitrate-up : 512                     max-bitrate-down : 2048
threshold-bitrate-up : 256                threshold-bitrate-down : 512                         max-delay-up : 15
max-delay-down : 15                    tgt-noise-margin-up : 60                  tgt-noise-margin-down : 60 
EN

回答 1

Stack Overflow用户

发布于 2014-08-10 17:48:19

下面的代码片段将为您提供所需的块

代码语言:javascript
复制
<?php

function extract_block($filename, $date)
{
    $handle = fopen($filename, "r");
    $block = '';

    $block_start_text = 'line : ' . $date;
    $block_end_text   = 'tgt-noise-margin-down : ';

    $is_inside_block = false;

    while (($line = fgets($handle)) !== false) {

        if($is_inside_block) {
            $block .= $line;

            if(strpos($line, $block_end_text) !== false){
                $is_inside_block = false;
            }
        } else if(strpos($line, $block_start_text) !== false){
            $block .= $line;
            $is_inside_block = true;
        }
    }

    fclose($handle);

    return $block;
}

echo extract_block('input.txt', '1/1/6/33');
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25226760

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档