2011-05-30 50 views
1

我有一个文本文件,并希望与PHP提取从一个文本PHP

任何人有任何想法,我怎么去分析它的线IMPATTO LTD

IMPATTO LTD        ZAHLUNG:  A 

从上面的线?

我在想也许正则表达式,但没有统一的方式来提取它..我想最好的是一个表达,将让我的文字,直到从Zahlung Z ..这是可能的吗?

顺便说的第一句话是可变长度的......

+1

拆分的实际标准是什么?我猜你并不总是拥有“IMPATTO LTD”,或者一开始就没有必要提取它。你的终结者总是第二个“空间”角色,或者总是有一定数量的空白,然后是“ZAHLUNG”或其他什么? – tjm 2011-05-30 12:24:48

+0

看看我的答案,它可能会更适合你 – afarazit 2011-05-30 12:30:24

回答

1
$string = null; 
$itms = explode('ZAHLUNG', $line); 
if(is_array($itms) AND isset($itms[0])) { 
    $string = trim($itms[0]); 
} 

echo $string; // IMPATTO LTD 
+0

伟大的感谢将标记为答案在10分钟内 – WilfredMifsud 2011-05-30 12:23:19

+0

恭喜@unset实现这并不是一项艰巨的任务。 – pavium 2011-05-30 12:36:42

0

你在正确的轨道上。 preg_match是你的朋友。

$pattern = "/IMPATTO LTD/"; 

$matched = preg_match($pattern, $string); 

阅读了手册页,因为这功能是非常强大,具有我没有在简单的例子,我张贴用几个有用的参数。

UPDATE:

请原谅我的英语不好,看来我完全误解了这个问题,将删除这篇文章,如果它不妥善解决问题。

+0

我无法搜索Impatto,因为这可以根据指定改变任何时刻,但感谢您的想法 – WilfredMifsud 2011-05-30 12:26:00

+0

是的,我重读其他答案,并意识到我是在这个offbase! ;) 对不起,朋友。 – stefgosselin 2011-05-30 12:28:36

1

试试这一个,它的文件中读取到一个数组,然后循环througth通过线阵行,看看你的文本中找到

$lines = file('test.txt'); 
$string_to_find = 'IMPATTO LTD'; 
foreach ($lines as $line) { 
     if(strstr($line,$string_to_find)){ 
     echo 'found'. $string_to_find; 
     } 
} 
1

如果ZAHLUNG:是一个固定的分隔符:

<?php 

$string = 'IMPATTO LTD        ZAHLUNG:  A'; 

if(preg_match('/^(.+)ZAHLUNG:/', $string, $matches)){ 
    var_dump(trim($matches[1])); 
} 
2
$pos = strpos($line, 'ZAHLUNG'); 
$string = trim(substr_replace($line, '', $pos)); 

如果'ZAHLUNG'是恒定的,那么使用正则表达式是一个坏主意。