我想在目录中的某些文件中找到特定文本。我尝试使用Symfony Finder组件,但无法获得结果。以下是我的代码。
$finder = new Finder();
$finder->in('./sample')->files()->contains('This is test');
文件位于示例目录中。示例目录中有pdf,txt文件。以上对我没有用。如何让这个工作。任何帮助将不胜感激。
答案 0 :(得分:4)
在此之前检查示例目录的路径是否在.php文件的同一目录中,这将起作用。
@Test
public void testDoubleHash() throws Exception {
ConfigpathContext c = parse("#BU/proj##bla#d==u##bla");
// line 1:15 mismatched input '==' expecting '='
Assert.assertEquals( "#BU/proj##bla", c.toplevelement().getText() );
Assert.assertEquals( "#d==u##bla", c.subprojectelement().get(0).getText() );
}
@Test
public void testJumps() throws Exception {
ConfigpathContext c = parse("#BU/pro##dla#du##d==la#d=dest");
// line 1:14 missing '=' at 'u'
Assert.assertEquals( "#BU/pro##dla", c.toplevelement().getText() );
Assert.assertEquals( 1, c.subprojectelement().size());
Assert.assertEquals( "#du##d==la", c.subprojectelement().get(0).path().getText() );
Assert.assertEquals( "dest", c.subprojectelement().get(0).jump().jumpdestination().getText() );
}
private ConfigpathContext parse(String src) {
ConfigPathParser parser = new ConfigPathParser(new CommonTokenStream(new ConfigPathLexer(new ANTLRInputStream(src))));
parser.addErrorListener(new BaseErrorListener() {
@Override
public void syntaxError(Recognizer<?, ?> recognizer, Object offendingSymbol, int line, int charPositionInLine, String msg, RecognitionException e) {
throw new RuntimeException("line " + line + ":" + charPositionInLine + " " + msg );
}
});
return parser.configpath();
}
DIR 是包含文件目录的php的魔术常量。