标签: file-get-contents

使用file_get_contents将本地PHP文件的HTML输出存储到字符串中

有一个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()尽可能使用.

php file-get-contents

4
推荐指数
1
解决办法
2158
查看次数

file_get_contents not working for local files

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".

我不确定问题是什么.如果这是一个错误,是否有可行的替代方案?

好心提醒.

php file-get-contents

4
推荐指数
2
解决办法
2万
查看次数

渲染时,cURL Html输出与原始页面不同

我正在开发一个涉及使用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)

html php curl file-get-contents

4
推荐指数
1
解决办法
4405
查看次数

下载前检查远程服务器上是否存在映像

我试图从远程服务器下载图像,调整大小,然后保存本地计算机.

为此,我使用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 file-get-contents file-exists

4
推荐指数
1
解决办法
2766
查看次数

file_get_contents不在生产服务器上工作,在本地工作正常

我有一个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)

php file-get-contents production-environment

4
推荐指数
1
解决办法
1万
查看次数

当file_get_contents和always_populate_raw_post_data被禁用时,php:// input和$ HTTP_RAW_POST_DATA的替代方法是什么

我的托管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的替代方案.

是否有可能读取一些正文发布到我的网站包括标题的总内容,以便我可以剥离标题部分,并可以使用帖子的正文?

是的...当一些人发布任何内容时,我们可以得到完整的内容.

http file-get-contents php-ini

4
推荐指数
1
解决办法
6187
查看次数

file_get_contents()是阻塞函数吗?

我通过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秒窗口的要求?

php file-get-contents blocking

4
推荐指数
1
解决办法
4216
查看次数

将代理与file_get_contents一起使用

我从网站上获取我的应用程序数据,比如说x.com.我使用php函数file_get_contents()来获取数据.可以肯定的是,我的服务器的IP地址将显示在x.com的日志中.有没有办法隐藏我的服务器的IP而不使用代理?

如果我有代理,如何将其与file_get_contents()一起使用

我需要在HTTP POST和HTTP GET方法中发送请求

php proxy file-get-contents

4
推荐指数
1
解决办法
2万
查看次数

PHP:file_get_contents一个包含include()的PHP文件;

我有一个PHP脚本,它使用调用主PHP模板(充当HTML模板)file_get_contents,从中替换了几个字,然后将最终文件另存为另一个PHP在目录中。

但是主PHP模板本身具有include();require_once();在其中,替换单词后保存的文件不会加载从主模板调用的文件。

保存的文件的HTML源代码包含<?php include('file_here'); ?>在其中,但file_here的输出不包含它-请参见图像。

在此处输入图片说明

我怎样才能调用file_get_contents(); 仍然让主模板执行include(); 或require_once(); ?

php include file-get-contents

4
推荐指数
1
解决办法
4033
查看次数

从file_get_contents()值创建数组

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)

php arrays file-get-contents

4
推荐指数
1
解决办法
2万
查看次数