2013-09-29 91 views
0

所以我試圖定義$ picurl1,以便它使用$ pic1中的值。所以,最後我希望它是:把HTML字符串放在PHP中

<img src="./pictures/{definition of pic1}.png"> 

現在我用這個PHP代碼:

$pic1 = '<script src="pic.js"></script>'; 
$picurl1 = '<img src="./pictures/' + $pic1 + '.png'">'; 

很抱歉,如果我不是很清楚。我真的不知道如何解釋它。我希望你明白。

換句話說,請告訴我應該將$ picurl1更改爲。

順便說一句,腳本隨機生成一個沒有'.png'的隨機圖片名稱。

在此先感謝。

+2

真的不清楚你想要做什麼。這個(使用正確的連接運算符)會產生字符串'.png'「>'這是非常無效的HTML。什麼是」pic1的定義「? – David

+2

連接運算符是'.',而不是'+' ' –

+1

如果腳本「隨機生成的圖片名稱不帶'.png',則無關緊要.PHP不會執行JavaScript,因此在組裝HTML時,不會運行腳本輸出一個隨機的圖片名稱 – Kiruse

回答

3

對於初學者,您使用錯誤的運算符連接PHP中的字符串。我認爲你的意思是:

$picurl1 = '<img src="./pictures/' . $pic1 . '.png'">'; 

更重要的是,什麼是「pic1的定義」?您的意思是pic.js中的代碼會隨機選擇一個文件名,並且您希望其結果成爲img標記中使用的網址嗎?

然後,您遇到的問題是PHP在客戶端上運行JavaScript時在服務器上運行。所以你的PHP代碼不能使用pic.js的結果,因爲在PHP代碼完成之後,只有當瀏覽器運行它時,它纔會有結果。

所以你需要在JavaScript代碼中獲得客戶端的結果。

pic.js如何創建該結果?也就是說,pic.js有沒有功能?現在我假設有,並且我將假設這個函數被稱爲getFileName。 (僅用於本示例)

在包含JavaScript代碼並且文檔中有img標記後,可以調用該函數並將img標記的src設置爲其結果。爲了幫助我們識別img標籤,讓我們給它一個id

<img src="default.gif" id="theImage" alt="This is a dynamic image" /> 

(。我給它的src默認值,因爲空值是無效的我也有它的完整性的alt值)改變其src值的函數的結果,你會做類似如下:

document.getElementById('theImage').src = getFileName(); 

請記住,這是所有客戶端代碼。您可以在PHP代碼中使用「結果」的唯一方法是計算是在PHP中完成,而不是在JavaScript中完成。

1

您必須考慮在客戶端代碼(javascript,html,css,...)之前執行所有服務器端代碼。所以你的代碼沒有任何意義,你不能在另一個更快執行的代碼中嵌入未定義的代碼。

如果你的js代碼必須返回一些事情,所以刪除PHP代碼,只需使用HTML代替

0

我成功地測試了這一點:

$picName = "greenButterfly7"; //note no spaces inbetween green and butterfly 

$picurl1 = "<img src='./pictures/" . $picName . ".png'>"; 

echo $picurl1; 

或純HTML的形式:

<img src='pictures/greenButterfly7.png'> 

或以嵌入形式(HTML內的PHP):

<img src='pictures/<?php echo $picName; ?>.png'>