使用php从字符串中提取特定文本

时间:2017-07-17 06:14:13

标签: php

我有特定的文字存储在文本文件中。如何使用Php仅提取Text-ID的“4854D382GA9@example.com”。

以下是示例文字:

  

[X-PHP-Originating-Script:0:acr.php

     

x:< 193@example.com>

     

MIME-Version:1.0

     

Content-Type:text / plain;字符集= US-ASCII;

     

格式=流动

     

Text-ID:< 4854D382GA9@example.com>

     

日期:太阳,2017年7月2日12:22:12 +0500]

感谢任何帮助。提前谢谢。

4 个答案:

答案 0 :(得分:1)

 js?key=AIzaSyCP-j5J0xjTzFqTNoGCAxO_c46istGzHSA&libraries=places&callback=initAutocomplete:98 Uncaught 
nc {message: "initAutocomplete is not a function", name: "InvalidValueError", stack: "Error↵    at new nc (https://maps.googleapis.com/m…libraries=places&callback=initAutocomplete:137:68"}

答案 1 :(得分:1)

从您的标识符开始的加载行,如“Text-ID:”,使用strpos,然后使用php加载此行中的其他信息

  

爆炸

  

preg_match

对于当前行,搜索您想要的内容

答案 2 :(得分:0)

//纠正您的文本文件格式,如下所示:

[X-PHP-Originating-Script: 0:acr.php
x: <193@example.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII;
Format=flowed
Text-ID: <4854D382GA9@example.com>
Date: Sun, 02 Jul 2017 12:22:12 +0500] 

//使用以下代码并使用str_replace()获得所需结果

$myFile = "abc.txt";
$lines = file($myFile);//file in to an array
$abc = str_replace("Text-ID:","",$lines[5]);
$abc = str_replace("<","",$abc);
$abc = str_replace(">","",$abc);
print_r($abc);

//第二个选项

$myFile = "abc.txt";
$lines = file($myFile);//file in to an array
preg_match('/Text\-ID:\s<(.*?)>/s', $lines[5], $match);
print_R($match[1]);

答案 3 :(得分:0)

首先使用虚拟文件名称创建记事本文件。之后将所有文本放在该文件中。请使用我的脚本从给定的字符串中查找特定的字符串。

一次

 $lines= file('dummy.txt'); // write file name here
 $find_word= ''; 
 if(count($lines)>0){
    //$lk=array_search('Text-ID',$line);
    foreach ($lines as $lineNumber => $line) {
        if (strpos($line, 'Text-ID') !== false) {
                $start  = '<';
                $end    = '>';
                $r = explode($start, $line);
                if (isset($r[1])){
                    $r = explode($end, $r[1]);
                    $find_word=$r[0]; 
                }
        }
    }               
}
print_r($find_word); exit; 

多次
 如果你想多次找到一个字符串并存储在数组中,那么就使用这个脚本。

 $lines= file('dummy.txt'); // write file name here
$find_words= ''; 
if(count($lines)>0){
    //$lk=array_search('Text-ID',$line);
    foreach ($lines as $lineNumber => $line) {
        if (strpos($line, 'Text-ID') !== false) {
                $start  = '<';
                $end    = '>';
                $r = explode($start, $line);
                if (isset($r[1])){
                    $r = explode($end, $r[1]);
                    $find_words[]=$r[0]; 
                }
        }
    }               
}
print_r($find_words); exit;