scratch – Blame information for rev

Subversion Repositories:
Rev:
Rev Author Line No. Line
120 office 1 <?php
2  
3 /*
4 * This file is part of the Symfony package.
5 *
6 * (c) Fabien Potencier <fabien@symfony.com>
7 *
8 * For the full copyright and license information, please view the LICENSE
9 * file that was distributed with this source code.
10 */
11  
12 namespace Symfony\Component\Finder\Iterator;
13  
14 /**
15 * FilecontentFilterIterator filters files by their contents using patterns (regexps or strings).
16 *
17 * @author Fabien Potencier <fabien@symfony.com>
18 * @author Włodzimierz Gajda <gajdaw@gajdaw.pl>
19 */
20 class FilecontentFilterIterator extends MultiplePcreFilterIterator
21 {
22 /**
23 * Filters the iterator values.
24 *
25 * @return bool true if the value should be kept, false otherwise
26 */
27 public function accept()
28 {
29 if (!$this->matchRegexps && !$this->noMatchRegexps) {
30 return true;
31 }
32  
33 $fileinfo = $this->current();
34  
35 if ($fileinfo->isDir() || !$fileinfo->isReadable()) {
36 return false;
37 }
38  
39 $content = $fileinfo->getContents();
40 if (!$content) {
41 return false;
42 }
43  
44 return $this->isAccepted($content);
45 }
46  
47 /**
48 * Converts string to regexp if necessary.
49 *
50 * @param string $str Pattern: string or regexp
51 *
52 * @return string regexp corresponding to a given string or regexp
53 */
54 protected function toRegex($str)
55 {
56 return $this->isRegex($str) ? $str : '/'.preg_quote($str, '/').'/';
57 }
58 }