проблема с возвращаемой переменной в laravel 5.7 - PullRequest
0 голосов
/ 20 ноября 2018

Я использую Laravel 5.7.Веб-сайты видны во время работы программы, но после завершения (функция возврата) не отображаются все веб-сайты на странице.Я думаю, что проблема возвращения эпизода, но я не могу ее исправить.

Функция

public function sls(Request $request){
    $ip = $request->input('ip');
    $cnt=1;
    $count=0;
    ini_set('max_execution_time', 600);
    $nextpage=true;
    while($nextpage==true){
        if($cnt==1)
            $url="https://www.bing.com/search?q=ip%3A".$ip."&qs=n&form=QBRE&pq=ip%3A".$ip."&sc=0-0&sp=-1&sk=";
        else
            $url="https://www.bing.com/search?q=ip%3a".$ip."&qs=n&sp=-1&pq=ip%3a".$ip."&sc=0-15&sk=&cvid=75D6BFCE5DF344E083DF2C10D5B735E9&first=".$cnt."&FORM=PERE";

        $ch = curl_init($url);
        curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
        curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2);
        $result=curl_exec($ch);
        $myPattern = "#<cite>(.*?)</cite>#" ;

        if(preg_match_all($myPattern,$result,$find)){
            $urls = preg_replace("/<\/?strong>/","",$find[1]);
            $keys = array_filter($urls);
            $html = '<ul>';
            foreach($keys as $value){
                $count += 1;
                $html .= '<li> '.$count.'.'.$value.' </li>';
            }
            $html .= '</ul>';
            echo $html;
        }
        if(preg_match('/class="sb_pagN sb_pagN_bp b_widePag sb_bp "/',$result))
            $cnt+=40;
        else
            $nextpage=false;
    }
    return back()->with('list', $html);

Форма

<form action = "" method = "post">
<input type = "hidden" name = "_token" value = "<?php echo csrf_token() ?>">

<table>
    <tr>
        <td>Server list site: </td>
        <td><input type="text"  name="ip" /></td>
    </tr>
</table>

{!!сессия ('список') !!}

Ответы [ 2 ]

0 голосов
/ 21 ноября 2018

Веб-сайты видны во время работы программы, но после завершения (функция возврата) не отображаются все веб-сайты на странице.

Я думаю, вам необходимо удалить echo $html;линия от вашего контроллера sls() метод:

if(preg_match_all($myPattern,$result,$find)){
    $urls = preg_replace("/<\/?strong>/","",$find[1]);
    $keys = array_filter($urls);
    $html = '<ul>';
    foreach($keys as $value){
        $count += 1;
        $html .= '<li> '.$count.'.'.$value.' </li>';
    }
    $html .= '</ul>';
    echo $html; // <------- Remove this line.
}
0 голосов
/ 20 ноября 2018

Вы переписываете старые страницы с последней страницей.

Внесите следующие изменения:

$html = '';

Добавьте вышеупомянутое ранее.

$html .= '<ul>';

Перейдите к приведенной выше строке.

Это позволит включить все веб-сайты в переменную $ html.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...