有一个header.php文件,它包含一些返回HTML的PHP代码.我知道我可以使用require,include来回显结果,但我想要做的是将处理后的输出字符串存储到变量中.
在一个页面中,我使用了:
$headerHTML=file_get_contents('header.php');
Run Code Online (Sandbox Code Playgroud)
然后我得到了PHP代码输出而不是处理过的HTML输出.我知道添加http://会有所帮助.但我更喜欢继续使用相对路径,我怎么能告诉函数正确处理php文件?
注意:我想继续使用此声明,file_get_contents而不是ob_start()尽可能使用.
I recently upgraded my XAMPP from PHP 5.2 to 5.3.1
I seem to be having a problem with file_get_contents().
I can use the function to get something like "http://www.google.com", but it times out when I use it on a domain I have setup locally e.g. "http://localhost/my_dir/my_css_file.css".
我不确定问题是什么.如果这是一个错误,是否有可行的替代方案?
好心提醒.
我正在开发一个涉及使用cURL或file_get_contents获取页面的项目.问题是,当我尝试回显所提取的html时,输出似乎与原始页面不同,并非所有图像都显示出来.请问我想知道是否有解决方案.我的代码
<?php
//Get the url
$url = "http://www.google.com";
//Get the html of url
function get_data($url)
{
$ch = curl_init();
$timeout = 5;
//$userAgent = "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US)AppleWebKit/525.13 (KHTML, like Gecko) Chrome/0.X.Y.Z Safari/525.13.";
$userAgent = "IE 7 – Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.04506.30)";
curl_setopt($ch, CURLOPT_USERAGENT, $userAgent);
curl_setopt($ch, CURLOPT_FAILONERROR, true);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_AUTOREFERER, true);
curl_setopt($ch, CURLOPT_TIMEOUT, 10);
curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,$timeout);
$data = curl_exec($ch);
curl_close($ch);
return …Run Code Online (Sandbox Code Playgroud) 我试图从远程服务器下载图像,调整大小,然后保存本地计算机.
为此,我使用WideImage.
<?php
include_once($_SERVER['DOCUMENT_ROOT'].'libraries/wideimage/index.php');
include_once($_SERVER['DOCUMENT_ROOT'].'query.php');
do {
wideImage::load($row_getImages['remote'])->resize(360, 206, 'outside')->saveToFile($_SERVER['DOCUMENT_ROOT'].$row_getImages['local']);}
while ($row_getImages = mysql_fetch_assoc($getImages));
?>
Run Code Online (Sandbox Code Playgroud)
这大部分时间都有效.但它有一个致命的缺陷.
如果由于某种原因,其中一个图像不可用或不存在.Wideimage引发致命错误.防止下载可能存在的任何其他图像.
我试过像这样检查文件存在
do {
if(file_exists($row_getImages['remote'])){
wideImage::load($row_getImages['remote'])->resize(360, 206, 'outside')->saveToFile($_SERVER['DOCUMENT_ROOT'].$row_getImages['local']);}
}
while ($row_getImages = mysql_fetch_assoc($getImages));
Run Code Online (Sandbox Code Playgroud)
但这不起作用.
我究竟做错了什么??
谢谢
我有一个PHP脚本从远程服务器获取图像,以便我可以使用HTML5 canvas API对其进行操作.
<?php
if ((isset($_GET['url']))) {
$url = $_GET['url'];
$file_format = pathinfo($url, PATHINFO_EXTENSION);
try
{
header("Content-Type: image/$file_format");
header("Content-disposition: filename=image.$file_format");
$img = file_get_contents($url);
echo $img;
}
catch(Exception $e)
{
echo $e->getMessage();
}
}
else die('Unknown request');
?>
Run Code Online (Sandbox Code Playgroud)
典型的请求看起来像这样:
fetch_image.php?url=http://example.com/images/image.png
Run Code Online (Sandbox Code Playgroud)
我的本地服务器上的一切正常,但生产服务器给我这个错误:
NetworkError:500内部服务器错误.
错误日志注册此消息:
PHP警告:无法修改标头信息 - 已发送的标头.
我已经尝试了一些建议,但它不起作用:
allow_url_fopen = 1
Run Code Online (Sandbox Code Playgroud) 我的托管comp已禁用除curl之外的所有套接字功能.他们在启用它的问题上是如此不负责任.我可以想到另一个托管但我想知道以下内容.
我问了一个与此有关的问题,这是一个延续的又一个问题.
我无法使用file_get_contents('php:// input')并且在php.ini中禁用了always_populate_raw_post_data,因此我无法使用$ HTTP_RAW_POST_DATA.
那么获取原始发布数据的替代方法是什么?
例如,我有与facebook的设置通知回调网址.因此,当有事件发生时,Facebook会将信息发布到我网站的特定网址.
所以我需要从facebook读取原始帖子数据,根据上面的描述,我想知道php:// input和$ HTTP_RAW_POST_DATA的替代方案.
是否有可能读取一些正文发布到我的网站包括标题的总内容,以便我可以剥离标题部分,并可以使用帖子的正文?
是的...当一些人发布任何内容时,我们可以得到完整的内容.
我通过file_get_contents连接到不可靠的API.由于它不可靠,我决定将api调用放入while循环中:
$resultJSON = FALSE;
while(!$resultJSON) {
$resultJSON = file_get_contents($apiURL);
set_time_limit(10);
}
Run Code Online (Sandbox Code Playgroud)
换句话说:在第3次尝试成功之前说API失败了两次.我是否发送了3个请求,或者我已经发送了数百个请求,这些请求是否符合3秒窗口的要求?
我从网站上获取我的应用程序数据,比如说x.com.我使用php函数file_get_contents()来获取数据.可以肯定的是,我的服务器的IP地址将显示在x.com的日志中.有没有办法隐藏我的服务器的IP而不使用代理?
如果我有代理,如何将其与file_get_contents()一起使用?
我需要在HTTP POST和HTTP GET方法中发送请求
我有一个PHP脚本,它使用调用主PHP模板(充当HTML模板)file_get_contents,从中替换了几个字,然后将最终文件另存为另一个PHP在目录中。
但是主PHP模板本身具有include();且require_once();在其中,替换单词后保存的文件不会加载从主模板调用的文件。
保存的文件的HTML源代码包含<?php include('file_here'); ?>在其中,但file_here的输出不包含它-请参见图像。

我怎样才能调用file_get_contents(); 仍然让主模板执行include(); 或require_once(); ?
socallink.txt:
"脸谱", "推特", "推特", "谷歌加", "YouTube" 的, "Pinterest的", "Instagram的"
PHP:
$file = file_get_contents('./Temp/socallink.txt', true);
$a1 = array($file);
print_r($a1);
Run Code Online (Sandbox Code Playgroud)
结果:
Array
(
[0] => "Facebook","Twitter","Twitter","google-plus","youtube","pinterest","instagram"
)
Run Code Online (Sandbox Code Playgroud)
需要:
$a1['0']=facebook;
$a1['1']=Twitter;
Run Code Online (Sandbox Code Playgroud)