Core.php 990 B

1234567891011121314151617181920212223242526272829303132333435
  1. <?php
  2. namespace Spider\Lib\Doc;
  3. use Dever;
  4. use Spider\Lib\Doc as Doc;
  5. class Core
  6. {
  7. public static function match($pattern, $string)
  8. {
  9. $temp = explode('||', $pattern);
  10. $index = isset($temp[1]) ? $temp[1] : 1;
  11. $temp[0] = '来源:互联网 时间:(.*?)<a href="#comments">';
  12. preg_match_all('/' . $temp[0] . '/i', $string, $match);
  13. $result = $match[$index][0];
  14. return $result;
  15. }
  16. public static function rule($doc, $data, $col, $rule, $key)
  17. {
  18. $rule = explode("\n", str_replace("\r", '', $rule));
  19. if (isset($rule[0]) && $rule[0]) {
  20. if (isset($col[$rule[0]]) && $rule[0] != $key) {
  21. $result = Doc::getInstance($doc->getUrl($data, $col, $col[$rule[0]]), $rule[1])->get();
  22. array_shift($rule);
  23. } elseif (isset($data[$rule[0]])) {
  24. $result = $data[$rule[0]];
  25. } else {
  26. $result = Dom::find($data, $rule[0]);
  27. }
  28. }
  29. if (isset($rule[1]) && $rule[1]) $result = self::match($rule[1], $result);
  30. return $result;
  31. }
  32. }