2010-06-07 51 views
1

我有一個鏈接,我要重複50次,爲每個文件夾,和我有我要重複15 folders.the鏈接看起來是這樣的:如何製作簡單的路徑生成器?

<a href="update/images/Cars/car (x).JPG" rel="lightbox[cars]"></a> 

目前,JPG文件命名爲汽車1-汽車50.我真的很希望能夠生成這個腳本,以便我可以輸入路徑「更新/圖像/汽車/」圖片標題(汽車)和輸入的次數,我需要這個鏈接,然後把它吐出來的東西,看起來像這樣:

<a href="update/images/Cars/car (1).JPG" rel="lightbox[cars]"></a> 
<a href="update/images/Cars/car (2).JPG" rel="lightbox[cars]"></a> 
<a href="update/images/Cars/car (3).JPG" rel="lightbox[cars]"></a> 
<a href="update/images/Cars/car (4).JPG" rel="lightbox[cars]"></a> 
<a href="update/images/Cars/car (5).JPG" rel="lightbox[cars]"></a> 
<a href="update/images/Cars/car (6).JPG" rel="lightbox[cars]"></a> 

,然後不斷重複,我假設這可以用一個計數器來完成,但我不河畔即謝謝!

回答

2

您可以用for循環做到這一點:

$path = "update/images/Cars/"; 
$title = "car"; 
$times = 50; 

for($i = 1; $i <= $times; $i++) 
    echo "<a href=\"$path$title ($i).JPG\" rel=\"lightbox[$title]\"></a>\n"; 

我用$titlelightbox說法,因爲你沒有指定

+0

很酷,謝謝!我認爲這將起作用 – Ryan 2010-06-07 19:05:05

2

使用功能強大的文本編輯器。 ;-)

例如,在Vim中,我可以使用擊鍵以下順序來創建所需的文本:

  • <a href="update/images/Cars/car (0).JPG" rel="lightbox[cars]"></a> Esc鍵
  • q(開始將宏記錄到寄存器a
  • ÿ(抽出(=拷貝)整行)
  • p(粘貼到下面的行)
  • /(返回(搜索左括號)
  • 空間(預先光標一個字符,所以它現在坐在數字上)
  • Ctrl + a(增加數量BER)
  • q(停止錄製宏)
  • @一個(調用宏49次)
0

如果您要添加或從文件夾中刪除圖像,那麼使用標準PHP庫中的DirectoryIterator對象可能會獲得更好的結果。使用它需要PHP5,但也有一種古老的方式來處理它。這段代碼假定所有在目錄中的文件是圖像,你要列出:

$link = '<a href="/path/to/update/images/Cars/%s" rel="lightbox[cars]">%s</a>'; 
$dir = new DirectoryIterator("/path/to/update/images/Cars"); 
foreach($dir as $file) if(!$file->isDot()) echo sprintf($link, $file, $file); 

請注意,我把關於錨元素到$鏈接變量的信息,然後用sprintf的打印這些錨到屏幕上。如果你沒有提供給你PHP5,你會想要做這種方式:

$link = '<a href="/path/to/update/images/Cars/%s" rel="lightbox[cars]">%s</a>'; 
$dir = opendir("/path/to/update/images/Cars"); 
while(($file = readdir($dir)!==false) if($file != "." && $file != "..") echo sprintf($link, $file, $file); 
closedir($dir); 

這些只會是必要的,如果你要添加更多的汽車照片到庫中不想更新產生所有鏈接的頁面。這兩個片段都應該自動搜索汽車圖像目錄並創建您需要的鏈接。

你也可以改變這些片段來搜索子目錄,這樣你就可以用所有的15個文件夾中的圖片鏈接全部用更多一點的代碼。讓我知道你是否也想看那個代碼。