2014-10-14 2 views
0

Я вызываю приведенный ниже php-файл, который загружает данные из таблицы с помощью curl, ниже, я обрезаю его, чтобы предотвратить показ гиперссылок, и я также заменяю строку, чтобы предотвратить проверку имени хоста (последняя часть)Блокировка ключевого слова при загрузке таблицы

<?php 
     function curl($url){ 
      $headers[] = "User-Agent:Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.2.13) Gecko/20101203 Firefox/3.6.13"; 
      $headers[] = "Accept:text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"; 
      $headers[] = "Accept-Language:en-us,en;q=0.5"; 
      $headers[] = "Accept-Encoding:gzip,deflate"; 
      $headers[] = "Accept-Charset:ISO-8859-1,utf-8;q=0.7,*;q=0.7"; 
      $headers[] = "Keep-Alive:115"; 
      $headers[] = "Connection:keep-alive"; 
      $headers[] = "Cache-Control:max-age=0";  
      $curl = curl_init(); 
      curl_setopt($curl, CURLOPT_URL, $url); 
      curl_setopt($curl, CURLOPT_HTTPHEADER, $headers); 
      curl_setopt($curl, CURLOPT_ENCODING, "gzip"); 
      curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); 
      curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1); 
      $data = curl_exec($curl); 
      curl_close($curl); 
      return $data;  
     }  
     $a = curl('http://www.domain.com/table'); 
     $regex = '#<a href=[^>]+>([^<]*)</a>#';  
     $b = preg_replace('#<a.*?>(.*?)</a>#i', '\1', $a); 
     $c = str_replace('feed_container.innerHTML+=', 'aa=', $b); 
     $d = str_replace("if(location.host.indexOf('hostnamekeyword')!=-1||location.host.indexOf('hostnamekeyword')!=-1)", "if (2==3)", $c); 
     print $d; 
    ?> 

то, что я пытаюсь сделать прямо сейчас, заключается в следующем: Если есть «KEYWORD2» в строке при импорте, она игнорирует всю строку и не печатать его. (не показывать)

Даже если код только удаляет KEYWORD2, он выполнит эту работу.

Вот полный код из domain.com/table

function load_dse(){var feed_container=document.getElementById('filetoload');if(location.host.indexOf('hostnamekeyword')!=-1||location.host.indexOf('hostnamekeyword')!=-1){feed_container.innerHTML='<p>error</p>';}else{var head=document.getElementsByTagName('head')[0];var css=document.createElement('link');css.type='text/css';css.rel='stylesheet';css.href='http://www.domain.com/table';head.appendChild(css);var html='<table id=\"title\" border=\"0\"><tr><td class=\"first\">&nbsp;</td><th class=\"second\">title2</th><th class=\"third\">From/Time</th></tr><tr class=\"alt\"><td class=\"first\"><img src=\"http://domain.com/image1.gif\" /></td><td class=\"second\">somthing KEYWORD2 somthing else</td><td class=\"third\"><b>from</b>: e***i</td></tr><tr><td class=\"first\"><img src=\"http://domain.com/image2.gif\" /></td><td class=\"second\">somthing KEYWORD3 something else bla bla bla</td><td class=\"third\"><b>From</b>: r***o</td></tr><tr><td class=\"first\">&nbsp;</td><td class=\"second\"><b>title3</b>: <a href=\"http://domain.com\" rel=nofollow>maintitle</a></td><td class=\"third\">07-Oct-14 03:05</td></tr><tr class=\"alt\"><td class=\"first\"><img src=\"http://domain.com/image4.gif\" /></td><td class=\"second\">somthing3 bla bla bla KEYWORD4 bla bla somehting else bla</td><td class=\"third\"><b>From</b>: r***o</td></tr><tr class=\"alt\"><td class=\"first\">&nbsp;</td><td class=\"second\"><b>Item</b>: <a href=\"http://domain/com\" rel=nofollow>maintitle2</a></td><td class=\"third\">07-Oct-14 03:05</td></tr></table>';feed_container.innerHTML=html;feed_container.innerHTML+='<p><a href="http://www.domain.com/" style="display:inline;font-size:11px;color:#808080;text-decoration:none;font-family:Helvetica,Arial,sans-serif">title-new<span style="color:#4374b7">Another title</span></a></p>';}} 
if(typeof window.addEventListener!="undefined") 
window.addEventListener("load",filetoload,false);else if(typeof window.attachEvent!="undefined"){window.attachEvent("filetoload",lfiletoload);} 
else{if(window.onload!=null){var oldOnload=window.onload;window.onload=function(e){oldOnload(e);window[filetoload]();};} 
else 
window.onload=filetoload;} 

Пожалуйста, помогите, я пробовал разные методы, но независимо от того, что я делаю, это не будет работать.

+0

Не могли бы вы привести пример ввода и нужный результат? – FoolishSeth

+0

Вы считаете использовать парсер HTML? – Ghost

+0

Просто добавленный пример кода, который мы находим в домене.com/table выше – Schwann

ответ

1

Проверьте, если это полезно:

$e = preg_replace('#<tr.*?>.*KEYWORD2.*?<\/tr>#i', '', $d); 
print $e; 

Это удалит строки таблицы, которые содержат keyword2.
Угадайте, что вам нужно.

Вы можете проверить результаты здесь: http://regex101.com/r/qQ2dE4/9
Со всеми пояснениями и тестами. Очень хороший сайт!

+0

Спасибо, код идет в правильном направлении, теперь проблема в том, что везде, где он находит KEYWORD2, он обрезает остальную часть таблицы. (в основном таблица останавливается там, где keywork2 deteted, – Schwann

+0

Я просто добавил содержимое файла domain.com/table, о котором идет речь выше – Schwann

+0

@Schwann Можете ли вы добавить пример содержимого всей таблицы, чтобы я мог видеть, как работает регулярное выражение на практике? Одна строка на самом деле не достаточно, так как она теперь удалена. :) –

Смежные вопросы