2013-04-16 164 views
-2

我有一個網站,我作爲一個學校項目,看起來我已經跳入了一個有點太深。我使用PHP爲每個數組對象創建一個頁面。在每個頁面中,我想個性化內容以匹配頁面。例如,我有一個名爲Darryl的頁面,它將包含我所有的圖片。其他頁面將被創建,並且這些頁面的內容將根據頁面動態創建。從一個變量調用函數(PHP)

我想要做的是使用PHP更改img src並使用計數器使不同的圖像彈出。這對我來說很難解釋。

我這行HTML代碼,其中包含PHP(它決定哪些圖像得到顯示:

<td><img style="width:11em;" class="magnify" src="<?php print $imgSrc; ?>"/><br><?php print $pageName; ?></td> 

我有是問題的一部分「打印$ IMGSRC;」一部分。這是。在我的PHP將創建src路徑與它使用這個變量$ IMGSRC區域,以獲得正確的路徑

該變量爲:

$imgSrc = "images"."/".$pageName."/".counter(); 

哪寫

+0

我與我發佈的所有問題有問題,請不要評論,而我試着解決問題。它不會讓我發佈,因爲它說我有無格式的代碼,但我所有的代碼都格式化了。 –

+0

你在HTML中尋找什麼輸出? image1.jpg,image2.jpg,image3.jpg ....? – Axel

+0

我認爲這不是每個數組對象的每個頁面的好主意。這就是爲什麼我們使用PHP,所以我們可以有一個單一的頁面來「統治所有」。 – Voitcus

回答

1

看起來你對某個函數是什麼或者何時執行它感到困惑。如果這是所有的代碼,你有你的網頁上:

$imgSrc = "images"."/".$pageName."/".counter(); 
<td> 
    <img style="width:11em;" class="magnify" src="<?php print $imgSrc; ?>"/><br> 
    <?php print $pageName; ?> 
</td> 

然後$imgSrc只寫過一次。所以不管counter()做什麼,它只做一次。你可以把整個東西包裝在一個for循環中,並且打電話給counter()。你可以刪除的$imageSrc局部變量,並在飛行中定義的屬性,就像這樣:

<td> 
    <img style="width:11em;" class="magnify" src="<?php print "images"."/".$pageName."/".counter(); ?>"/><br> 
    <?php print $pageName; ?> 
</td> 

這時如果counter()功能是有狀態的本身(如,它每次調用返回不同的值) ,你一切都準備好了。

你可以做一個有狀態的功能如下所示:

$counter_var = 0; 

function counter() { 
    global $counter_var; 
    return $counter_var++; 
} 

但全局是令人難以接受的,因爲創建苦苦追尋的副作用(等原因)。大多數人會告訴你使用for循環。我只提到它,因爲它看起來更接近你在原始代碼中試圖做的事情。

+0

我非常喜歡這個答案,它幫助我理解了爲什麼我的問題正在發生。我相信我現在可以嘗試修復它。 –

+0

哦,我完全錯過了一個重要的提示(道具給Rafee):你絕對需要在你的圖片源上添加一個文件擴展名。如果您的映像在磁盤上沒有擴展名,那麼您的Web服務器將不會使用正確的MIME類型標題來提供這些擴展名。 PS很高興我可以幫助和抱歉編輯給你一個頭痛的問題。 –

相關問題