Guest User

PHP RSS filter

a guest
Oct 19th, 2024
42
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 1.11 KB | Source Code | 0 0
  1. <?php
  2.  
  3. if(isset($_GET['feedUrl'])) {
  4. $feedUrl = $_GET['feedUrl'];
  5. } else {
  6. die('No feed url provided (feedUrl parameter)');
  7. }
  8.  
  9. if(isset($_GET['feedFilterKeywords'])) {
  10. $feedFilterKeywords = $_GET['feedFilterKeywords'];
  11. } else {
  12. die('No feed filter keywords provided (feedFilterKeywords parameter separated by | character)');
  13. }
  14.  
  15. $feedFilterKeywords = array_map('trim', explode('|', $feedFilterKeywords));
  16. $originalFeed = simplexml_load_file($feedUrl);
  17. $parsedFeedItems = $originalFeed->xpath('/rss/channel/item');
  18.  
  19. foreach ($parsedFeedItems as $index => $item) {
  20. foreach ($feedFilterKeywords as $filterKeyword) {
  21. if (strpos(strtolower($item->title), strtolower($filterKeyword)) !== false) {
  22. unset($parsedFeedItems[$index]);
  23. break;
  24. }
  25. }
  26. }
  27.  
  28. $xmlParsedFeedItems = '';
  29. foreach($parsedFeedItems as $feedItem) {
  30. $xmlParsedFeedItems .= $feedItem->asXML();
  31. }
  32. $originalFeedWithoutItems = preg_replace('/<item>(.*)<\/item>/s', '', $originalFeed->asXML());
  33. $parsedFeedXML = str_replace('</channel>', $xmlParsedFeedItems . '</channel>', $originalFeedWithoutItems);
  34.  
  35. header("Content-type: text/xml");
  36. die($parsedFeedXML);
Tags: php RSS filtering
Advertisement
Add Comment
Please, Sign In to add comment