Advertisement
dimipan80

Article Parser

Apr 28th, 2015
218
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 1.34 KB | None | 0 0
  1. <?php
  2. $textArr = explode("\n", $_GET['text']);
  3. $articlePattern = "/^\s*([A-Za-z\s-]+)\s*\%\s*([A-Za-z\s.-]+)\s*;\s*(\d{2}-\d{2}-\d{4})\s*-\s*(.{0,100})/";
  4. $monthsOfYear = array('01' => 'January', '02' => 'February', '03' => 'March', '04' => 'April',
  5.     '05' => 'May', '06' => 'June', '07' => 'July', '08' => 'August', '09' => 'September',
  6.     '10' => 'October', '11' => 'November', '12' => 'December');
  7.  
  8. foreach ($textArr as $text) {
  9.     if (preg_match_all($articlePattern, $text, $matches)) {
  10.         $articleName = trim($matches[1][0]);
  11.         $author = trim($matches[2][0]);
  12.         $dateStr = trim($matches[3][0]);
  13.         $dateArr = explode('-', $dateStr);
  14.         $monthAsWord = '';
  15.         $isValidDate = false;
  16.         if (count($dateArr) == 3 && isset($monthsOfYear[$dateArr[1]])) {
  17.             $monthAsWord = $monthsOfYear[$dateArr[1]];
  18.             $isValidDate = true;
  19.         }
  20.  
  21.         if (!$isValidDate) {
  22.             continue;
  23.         }
  24.  
  25.         $summary = trim($matches[4][0]);
  26.  
  27.         print_next_article($articleName, $author, $monthAsWord, $summary);
  28.     }
  29. }
  30.  
  31. function print_next_article($topic, $author, $when, $summary) {
  32.     echo "<div>\n";
  33.     echo '<b>Topic:</b> <span>' . htmlspecialchars($topic) . "</span>\n";
  34.     echo '<b>Author:</b> <span>' . htmlspecialchars($author) . "</span>\n";
  35.     echo "<b>When:</b> <span>{$when}</span>\n";
  36.     echo '<b>Summary:</b> <span>' . htmlspecialchars($summary) . "...</span>\n";
  37.     echo "</div>\n";
  38. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement