2010-06-07 50 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个文件夹中的图片链接全部用更多一点的代码。让我知道你是否也想看那个代码。