Advertisement
Guest User

Untitled

a guest
May 25th, 2016
90
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.93 KB | None | 0 0
  1. <?php
  2.  
  3. function contains($str, array $arr)
  4. {
  5. foreach($arr as $a)
  6. {
  7. if (stripos($str, $a) !== false) return true;
  8. }
  9. return false;
  10. }
  11.  
  12. // Find posts containing these words
  13. $bad_words_list = [
  14. '1800petmeds',
  15. 'atarax',
  16. 'baclofen',
  17. 'canada-drugsonline',
  18. 'dapoxetine',
  19. 'doctormedsnoprescriptionrx',
  20. 'doxycycline',
  21. 'drugstoreforyou',
  22. 'estrace',
  23. 'estradiol',
  24. 'ethinyl',
  25. 'fluoxetine',
  26. 'fucidin',
  27. 'levitra',
  28. 'medicalcareontheinternet',
  29. 'ordermedsnoprescription',
  30. 'paper-help24h',
  31. 'partnerpharmacy24',
  32. 'prednisone',
  33. 'rxshopnow',
  34. 'serotonin',
  35. 'sildenafil',
  36. 'valacyclovir',
  37. 'valtrex',
  38. 'zithromax',
  39. ];
  40.  
  41. // Database credentials
  42. $db_host = '127.0.0.1';
  43. $db_name = 'wordpress_db';
  44. $db_user = 'root';
  45. $db_pass = '';
  46.  
  47. $connection = new PDO('mysql:host='.$db_host.';dbname='.$db_name.';charset=utf8', $db_user, $db_pass);
  48.  
  49. foreach ($bad_words_list as $bad)
  50. {
  51. $query = 'SELECT * FROM `wp_posts` WHERE `post_content` LIKE "%'.$bad.'%" AND `post_status` = "publish"';
  52.  
  53. echo '<hr>';
  54. $primary_query = $connection->query($query);
  55. echo '<h2>Results for: '.$bad.' ('.$primary_query->rowCount().' found)</h2>';
  56.  
  57. foreach($primary_query as $primary)
  58. {
  59. $sub_query = 'SELECT * FROM `wp_posts` WHERE `post_name` = "'.$primary['ID'].'-revision-v1" ORDER BY `ID` DESC';
  60. $sub_query_results = $connection->query($sub_query);
  61.  
  62. if ($sub_query_results->rowCount() > 0)
  63. {
  64. foreach($sub_query_results as $revision)
  65. {
  66. if ( contains($revision['post_content'], $bad_list) === false)
  67. {
  68. $update = 'UPDATE `wp_posts` SET
  69. `post_status` = "publish",
  70. `post_modified` = now(),
  71. `post_modified_gmt` = now(),
  72. `post_name` = "'.$primary['post_name'].'",
  73. `ping_status` = "'.$primary['ping_status'].'",
  74. `post_parent` = 0,
  75. `post_type` = "'.$primary['ping_type'].'",
  76. WHERE `ID`='.$revision['ID'];
  77. $connection->query($update);
  78. echo 'Updated '.$revision['ID'].' to be live Version<br>';
  79.  
  80. $delete = 'DELETE FROM `wp_posts` WHERE `ID` = '.$primary['ID'];
  81. $connection->query($delete);
  82. echo 'Deleted '.$primary['ID'].'<br>';
  83. break;
  84. }
  85. else
  86. {
  87. $delete = 'DELETE FROM `wp_posts` WHERE `ID` = '.$revision['ID'];
  88. $connection->query($delete);
  89. echo 'Deleted Revision '.$revision['ID'].'<br>';
  90. }
  91. }
  92. }
  93. else
  94. {
  95. echo 'No Revisions to roll back to for '.$primary['ID'].' (Clean manually)<br>';
  96. }
  97. }
  98. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement