2016-04-28 117 views
0

我有這樣的文件夾結構:如何將參數作爲GET方法傳遞給腳本?

\out 
    \MakeAvatar.php 
\root 
    \include 
     \Calculator.php 
    \img 
     \avatar 

什麼MakeAvatar.php?這是一個腳本,獲取參數(如id),並根據該參數製作頭像。現在我需要從Calculator.php傳遞一個參數($id)到MakeAvatar.php。我怎樣才能做到這一點?

這裏是我的代碼:

$_GET['id'] = $id; // passing 
file_put_contents("../img/avatar/".$id.".jpg", file_get_contents("../out/MakeAvatar.php")); 

但它不工作。我的意思是結果是一個未知的圖像(不清楚)

enter image description here

當我通過一個編輯器中打開該圖像,它是由含有的MakeAvatar.php含量(其所有代碼)。所以看起來問題是通過


注1:如果我把MakeAvatar.php成根,並通過像這樣的參數,那麼如果作品:

... file_get_contents("http://example.com/MakeAvatar.php?id=$id") 

但是當你看到MakeAatar.php超出根的,我不能使用http。那麼如何在沒有http的情況下傳遞一個論點?

+0

如果超出根目錄,可以嘗試使用帶有完整系統目錄路徑的'file_get_contents',如'/ out/MakeAvatar.php' – 2016-04-28 03:01:33

+0

請停止詢問同一問題的變體。它總是相同的答案。 – Barmar

+0

@Barmar請停止將我的問題標記爲重複。是的,他們有一個相同的概念,但在這個問題中,我真的需要一個解決方法。 – stack

回答

0

file_get_contents實際上是閱讀文件內容,而不是執行它。

你要麼從Calculator.php必須include您的文件或將其置於HTTP服務器,做一個本地的HTTP請求(例如,像file_get_contents('http://localhost/path/to/your/MakeAvatar.php')

我建議在MakeAvatar文件包裹你的重要邏輯轉換爲函數,然後執行該函數並執行該函數。

0

如果您的公共Web服務器目錄是根目錄,那麼您應該創建一個入口點,例如, root/avatar.php。我們稱之爲控制器。在控制器中,您應該使用一個類(我們稱之爲模型),該類有一個生成頭像的方法。

因此,您的結構可能如下所示:

根/ avatar.php

<?php 
require_once __DIR__ . '/../out/MakeAvatar.php'; 
MakeAvatar::printPng($_GET); 

出/ MakeAvatar。PHP

<?php 
class MakeAvatar { 
    public static function printPng(array $input) { 
    $id = $input['id']; 
    echo '... PNG data for $id here...'; 
    } 
} 

另外,我會保持模型像classeslib目錄;控制器 - 在public/something,並在不同的目錄中查看,如templates

相關問題