我正在尝试file_get_contents与stream_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.有办法:
我试图错误处理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) 与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 : '';
但它并没有解决我的问题.
有什么建议?
谢谢.