2015-10-06 2 views
-7

Я стараюсь получать новости с сайта

http://www.science-support.ru/news.html

, но я ничего не могу с содержанием веб-страницы извлечения. Когда я применяю file_get_contents() Я получаю строку, для которой другая функция не работает. Первоначально я пытаюсь использовать file_get_html() от simple_html_dom.php, но тогда другие функции из этого источника не распознают элементы в полученном DOM.

О другой функции:

<?php 
$content = file_get_contents('http://www.science-support.ru/news.html'); //normal page 
$content = substr($content,20); //strange characters 
$content_arr = explode('div id="box3"' , $content); //doesn't work 

echo $content; 
echo $content_arr[0]; 
?> 

После подстрока(), я получаю что-то вроде

" <�/tr> <�/table> <�/div> <�div id="box3"><�!-- InstanceBeginEditable name="page-content" --> <�h4 class="yellow">14.11.2014 />2>AB8 $>=40/<�/h4> <�p>1JO2;O=K @57C;LB0BK :>=:[email protected] =0 [email protected]=85 ?>8A:>2KE [email protected]=B>2 ?> @>[email protected]<<5 =0CG=>-B5E=8G5A:>9 <>[email protected]=870F88 8 ?>2KH5=8N :20;8D8:0F88 <>;>4KE CG5=KE >AA88 2014-2015 33.<�a href="news/news2014-nota-res.html" class="txt" >?>[email protected]>1=55<�/a><�/p>" 

Как я могу извлечь читаемый контент? Благодаря

+2

'другие функции дон «Работайте», какую функцию? Как насчет этого не работает? – chris85

+0

Что вы получаете? – foxbeefly

+0

http://stackoverflow.com/help/how-to-ask – swalog

ответ

2

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

<?php 

    if(isset($_POST['site_url']) && !empty($_POST['site_url'])){ 
    echo get_html($_POST['site_url']); 
    } else { 
echo 'false'; 
    } 

    function get_html($url) { 
$ch = curl_init(); 
$timeout = 5; 
curl_setopt($ch, CURLOPT_URL, $url); 
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout); 
$data = curl_exec($ch); 
curl_close($ch); 
return $data; 
    } 

    ?> 

Получить URL сайта с вашего HTML-форм это HTML, как установить

<div class="col-md-offset-2 col-md-8"> 
      <form role="form" id="siteform" method="post"> 
       <div class="form-group"> 
        <input type="url" class="form-control" name="site_url" id="site_url" placeholder="Enter your site address"> 
        <span class="help-block"></span> 
       </div> 
       <button data-loading-text="Please wait..." type="submit" id="url_getter" class="btn btn-default btn-success">Submit</button> 
      </form> 
     </div> 
    </div> 
+0

Я также получаю странные символы типа «< h4 class =« yellow »> 02.05.2014 /> 2> AB8 $> = 40/<�/h4><�p> 1JO2; O =:> =: C @ A = 0? @ 8AC645 = 85 ?> 8A:> 2KE 3 @ 0 = B> 2?> @> 3 @ 0 <<5 =0CG=> -B5E = 8G5A:> 9 <> 45 @ = 870F88 8?> 2KH5 = 8N: 20; 8D8: 0F88 <>;> 4KE CG5 = KE> AA88 2014-2015 33. < a href = "news/news2014-nota.html" class = "txt">?> 4 @> 1 = 55 <�/a><�/p> " –

+0

Проблема была решена с помощью приложения iconv() в цикле с массивом кодировок символов. Я получил удобочитаемый текст, если вводной кодировкой был UCS-2LE, UTF-16 или UTF-16LE. '$ dir = 'http://www.science-support.ru/news.html'; $ dir = file_get_contents ($ dir); $ encode = mb_list_encodings(); $ a = 0; while ($ encode [$ a]! = Null) { echo $ encode [$ a]. '>>
'; echo iconv ($ encode [$ a], 'utf-8', $ dir); $ a ++; } ' –

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