簡體   English   中英

包含傳遞參數的文件

[英]include file passing a parameter

我正在使用ob_ *函數來構建一些內容,然后將這些內容傳遞到HTML模板並使用MPDF以pdf格式打印。

我需要包括來自另一個PHP文件的一些內容。 我需要包含的文件將運行查詢並根據id參數回顯表中的某些數據。 通常,在我的應用程序中,我使用ajax在正確的位置加載該文件,但是ob_ *函數在AJAX可以處理其內容之前就輸出數據(有關這一點,請參閱我的其他問題 ),因此我正在尋找一種解決方法。 我最好的主意是使用php include來完成技巧。 我腦海中的代碼如下所示:

foreach($listaz as $l){
    include "bp/businessplan.php?id=$l";
}

顯然這是行不通的(我知道這個SO問題中提到的include是如何工作的),因為我收到此錯誤:

警告:include(bp / businessplan.php?id = AZ000000213):無法打開流:在第1000行的/var/www/jdev/creditmanager/sofferenze/soff.php中沒有此類文件或目錄

$listaz將包含要傳遞到文件的參數列表,數組如下所示:

array(
    [0]=>AZ000000213
)

(在這種情況下,只有一項)所以問題是: 如何將businessplan.php文件的內容包含在主php文件中,與在主目錄中特定位置打印它的數組中的值一樣多PHP文件(一個接一個地添加到div中)?

  1. 嘗試使用__DIR__常量( http://php.net/manual/zh/language.constants.predefined.php )將絕對路徑添加到文件中,如下所示:

    include __DIR__."/bp/businessplan.php?id=$l";

它必須解決您的路徑問題。

  1. 而且,如果您想多次獲取內容,則可以嘗試使用return而不是ob_ *函數。 請在下面查看我的示例:

文件test.php

<?php
$r = '';
for ($i=0;$i<10;$i++) {
  $_GET['id'] = $i;
  $r .= include 'businessplan.php';
}

echo $r;

文件businessplan.php

<?php
return 'your html here'.$_GET['id'].PHP_EOL;

當我運行test.php時,它顯示以下行:

your html here0
your html here1
your html here2
your html here3
your html here4
your html here5
your html here6
your html here7
your html here8
your html here9

希望對您有所幫助

編輯1

  1. 找不到文件問題-嘗試從文件名中刪除?id=$l並將其傳遞給$_GET數組,如我上面建議的那樣。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM