我有一个文本文件,并希望与PHP提取从一个文本PHP
任何人有任何想法,我怎么去分析它的线IMPATTO LTD
IMPATTO LTD ZAHLUNG: A
从上面的线?
我在想也许正则表达式,但没有统一的方式来提取它..我想最好的是一个表达,将让我的文字,直到从Zahlung Z ..这是可能的吗?
顺便说的第一句话是可变长度的......
我有一个文本文件,并希望与PHP提取从一个文本PHP
任何人有任何想法,我怎么去分析它的线IMPATTO LTD
IMPATTO LTD ZAHLUNG: A
从上面的线?
我在想也许正则表达式,但没有统一的方式来提取它..我想最好的是一个表达,将让我的文字,直到从Zahlung Z ..这是可能的吗?
顺便说的第一句话是可变长度的......
$string = null;
$itms = explode('ZAHLUNG', $line);
if(is_array($itms) AND isset($itms[0])) {
$string = trim($itms[0]);
}
echo $string; // IMPATTO LTD
伟大的感谢将标记为答案在10分钟内 – WilfredMifsud 2011-05-30 12:23:19
恭喜@unset实现这并不是一项艰巨的任务。 – pavium 2011-05-30 12:36:42
你在正确的轨道上。 preg_match是你的朋友。
$pattern = "/IMPATTO LTD/";
$matched = preg_match($pattern, $string);
阅读了手册页,因为这功能是非常强大,具有我没有在简单的例子,我张贴用几个有用的参数。
UPDATE:
请原谅我的英语不好,看来我完全误解了这个问题,将删除这篇文章,如果它不妥善解决问题。
我无法搜索Impatto,因为这可以根据指定改变任何时刻,但感谢您的想法 – WilfredMifsud 2011-05-30 12:26:00
是的,我重读其他答案,并意识到我是在这个offbase! ;) 对不起,朋友。 – stefgosselin 2011-05-30 12:28:36
试试这一个,它的文件中读取到一个数组,然后循环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;
}
}
如果ZAHLUNG:
是一个固定的分隔符:
<?php
$string = 'IMPATTO LTD ZAHLUNG: A';
if(preg_match('/^(.+)ZAHLUNG:/', $string, $matches)){
var_dump(trim($matches[1]));
}
$pos = strpos($line, 'ZAHLUNG');
$string = trim(substr_replace($line, '', $pos));
如果'ZAHLUNG'是恒定的,那么使用正则表达式是一个坏主意。
拆分的实际标准是什么?我猜你并不总是拥有“IMPATTO LTD”,或者一开始就没有必要提取它。你的终结者总是第二个“空间”角色,或者总是有一定数量的空白,然后是“ZAHLUNG”或其他什么? – tjm 2011-05-30 12:24:48
看看我的答案,它可能会更适合你 – afarazit 2011-05-30 12:30:24