首页 > 解决方案 > Laravel 6.2:Process 类依赖于 proc_open,这在您的 PHP 安装中不可用

问题描述

大家好

我想使用表单 POST 方法获取网站地址并在我的页面中显示元标记。
我尝试使用 Laravel-6.2 PHP 编写代码,我认为一切正常,但不起作用。我认为在 Curl 代码中是错误的。
我在 Laravel 5.2 中发现了类似的错误:Process 类依赖于 proc_open,这在您的 PHP 安装中不可用,但我使用的是 php 7.2 请帮我找到Controller

中的错误Thankful :


public function MetaChecker(Request $request){
   $rules = array(
        'url' => 'required|url|max: 255',
        'g-recaptcha-response' => 'required|captcha',
    );
    $messages = array(
        'url.required' => 'آدرس سایت معتبر نمی باشد.',
        'g-recaptcha-response.required' => 'کد امنیتی معتبر نمی باشد.',
    );
    $validator = Validator::make( $request->all(), $rules, $messages );
    if ( $validator->fails() )
    {
        return back()
            ->withErrors($validator)
            ->withInput();
    }
    $domain = $request->input('url');
    $url = str_replace(array('Array', 'http://', 'https://', 'http://www.', 'https://www.', 'www.', '/'), '', strip_tags($domain));

    $ch = curl_init($url);
    curl_setopt($ch, CURLOPT_HEADER, 0);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);

    $data = curl_exec($ch);
    curl_close($ch);

    $doc = new DOMDocument();
    @$doc->loadHTML($data);
    $nodes = $doc->getElementsByTagName('title');
    $title = $nodes->item(0)->nodeValue;

    $metas = $doc->getElementsByTagName('meta');

    for ($i = 0; $i < $metas->length; $i++)
    {
        $meta = $metas->item($i);

        if($meta->getAttribute('name') == 'viewport')
            $viewport = $meta->getAttribute('content');
        if($meta->getAttribute('name') == 'description')
            $description = $meta->getAttribute('content');
    }
    if ($data != 0) {

        return back()->with(
            'title', '<span>title : <strong class="en-font"> ' . $title . '</strong></span>')->with(
            'description', '<span>description : <strong class="en-font"> ' . $description . '</strong></span>')->with(
            'viewport', '<span>viewport : <strong class="en-font"> ' . $viewport . '</strong></span>');
    }else{
        return back()
            ->withInput()
            ->withErrors(array('error' => 'آدرس سایت معتبر نمی باشد.'));
    }
}

错误标题:

逻辑异常

Process 类依赖于 proc_open,它在您的 PHP 安装中不可用。

截图错误

标签: phplaravelcurlphp-curllaravel-6.2

解决方案


推荐阅读