参照されているコードを確認し、ニーズに合わせて修正しました。createTree関数のみをこれに置き換えて試してみてください
function createTree($directory,$parent = '')
{
$html = "<ul>";
foreach($directory as $keyDirectory => $eachDirectory)
{
if(is_array($eachDirectory))
{
$html .= "<li class='closed'><span class='folder'>" . $keyDirectory . "</span>";
$html .= createTree($eachDirectory,$keyDirectory);
$html .= "</li>";
}
else
{
$origin = 'imgs';
if(trim($parent) !== ''){
$path = $origin . '/' . $parent . "/" .$eachDirectory;
}else{
$path = $origin . '/' . $eachDirectory;
}
$html .= "<li><span class='file'><a href='" . $path . "' target='_blank'>". $eachDirectory ."</a></span></li>";
}
}
$html .= "</ul>";
return $html;
}
$parentという関数の引数リストに新しい引数アイテムを追加したことに気付くでしょう。これは、リンクされるアイテムの親フォルダーのフォルダー名を運ぶために使用されます。次に、フォルダー名が$origin変数に追加されます (これは、getFolderTree関数を使用してトラバースしたフォルダーの名前です。私の場合は「imgs」です。
$parent が空かどうかをチェックする if-else ステートメントがあります。明確にしたい場合は、質問してください。
注 1: 完全なパスを取得するには、$origin の値をルートのフォルダーの名前に置き換える必要があります。
注 2: フォワードスラッシュ (/) をシステムのものに置き換える必要があります。たとえば、*NIX の場合はバックスラッシュであるため、PHP の場合は文字列内で作業するときに二重のバックスラッシュを使用する必要がありますが、Windows を使用している場合、私の編集は元気に働く