PHPとファイル。 フリップを使用してMySQLを使用しないニュース

すべてのPHP初心者プログラマーにとっての基礎は、データベースを使用せずにサイトを整理することです。 便宜については書きません。 稼働中のシステムは非常に多く、非常に魅力的です。 「PHPとファイル」の問題は、PHP + MySQL =標準のおかげで長い間解決されたと考えられています。 しかし、この問題は永遠に凍結しました。そして、まったく同じように、新しい支持者はこの質問に目を向け、PHPでのプログラミングの経験をすでに持っている人たちを返します。



ただし、2年前にデータベースを使用せずにサイトにニュースを表示する必要がある友人からのリクエストにより、このメモを書くように求められました。 さらに、サイトは自宅のコンピューター上にあるため、管理パネルさえ必要ありませんでした。 知り合いは、これ以上簡単なものはないと確信しました。ノートブックを開き、必要なテキストを書き留めて、目的のフォルダーに送信します。 人々が管理者パネルを思いついたのは無益ではないと彼に納得させることができませんでした。



サイトの問題をどのように解決したか覚えていません。 しかし、今ではこの考えが頭に浮かびました。 サーバーが稼働中のコンピューター上にあるという事実を考えると、管理パネルとメモ帳を使用してサイトにニュースを追加するときの操作数を計算して比較することは興味深いことです。



ただの楽しみのために-正直なところ、誰にとっても最短の操作リストを探しています。



古典的な方法

1.ブラウザを開きます。

2.アドレスを入力するか、タブをクリックします。

3.オプション。 パスワードを入力するか、確認を押します。

4.テキストを入力します。

6.送信をクリックします。



5〜6回の操作が可能です。 ブラウザを開くのに費やした時間。



ファイル方式

1.ノートブックを開きます。

2.テキストを入力します

3.サーバー上のフォルダーにすぐに保存します。



しかし、それには何かがあります!



3つの操作、おそらく4。ブラウザを開く時間はありません; Windowsのメモ帳はすぐに開きます。



Linux / BSDについては説明しません。viエディターはコンテンツマネージャー用ではありませんが、サーバーが動作しているコンピューター上にない場合でも高速です。sshを開き、vimまたはnanoを使用してファイルを作成します。 さらに、vimでは、ファイルの保存とクローズは1つのコマンドに完全に削減されます。 =)



今少し練習。 これは、ファイルに関するニュースのアイデアを実現する試みの始まりに過ぎません。 タスクは、最も単純で最も理解しやすいコードを書くことです。



機能面から何が欲しいですか?







何が欲しくないのでしょうか?



実装:



1.ファイルを保存するためにwwwディレクトリにフォルダーを作成します。bd/があります。



2.たとえば、 all.datという名前でbdにファイルを作成します。その中にニュースを追跡します。 このファイルが存在すると、scandirまたはglob関数を使用してファイルをカウントする必要がなくなります。 数値0を書き込みます。



管理パネル

wwwディレクトリーに広告フォルダーを作成し、次のスクリプトをそこに配置します。 index.phpがあります。 このディレクトリはパスワードで保護され、1人の管理者のみがアクセスできることを考慮すると、ここでは適切なコードのいくつかの原則を無視できます。



ニュース入力フォーム。

<div align="center"> <form action="index.php" method="post"> <p>New</p> <br/> <textarea name="text1" cols="80" rows="25"></textarea> <p><input name="ok" type="submit" value="send" "/> <input type="reset" value=reset /></p> </form> </div>
      
      







すべてがシンプルです。 フォームを処理します。 最低限の条件を作ります。 テキストフィールドが空でない場合、レコードを記録するファイルall.datからレコードを取得します。 そしてその中に0があります。

0.txtという名前のファイルを作成し、その存在を確認してデータを書き込みます。

  <?php $text1 = $_POST['text1']; if (isset($_POST['ok']) && (!empty($text1))) { $all = file_get_contents('../bd/all.dat'); $file = '../bd/' . $all . '.txt'; if (!file_exists($file)) { $fp = fopen($file, "w"); fclose($fp); $fp = fopen($file, "r+"); fwrite($fp, $text1); } } ?>
      
      







次に、新しいファイルの存在を確認し、ファイルall.datのカウンターを1増やします。

 <?php $new = '../bd/' . $all . '.txt'; if (file_exists($new)) { $all+= 1; $fp = fopen('../bd/all.dat', "r+"); fwrite($fp, $all); fclose($fp); } ?>
      
      







メインページにニュースを表示するには、このようなスクリプトを記述します。 all.datからレコード数を取得します。

次に、ページの変数-p-が設定されていて、そのようなファイルがある場合、コンテンツを取得します。

それ以外の場合は、最後のレコードが作成されます。

 <?php $p = $_GET['p']; $allcount = file_get_contents('bd/all.dat'); $entry = "bd/{$p}.txt"; if (isset($p) && file_exists($entry)) { $news = file_get_contents($entry); } else { $p = $allcount - 1; $entry = "bd/{$p}.txt"; $news = file_get_contents($entry); } ?> <div class="bform"><div class="headlines"><?=$news?></div></div> <div class="footer "> <a href="index.php">First</a> | <a href="index.php?p=<?=--$p?>">Next</a> </div>
      
      







エントリは上下が逆になっていることに注意してください。つまり、名前に大きな数字が含まれるファイルはメインの最新ニュースであり、デクリメントは巻き戻しに使用されます。



結論:配列、ループ、関数glob、scandirを取り除くことが判明しました。

管理パネルのスクリプトに削除と編集を追加するのも同じくらい簡単です。 保護を整理するためだけに残っており、無料のホスティングでスクリプトをテストできます。



ファイルは.txtではなく.htmlに保存できます。これにより、各ファイル(メタタグなど)を登録できます。

このオプションは管理パネルに簡単に追加できます。



ポスト台本:

この記事の目的は、報道機関向けの専門的なソリューションの混雑に注意を向け、マイクロモーターを書くためのインスピレーションを見つけることです。



インスピレーションのためのリンク: 仕事の例と正確なコピーへのリンク



追加:このスクリプトに基づいて、 自動テキストスライダーの実装を試みることができます 。 これにはajaxを使用できます。以下の例の疑似ajaxと少しのアニメーション(CSS3)を使用します。

OperaまたはChromeで開くことを推奨: リンク



フィクション

スライダーで、一時停止を調整するオプションを追加できます。 スクリプトを使用してグルーブを計算し、文字数を考慮して(さらに、大人の平均読み取り速度も考慮して)時間値を設定すると、速度読み取りの完全自動システムが判明する可能性があります。

テキストの音声認識のみを追加し、画面から離れることができます。



All Articles