首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >更改目录名或回显内路径,在链接上单击“使用php”。

更改目录名或回显内路径,在链接上单击“使用php”。
EN

Stack Overflow用户
提问于 2019-04-17 07:24:53
回答 1查看 555关注 0票数 0

我在努力创建艺术家画廊。画廊是创建的,但当我需要50个艺术家,我必须创建50页。因此,我只需要改变方向后,链接是点击文件夹。做这件事最好的方法是什么?链接到我的画廊http://www.divart.sk/vg/krajina.php

与艺术家的链接

代码语言:javascript
复制
<option value="http://www.divart.sk/vg/krajina.php">krajina</option>
<option value="http://www.divart.sk/vg/virtualgallery.php">Adina Chitu</option>

php代码

代码语言:javascript
复制
$dir = "krajina/";
if (is_dir($dir)){
  if ($dh = opendir($dir)){
    while (($file = readdir($dh)) !== false){
      if( $file == '.' || $file == '..')
        continue;
      echo " <div><img src='krajina/" . $file . "'/></div>";
    }
    closedir($dh);
  }
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-04-17 09:14:55

您可以通过使用()和使用ScanDir文件夹名通过Query String传递给php脚本来做简单的工作。

您必须创建这个结构:

http://www.divart.sk/vg/gallery.php?dir=the_artist_folder

http://www.divart.sk/vg/krajina/

http://www.divart.sk/vg/nicole/

http://www.divart.sk/vg/jonathan/

其中文件夹名为文件夹艺术家,而gallery.php是读取文件夹艺术家php脚本

按照注释中的要求,您可以通过加载一个文本文件(不是最好的方式)来添加艺术家信息,例如:

http://www.divart.sk/vg/krajina/artist.txt

http://www.divart.sk/vg/nicole/artist.txt

http://www.divart.sk/vg/jonathan/artist.txt

文本文件artist.txt示例

代码语言:javascript
复制
Artist: krajina;
Born: 1967/04/18;
Photo Genre: Nature;
License Photo: Creative Commons;

例如:<option value="http://www.divart.sk/vg/gallery.php?dir=krajina">krajina</option>

gallery.php

代码语言:javascript
复制
<?php ini_set('default_charset', 'UTF-8'); ?>
<!DOCTYPE html>

<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <meta name="distribution" content="global">
  <meta name="language" content="italian it">
  <meta name="language" content="english en">
  <meta name="rating" content="general">
  <meta name="revisit-after" content="6 days">
  <meta name="pragma" content="no-cache">
  <meta name="robots" content="index, nofollow">
  <title>Gallery</title>
  <link rel="stylesheet" type="text/css" media="all" href="gallery.css">
  <link rel="shortcut icon" href="/favicon.ico">
</head>

<body>

<?php
  // example: http://www.divart.sk/vg/gallery.php?dir=krajina
  // rev .04 (23.04.2019)
  function file_get_contents_utf8($fn) {
    $content = file_get_contents($fn);
    return mb_convert_encoding($content, 'UTF-8', mb_detect_encoding($content, 'UTF-8, ISO-8859-1', true));
  }
  $gurl = $_SERVER['QUERY_STRING'];
  $ourl = array();
  $list = array();
  parse_str($gurl, $ourl);
  $valid_artist = array("krajina", "nicole", "jonathan");
  if (isset($ourl['dir']) || (!empty($ourl['dir']))) {
    if (!in_array($ourl['dir'], $valid_artist)) {
      exit("This artist name isn't allowed");
    }
    if ((!file_exists($ourl['dir'])) || (!is_dir($ourl['dir']))) {
      exit("This folder doen't exist!");
    }
    if (preg_match('/[\s]/', $ourl['dir'])) {
      exit("Detected white space, please don't use it");
    } else {
      $dir = htmlspecialchars($ourl['dir'], ENT_NOQUOTES, 'UTF-8');
    }
  }
  if ((isset($dir)) || (!empty($dir))) {
    if (file_exists("$dir/artist.txt") && is_file("$dir/artist.txt")) {
      $artist = file_get_contents_utf8("$dir/artist.txt");
      $artist = htmlentities($artist, ENT_QUOTES, 'UTF-8');
      echo "<div>$artist</div>\n";
    }
    $list = scandir($dir);
    foreach ($list as $file) {
      if (is_file($dir . '/' . $file)) {
        $ext = strtolower(pathinfo($file, PATHINFO_EXTENSION));
        if ($ext == 'gif' || $ext == 'jpeg' || $ext == 'jpg' || $ext == 'png') {
          echo "<div>\n<img src=\"" . $dir . '/' . $file . "\" alt=\"" . $dir . "\"><br />\n</div>\n";
          echo "<div>\nPhoto: " . basename($file) . "<br />\n</div>\n";
        }
      }
    }
  } else {
    echo "No Artist Folder to Show!";
  }
?>

</body>

</html>

如果您看到由生成的html源代码,您可以看到:

代码语言:javascript
复制
<!DOCTYPE html>

<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <meta name="distribution" content="global">
  <meta name="language" content="italian it">
  <meta name="language" content="english en">
  <meta name="rating" content="general">
  <meta name="revisit-after" content="6 days">
  <meta name="pragma" content="no-cache">
  <meta name="robots" content="index, nofollow">
  <title>Gallery</title>
  <link rel="stylesheet" type="text/css" media="all" href="gallery.css">
  <link rel="shortcut icon" href="/favicon.ico">
</head>

<body>

<div>Artist: krajina;
Born: 1967/04/18;
Photo Genre: Nature;
License Photo: Creative Commons;</div>
<div>
<img src="krajina/001.jpg" alt="krajina"><br />
</div>
<div>
Photo: 001.jpg<br />
</div>
<div>
<img src="krajina/002.jpg" alt="krajina"><br />
</div>
<div>
Photo: 002.jpg<br />
</div>
<div>
<img src="krajina/003.jpg" alt="krajina"><br />
</div>
<div>
Photo: 003.jpg<br />
</div>
<div>
<img src="krajina/004.jpg" alt="krajina"><br />
</div>
<div>
Photo: 004.jpg<br />
</div>
<div>
<img src="krajina/005.jpg" alt="krajina"><br />
</div>
<div>
Photo: 005.jpg<br />
</div>

</body>

</html>

我希望这能帮到你。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55722078

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档