2012-04-12 72 views
0

我搜索了stackoverflow和其他一些網站,並嘗試新的代碼組合,現在幾個小時,但我放棄了.. 我有2個PHP文件,一個叫做getimages.php,另一個叫做mod_slidepluslight.php,我使用Joomla作爲CMS並製作了一個帶有lightbox的幻燈片模塊,現在我想通過在.xml文件中設置的模塊參數從Joomla內的文件夾中檢索圖像。我這樣做是通過使用此代碼:如何在函數中使用其他php腳本中的php變量()

$imagePath = $params->get('imagePath', 'banners'); 

現在,當我試圖聲明這個變量,在我的代碼,它沒有做任何事情,使用它。

function returnimages($relPath = "/KVD/images/") { 
$dirname = $_SERVER['DOCUMENT_ROOT'] . $relPath . $imagePath; 

$ imagePath應該添加在/KVD/images/......./之後或者現在的位置。整個代碼getimages.php看起來像這樣:

Header("content-type: application/x-javascript"); 

$imagePath = $params->get('imagePath', 'banners/'); 

function returnimages($relPath = "/KVD/images/") { 
$dirname = $_SERVER['DOCUMENT_ROOT'] . $relPath . $imagePath; 
$files = array(); 
$curimage = 0; 
if($handle = opendir($dirname)) { 
while(false !== ($file = readdir($handle))){ 
if (preg_match('/\.(jpg|jpeg|gif|png)$/', $file)){ 
print_r ('galleryarray['.$curimage.']="'. $relPath . $file .'";'); 
$curimage++; 
} 
} 

closedir($handle); 
} 
return($files); 
} 

print 'var galleryarray=new Array();'; //Define array in JavaScript 
returnimages() //Output the array elements containing the image file names 

謝謝,Koen。

回答

0

yoo調用函數中的$ imagePath,但$ imagePath超出函數範圍!您可以將$ imagePath作爲參數發送到函數

+0

感謝您的答案,你的意思是我應該添加我的$ imagePath = ....在我的功能? – Koen 2012-04-12 16:07:58

+0

這是一個可能的解決方案。另一個定義這樣的函數:函數returnimages($ relPath =「/ KVD/images /」,$ imagePath)然後當你調用它returnimages(null,$ imagePath) – 2012-04-12 16:11:09

+0

我可以邀請你聊天嗎? – Koen 2012-04-12 16:14:37

0

請記住變量的範圍:您的returnimages()函數將無法訪問$ imagePath varibale,直到您將其全局化或將其傳遞給該函數。

只需添加,對你的函數代碼的頂部:

global $imagePath; 
+0

嘿,謝謝你的回答,我現在設置的是這種方式,但它仍然無法正常工作。 $ imagePath = $ params-> get('imagePath','banners /'); function returnimages($ relPath =「/ KVD/images /」){全局$ imagePath; $ dirname = $ _SERVER ['DOCUMENT_ROOT']。 $ relPath。 $ ImagePath的; – Koen 2012-04-12 16:07:24

+1

請不要做'全球'... – PeeHaa 2012-04-13 12:19:38