2015-08-03 3 views
1

Я работаю над страницей, которая получает html div-код на мою страницу веб-сайта и отображается на веб-сайте. Мой код выглядит следующим образом:Простая проблема с кодом HTML DOM

require './simpledom.php'; 
$url = 'https://cit2.net/index.php?topic=75443.0'; 
$html = file_get_html($url); if (!empty($html)) { 
$element = $html->find('div[id=msg_783326]'); 
if (!empty($element)) { 
    echo $element; 
     } 
    } 

Это не покажет вещи, где, поскольку ссылка содержит вещи в ней. Я хочу, чтобы он показывал конкретный div на этой странице на моей странице веб-сайта. Что мне делать/редактировать в моем коде, чтобы он показывал конкретный div на моей странице.

EDIT: Мой HTML-код, под которым я хочу повторить div.

<div id="main_b"> 
<div class="wrapper"> 
<div id="main_content"> 
<?php 
require './simpledom.php'; 
$url = 'https://cit2.net/index.php?topic=75443.0'; 
$html = file_get_html($url); 
if (!empty($html)) { 
$element = $html->find('div[id=msg_783326]'); 
if (!empty($element)) { 
echo $element; 
} 
} 
</div> 
</div> 
</div> 
+0

Вам нужно будет возвращать переменную $ элемент и поместить его в определенной DIV в вашем представлении. –

+0

Итак, я не могу разместить его где-нибудь еще, что хочу? –

+0

Вы наверняка сможете. Также разместите html-код, включая div, на который вы хотите поместить элемент $, и я напишу ответ. –

ответ

0

Перед вами изменения я не понимаю, что вы пытаетесь echo$element в правильное место уже. Но, похоже, в вашем случае вы просто забыли закрывающий тег php ?>.

<div id="main_b"> 
    <div class="wrapper"> 
     <div id="main_content"> 
      <?php 
       require './simpledom.php'; 
       $url = 'https://cit2.net/index.php?topic=75443.0'; 
       $html = file_get_html($url); 
       if (!empty($html)) { 
        $element = $html->find('div[id=msg_783326]'); 
        if (!empty($element)) { 
         echo $element; 
        } 
       } 
      ?> 
     </div> 
    </div> 
</div> 

EDIT: Все еще не выводит ничего? Давайте начнем процесс отладки:

<div id="main_b"> 
    <div class="wrapper"> 
     <div id="main_content"> 
      <?php 
       require './simpledom.php'; 
       $url = 'https://cit2.net/index.php?topic=75443.0'; 
       $html = file_get_html($url); 
       if (!empty($html)) { 
        $element = $html->find('div[id=msg_783326]'); 
        if (!empty($element)) { 
         echo $element; 
        } else { 
         $element = 'element was empty'; 
        } 
       } else { 
        $element = 'html was empty'; 
       } 
       echo $element; 
      ?> 
     </div> 
    </div> 
</div> 

UPDATE: Попробуйте войти в систему программно

<div id="main_b"> 
    <div class="wrapper"> 
     <div id="main_content"> 
      <?php 
       require './simpledom.php'; 
       $login_url = 'https://cit2.net/index.php?action=login'; 
       $topic_url = 'https://cit2.net/index.php?topic=75443.0'; 
       $username = ''; 
       $password = ''; 

       $params = [ 
        'user' => $username, 
        'passwrd' => $password 
       ]; 

       $params = http_build_query($params); 

       // init curl 
       $ch = curl_init(); 

       // set the url to work with 
       curl_setopt($ch, CURLOPT_URL, $login_url); 

       // enable http post 
       curl_setopt($ch, CURLOPT_POST, 1); 

       // set the post parameters 
       curl_setopt($ch, CURLOPT_POSTFIELDS, $params); 

       // handle cookies for the login 
       curl_setopt($ch, CURLOPT_COOKIEJAR, 'cookie.txt'); 

       //Setting CURLOPT_RETURNTRANSFER variable to 1 will force cURL 
       //not to print out the results of its query. 
       //Instead, it will return the results as a string return value 
       //from curl_exec() instead of the usual true/false. 
       curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 

       // execute the request 
       $store = json_decode(curl_exec($ch)); 

       if ($store->status == 'ok') { 
        $html = file_get_html($topic_url); 
        if (!empty($html)) { 
         $element = $html->find('div[id=msg_783326]'); 
         if (!empty($element)) { 
          echo $element; 
         } else { 
          $element = 'element was empty'; 
         } 
        } else { 
         $element = 'html was empty'; 
        } 
       } else { 
        $elment = 'request was bad'; 
       } 
       echo $element; 
      ?> 
     </div> 
    </div> 
</div> 
+0

Э-э, я закрыл тег php, но все равно ничего не увидит. –

+0

@ user3902158, хорошо, давайте начнем процесс отладки. Добавьте обновленный код и опубликуйте результат. –

+0

Кстати, я только заметил, что ваш 'url' не доступен для публики, если вы не вошли в систему. Вы можете проверить это, посетив ваш url в режиме инкогнито google chrome. Вы перенаправлены на страницу входа. На этой странице нет div с вашим обязательным идентификатором, и, следовательно, 'html' будет пустым. –

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

  • Нет связанных вопросов^_^