相关疑难解决方法(0)

使用file_get_contents的HTTP请求,获取响应代码

我正在尝试file_get_contentsstream_context_createPOST 一起使用.我的代码到目前为止:

    $options = array('http' => array(
        'method'  => 'POST',
        'content' => $data,
        'header'  => 
            "Content-Type: text/plain\r\n" .
            "Content-Length: " . strlen($data) . "\r\n"
    ));
    $context  = stream_context_create($options);
    $response = file_get_contents($url, false, $context);
Run Code Online (Sandbox Code Playgroud)

它工作正常,但是,当发生HTTP错误时,它会发出警告:

file_get_contents(...): failed to open stream: HTTP request failed! HTTP/1.0 400 Bad Request
Run Code Online (Sandbox Code Playgroud)

并返回false.有办法:

  • 抑制警告(我打算在失败的情况下抛出自己的异常)
  • 从流中获取错误信息(至少是响应代码)

php http file stream

76
推荐指数
3
解决办法
7万
查看次数

file_get_contents处理错误的好方法

我试图错误处理file_get_contents方法,所以即使用户输入一个不正确的网站,它将回显一条错误消息而不是非专业

警告:file_get_contents(sidiowdiowjdiso):无法打开流:第6行的C:\ xampp\htdocs\test.php中没有此类文件或目录

我想如果我试一试并抓住它将能够捕获错误,但这不起作用.

try  
{  
$json = file_get_contents("sidiowdiowjdiso", true); //getting the file content
}  
catch (Exception $e)  
{  
 throw new Exception( 'Something really gone wrong', 0, $e);  
}  
Run Code Online (Sandbox Code Playgroud)

html php

11
推荐指数
3
解决办法
5万
查看次数

如何使用Simple HTML Dom Parser处理页面抓取错误

与Facebook类似,我正在构建一个允许用户发布链接的应用程序.

用户在输入字段中填写链接,然后控制器返回

Title
Link
Meta description
Images (as thumbnails)
Run Code Online (Sandbox Code Playgroud)

到了视野.

这是控制器代码:

    $url = $this->input->post('posts_link');

    if (!empty($url)) {

        $html = file_get_html($url);

        foreach ($html->find('img') as $element) {

          $src = "";

          $src = $element->src;

            if (preg_match("/\.jp[e]?g$/i", $src)) {

            $images[] = $src;

            }
        }

        $data['posts_link'] = $url;
        $data['images']     = $images;
        $data['title']          = $html->find('title', 0)->plaintext;
        $data['meta']           = get_meta_tags($url);
Run Code Online (Sandbox Code Playgroud)

我遇到的问题是没有图像,没有标题或没有描述(单独或组合).

我正在使用codeigniter,它会在视图上抛出几个错误,我宁愿压制它.

是否有最佳实践来抑制这些错误或放置空变量,以防DOM解析器没有返回标题/图像/描述?

比如我试过了

$data['images'] = $images ? $images : '';

但它并没有解决我的问题.

有什么建议?

谢谢.

php parsing dom codeigniter web-scraping

5
推荐指数
1
解决办法
1567
查看次数

标签 统计

php ×3

codeigniter ×1

dom ×1

file ×1

html ×1

http ×1

parsing ×1

stream ×1

web-scraping ×1