从php函数发布<input />值

时间:2016-02-02 13:06:50

标签: php html uri mpdf

我正在使用一个函数收集使用mpdf构建报告所需的所有信息,但是为了保持简单,我将所有值传递给一个单独的php文件,然后在第二个php文件中构建传回的html代码

目前使用$ _GET方法传递,但现在我收到错误URI is to long ...

有没有办法在没有from和submit按钮的情况下使用$_POST方法将所有值传递给php文件? 我想将它添加到函数中而不会破坏太多的代码...

注意:

使用$ _SESSION不是一个选项,因为我调用php文件从远程网站使用下面的代码构建函数,并使用结果构建pdf文件...

代码:

$body = file_get_contents("http://mywebsite.com/templates/statement/body.php".);

非常感谢任何帮助。

2 个答案:

答案 0 :(得分:1)

如果在php.ini中启用了curl扩展名,则可以使用 curl 发布到其他页面。

$params['pageHeader'] = "some header text";
$params['pageBody'] = "the page body";
$params['somethingElse'] = "other";
$postData = http_build_query($params); // look up http_build_query in the manual

$curlHandler = curl_init();
$url = "http://yourwebsite/post_to_mpdf.php";
curl_setopt($curlHandler, CURLOPT_URL,$url);
// yes, I'm posting alright
curl_setopt($curlHandler, CURLOPT_POST, true); 
curl_setopt($curlHandler, CURLOPT_POSTFIELDS, $postData);
curl_setopt($curlHandler, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($curlHandler);

echo $response;
curl_close($curlHandler);

答案 1 :(得分:1)

您不需要发出http请求只是为了避免回显html。

您可以改为使用输出缓冲:

的template.php:

<html>
<head></head>
<body>
<h1><?php echo $title;?></h1>

<ul>
<?php foreach($items as $item):?>
    <li><?php echo $item;?></li>
<?php endforeach;?>
</ul>

</body>
<html/>

main.php:

$title = 'A title';
$items = ['one','two','three'];
//start output buffer
ob_start();
include 'template.php';
//capture output buffer as a string
$html = ob_get_clean(); //magic!

$html包含以下字符串:

<html>
<head></head>
<body>
<h1>A title</h1>

<ul>
    <li>one</li>
    <li>two</li>
    <li>three</li>
</ul>

</body>
<html/>