我已经两次遇到这个问题了,我无法在互联网上找到答案。
我在vagrant机器上安装了一个本地的开发apache服务器,它正确地为我的网站服务。我还在/ etc / hosts中正确设置了主机,我可以使用任何浏览器轻松访问开发网站。但是当我尝试获取已处理的php脚本的内容(使用file_get_contents())时,要将其转换为pdf文件,该函数会忽略我的主机设置并尝试在Internet上找到此站点。它并不存在,因为该网站尚未生效。
有没有办法让file_get_contents符合我的主机设置?
我的php脚本:
$html = file_get_contents(get_template_directory_uri(). "/pdf-template.php");
我的主机设置:
192.168.56.123 site.com
192.168.56.123 www.site.com
答案 0 :(得分:0)
function get_contents($url, $ua = 'Mozilla/5.0 (Windows NT 5.1; rv:2.0.1) Gecko/20100101 Firefox/4.0.1', $referer = 'http://www.google.com/') {
$header[0] = "Accept-Language: en-us,en;q=0.5";
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_USERAGENT, $ua);
curl_setopt($curl, CURLOPT_REFERER, $referer);
curl_setopt($curl, CURLOPT_HTTPHEADER, $header);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_TIMEOUT, 10);
$content = curl_exec($curl);
if(curl_errno($curl)){
http_response_code(500);
}
curl_close($curl);
return $content;
}
// setting up dns cache
$ch = curl_init('http://site.localhost/');
curl_setopt($ch, CURLOPT_RESOLVE, ["site.localhost:80:127.0.0.1"]);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_exec($ch);
// getting content
get_contents('http://site.localhost/')
该代码适用于我而不是/ etc / hosts。