2012-03-09 15 views
2
$archiveNumber = 0; 
$archiveDirectory = 'blogtext/'; 
$archiveHandle = opendir($archiveDirectory); 
$entryAfter; 
$entry; 
if($archiveHandle = opendir('blogtext/')) 
{ 
    while(false !== ($entry = readdir($archiveHandle))) 
    { 
     if($entry != '.' && $entry != '..' && !is_dir($entry) && strpos($entry, '-subject')) 
     { 
      $entryAfter = str_replace('-'.$number.'-', '', $entry); 
      $entryAfter = str_replace('-subject', '', $entryAfter); 
      $entryAfter = str_replace('.txt', '', $entryAfter); 
      echo '<a href="blog/'.strtolower($entryAfter).'.php"> '; 
      include('blogtext/'.$entry); 
      echo '</a><br>'; 
      $number++; 
     } 
    } 
    closedir($archiveHandle); 
} 

この機能でリンクがエコーアウトされる順序を逆にする方法はありますか?現時点でPHP:リンクがエコーアウトされる順序を逆にする

は、リンクは、逆の順序(-biggestnumber-name.phpで開始し、-smallestnumber-name.phpで終わる)でプリントアウトされます。私はそれを逆にしたいと思います。

(私はこれをやっている方法は、おそらくパンツオンヘッド燃性であることを知っている。あなたはそれを言及する必要はありません。)

答えて

1
$archiveNumber = 0; 
$archiveDirectory = 'blogtext/'; 
$archiveHandle = opendir($archiveDirectory); 
$entryAfter; 
$entry; 

$toEcho=""; //A string we'll echo later 

if($archiveHandle = opendir('blogtext/')) 
{ 
    while(false !== ($entry = readdir($archiveHandle))) 
    { 
     if($entry != '.' && $entry != '..' && !is_dir($entry) && strpos($entry, '-subject')) 
     { 
      $entryAfter = str_replace('-'.$number.'-', '', $entry); 
      $entryAfter = str_replace('-subject', '', $entryAfter); 
      $entryAfter = str_replace('.txt', '', $entryAfter); 
      ob_start(); //Start buffering echo 
      echo '<a href="blog/'.strtolower($entryAfter).'.php"> '; 
      include('blogtext/'.$entry); 
      echo '</a><br>'; 
      $toEcho=ob_get_clean().$toEcho; //Insert the link at the begining of $toEcho, that's where we reverse the echo order 
      $number++; 
     } 
    } 
    closedir($archiveHandle); 
} 
echo $toEcho; //echo the reversed list of links 

私はこれをテストしませんでしたが、アイデアはうまくいくはずです。

+0

まあ、それはやり方で、それが仕事をして、リストの順番を逆に行います。 しかし、この方法では、ランダムので、リストを破り、第2のリンクから-number-コードを削除します。 つまり、リンクは - > '-2-subject.php'とされています リンク先は 'subject.php' 現在、リストには3つのアイテムしかありません。他のリンクも壊れてしまいます。 アイデア –

+1

私はob_startがこの奇妙な動作の理由だとは思わない。この変更の前には何かが存在していなければなりません。 – jptsetung

+0

ディレクトリ内のファイル名は何ですか? – jptsetung

2

代わりに、読み取り後にそれらを直接エコーの、全て集めます配列にリンクし、その配列をソートしてからそれを反復処理します。

関連する問題