検索
ホームページバックエンド開発PHPチュートリアル【100日で楽しく学ぶPHP】3日目:無制限のPHPファイル操作

[PHP 学習 100 日おめでとう] 3 日目: 手に負えない PHP ファイル操作

今回のモットー:

データベースが存在しなかったとき、ファイルの読み取りと書き込みは、プログラマーが誰もいない夜に実行できる唯一の作業の 1 つでした (必ずしもそうとは限りません~~~)。したがって、このテクノロジーが現在どれほどシンプルで高速で一般的になったとしても、私たちは依然として細心の注意を払う姿勢と厳格な倫理を維持する必要があり、その重要性と厳しさを決して無視してはなりません。

テキストの開始:

ファイルの読み取りについて少し話があります。スタジオ設立当初、経営が慌ただしかった頃、QQの友人から「自社のWebサイトを作りたいという友人がいる」と紹介され、勧められました。これを聞いたとき、私はとても興奮し、すぐに髪を整えてタバコの吸い殻を捨てました。なぜなら、友人がクライアントが後で私とビデオチャットしたいと言っていたからです(とてもおしゃれですか?)。また、彼は大企業の IT ディレクターであるため、非常に堅苦しく、あまり退廃的にならないように注意する必要があるとも言われています。わざと電気カミソリを取り出して剃りました。

私はこの種の何千ドルもかかるウェブサイトのビジネスがとても好きでした。基本的にはインターフェイスを整えて CSS を作成し、php コードを 100 文も書きませんでした。初心者を送るだけで1週間で完了しますが、再利用やその後のビジネスの拡大はまったく不可能ですが、1か月分のタバコ、アルコール、お茶が確実に得られます。もちろん、それについては話さなければなりません、初心者に任せてください、基本的に私は夜の屋台でしか麻辣湯を食べることができません。

動画が始まると、反対側から声帯の細い穏やかな見た目のイケメン男性が登場しました。丁寧な言葉遣いを交わした後、彼は自分が働いている工場を誇らしげに紹介した。 とても大きな工場だった。開発の規模が速すぎて、速すぎて、Web サイトを作りたくなったのだ。 (大きすぎる関係性) スケールに合わせて、最終的に彼は会社のホームページの構造図を私に送ってくれました。小さなソフトウェアです。彼は最近忙しすぎて、忙しすぎて、あまりにも忙しいので、初めて開発用のインターネット会社を探したいと思っていました。 会話の最後に、ハンサムな男性は気さくにこう言いました。彼は「テクノロジーに詳しいですね~」。

冷たい風が吹いてきました~~~。

Excel をクリックしました。Excel でページ構造をこんなに鮮やかに描くことができるのは珍しいです。私はそれを了承し、予定通りに納品できると伝え、同時に Excel をアーティストとプログラマーに送り、納期は 3 日であると伝えました。しかし、そのイケメンさんの要望は、エクセルに写真や文字を直接貼り付けて、エクセルで複数のブックを作成するというものでした(当時はもう混乱していました)。 "ワークブック" を表現するのに $sheet を使用するか shit を使用するか)。ホームページには PHP のページが 1 つだけ必要で、Excel のワークブックはその設定に従って個別に読み込まれます。このように、ユーザーが毎回開くホームページは異なります。これは自社工場の事業の「多角化」を多角的に示している。 「そしてイノベーション。

ビデオの中のハンサムな男性の誇らしげな笑顔を見て、私は「構成可能で製品化される」という自分自身の設計思想に大きく疑問を感じました。私はこのような異質な考え方を拒否したかったのですが、ハンサムな男性は自分の「コンセプト」を主張し、自分のデザインが工場長から十分に「高く評価されている」と言いました。

イケメンの「振込小切手」の魔力により、私は彼の「設定可能」なアイデアに降参した。私が言いたいのは、彼はとても素晴らしいということですが、私には大企業の IT ディレクターにはなれません。なぜなら、CMS の概念でテンプレートの切り替えを実装するこの方法は本当に思いつかないからです。

もちろん、私は愚か者ではありません (Office ファイルを読み取るのは簡単なことではありません)。私はこの問題を解決するために非常に簡単な方法を使用しました。そして無事に振込小切手を受け取りました。方法は非常に簡単です。基本的な HTML ページを使用して、イケメンに必要な 5 つの異なるページをデザインし、それらを 5 つの異なる Excel として保存します (注: 保存されたファイルの拡張子は xls ですが、実際には HTML ファイルです)。 )、PHPを使用してそれぞれファイルを表示します。その時のコードは以下の通りです:

$fileIndex=rand(1,5); //1 から 5 の範囲の乱数を取得します

$fileName='index'.$fileIndex.'xls'; // ファイル名を結合します。index1.xls...index5.xls は Web サイトのルート ディレクトリに配置され、index.php になります。同レベル
$getIndex=file_get_contents($fileName); //ファイルを読み取ります、
exit($getIndex); //読み込んだファイルの内容を出力して表示します
?>

以下にいくつかの知識ポイントを示します:

1. rand 関数

範囲rand(最小値、最大値)をパラメータとして乱数を取得します。この例では、1 ~ 5 の数値がランダムに生成されます。次に、ファイル名をつなぎ合わせます。 Index1.xls、index2.xls、index3.xls、index4.xls、index5.xls など、イケメン男性用に 5 ページをデザインし、それぞれ 5 つの xls ファイルを保存したことになります。

rand 関数について説明したので、次は知識を広げる必要があります: array_rand 関数 (array--array、前日に詳しく説明したので、ここでは詳しく説明しません)

ファイルをランダムに結合する上記の方法は、次の方法でも実行できます

$file=array("index1.xls","index2.xls","index3.xls","index4.xls","index5.xls");
$fileName='index'.$file[array_rand($file,1)].'xls';

これは、array_rand が受信配列のキー値を返し、2 番目のパラメーターが返される値の数を表すことを示しています。 1 の場合は、文字変数または数値変数が返され、1 を超える場合は、2 つのランダムなキー値を含む配列が返されます。

2. file_get_contents 関数

この関数は非常によく使われるファイル内容の読み取り関数でもあるので、覚えておく必要があります。ファイルの内容を一度に読み込み、配列に読み込むことを意味します。

覚えておいてください: 使用は 1 回限りです。読み取られている間は邪魔することはできません。途中で停止して別のことをしたい場合は、「いいえ」の 2 つが必要です。

覚えておいてください: 戻り値は文字列である必要があります。

$getFileContent=file_get_contents("index1.xls"); など これは、イケメンのリクエストを満たしたことを示しています。

この関数のプロトタイプは次のとおりです: file_get_contents(path,include_path,context,start,max_length)

パス: 「コード」が最終的に実行されるページからのパスを忘れずに計算してください。ここで、「./」は現在のディレクトリを表し、「../」は上位ディレクトリを表します。 "http://www.cnblogs.com/http://www.cnblogs.com/http://www.cnblogs.com/" これは、N レベルのディレクトリにあることを意味します (自分で数えてください)

include_path: 多くの教科書やオンライン記事には、include_path を使用する場合に 1 を記入する文が含まれています。他には何もありません。模倣品が横行するこの時代、誰もが物事を模倣しすぎていると思います。実際、include_path は設定可能な環境変数です。set_include_path で設定したり、get_include_path で取得したりできます。これは何をするのでしょうか? 実際には非常に単純です。 include_path は、参照またはインデックス作成の便宜のために設定する一連のフォルダー パスです。上記の例で、Web サイトが D:/web/ にデプロイされており、その中にindex.php がある場合、理論的には、index1..index5.xls これは D:/web/ にも配置されるので、それを読み取るには file_get_contents("index1.xls") を使用するだけで済みます。しかし、Qingxiu Man がそれを Web サイトではなく他のディレクトリに配置するよう要求したとします。ディレクトリ、
たとえば、c:/ 美しい男の BT ファイル/ の場合、 file_get_contents("c:/ 美しい男の BT ファイル/index1.xls"); という文言は、Web サイトを Linux に移植する場合には非常に悲惨です。将来的には実行されなくなります。
正しい方法は、php.ini
を変更することです。 include_path = .:c:/Qingxiu Man の BT ファイル:./その他のフォルダー。 Linux に移植して設定ファイルを変更するだけです。

この場合、上記のプログラムは file_get_contents ("index1. .

context: これは神のようなパラメータです。多くの教科書には、「ストリームの動作を変更できるオプションのセット」と書かれています。この文章は教科書の「資本主義」の概念や、同様の別の「主義」の概念説明よりもさらにわかりにくい。

実はこのパラメータはこんな感じです。 file_get_contents はローカル ファイルだけでなく Web ファイルも読み取ることができます。たとえば、www.shenyisyn.org (注: 著者の謙虚なスタジオ Web サイト) のホームページのソース コードを読みたい場合は、http パラメータ :

$options = array(

'http'=>array(
'method'=>'GET',//GET モードを使用して
にアクセスすることを表します 'header'=>'Content-Type:text/html;charset=gb2312'.PHP_EOL.//代表的なエンコーディングは中国語のgb2312
'Cookie:xxxxx'.PHP_EOL //Cookie を使用すると、私の Web サイトを攻撃したい場合、おそらくそれを使用することになります
)
);

$context = stream_context_create($options);

その後、file_get_contents("www.shenyisyn.org",0,$context"); を使用して直接取得できます。
実際に Web コンテンツを取得するためにこの関数を使用することは推奨されておらず、PHP を使用してこの関数を実行する実際のクローラーやインデックス作成ソフトウェアも存在しないため、リモート アドレスを取得する場合のこの関数の使用法については、あまり詳しく説明しません。 PHP には、PHP が最も適していることを許可されるべきです。特に、何人かの専門家が PHP デスクトップ ランタイム ライブラリを使用してデスクトップ ソフトウェアを作成しているのを見たとき、イエス キリスト、その研究精神は称賛に値しますが、私はそれを決して推奨しません。誰もが研究に多大なエネルギーを費やしすぎます。時間に余裕があれば、子育てをしながら妻を浮気してもいいし、より実践的で崇高な精神文明の構築を「さらに深化・発展」させるにはどうすればよいかを一緒に話し合うこともできる。

start,max_length: インデックス作成を開始し、最大バイト数を取得します。理解するのは簡単ですが、あまり役に立ちません。

3. PHP_EOL

この知識ポイントはまだ少し重要です。
ソフトリターン: Windows では、改行を意味し、次の行の先頭に戻ります。 Linux および Unix では、これは改行を意味するだけで、次の行の先頭には戻りません。
r ソフトスペース:
Linux および Unix では、現在の行の先頭に戻ることを意味します。 Mac OS では、これは行を区切って次の行の先頭に戻ることを意味し、Windows の n の効果に相当します。
t タブ (次の列に移動)
これらは二重引用符または区切り文字で表される文字列では有効ですが、一重引用符で表される文字列では無効です。
通常、rn はキーボードの Enter キーを表すために一緒に使用されます (Linux および Unix の場合)。Mac OS では、r を使用して Enter! を表すこともできます。 t はキーボードの「TAB」キーを表します。
ファイル内の改行記号: Windows: n linux、unix: rn

長い間くだらない話をしてきたので、将来別のプラットフォームに移植しやすいようにまとめておきます。 r、n、rn の代わりに PHP_EOL を使用する必要があります。PHP は、さまざまなプラットフォームでそれを自動的に解析します。プログラマーは、面倒なタスクをシステムに任せることを学ばなければなりません。混同されやすいこれらのことは覚えないでください。

4. PHP でのファイル処理のためのその他の関数 は、一般に実際のプロジェクトではファイルに対してあまりにも多くの操作を行うことはめったにないため、いくつかの関数は使用しません。実際にはあまり使いません。ここではほんの一部を紹介します:

  • file(path,include_path,context) --- ファイルを配列に読み取り、改行に従って分割します。この関数は、txt ファイルの場合、配列に直接読み込むことができるので、改行文字に応じて区切る必要がなく、非常に優れています。
  • fopen(filename,mode,include_path,context) ファイルを開き、ハンドルを返します。ハンドルとは何なのかと疑問に思う人もいるかもしれません、

$file=fopen("ファイル名"); この $file がハンドルです。たとえば、私の名前は Shen Yi、私はこのファイル、私の名前はハンドルです。特に意味はありませんが、絡みすぎないように注意してください。そうしないと、夜に何度も起きやすくなります。

  • fwrite(file,string,length)。ファイルの書き込み関数。 Du Niang を使用すると、file_put_contents とこの関数の違いを確認できます。
  • readfile(filename,include_path,context) この関数はファイルを読み込み、出力バッファに書き込みます。この関数の特徴は、読み込んだファイルのバイト数も出力することです。得意だった頃は file_get_contents 関数として使っていたため、ほとんど使用していませんでしたが、その結果、昼夜問わずページに奇妙な数字が表示され、その手がかりを発見して非常にイライラしました。
  • filesize はファイル サイズ (バイト数) を返します。この関数は便利ですが、キャッシュが必要になります。なぜ?たとえば、Qingxiu Man のリクエストによると、index1.xls のファイル サイズは 12306KB と計算されました。私が食事を終えている間に Qingxiu Man が手動でデータを追加または削除したとします。 filesize ('index1.xls') を再度実行すると、まだ 12306KB であることがわかります。これはキャッシュです。キャッシュをクリアするには、
などの関数を使用する必要があります。

$size=filesize('index1.xls');

echo $size;

……ここのハンサムな男は黙って変更を加えに来たが、変更を行った後、無責任に家に帰って洗濯して寝た。 。 。 。

clearstatcache();//キャッシュをクリアする必要があります。

echo filesize('index1.xls'); //そうです、

  • feof(file) 関数は、ファイルの終わりに達したかどうかを検出します。公式の教科書には、長さが不明なファイルを走査するのに役立つと記載されていますが、これは誤解を招きます。 「不明な長さ」のファイルを操作するために PHP を使用してはなりません。これは PHP が行うべきことではありません。
  • unlink(filename,context) ファイルを削除します。話すのはやめてください、私が理解できなくてもあなたは理解します。
  • copy(source,destination) ファイルをコピーします。 1 つだけ覚えておいてください。ファイルが存在しない場合は、存在しません。とにかく、「決定的なものは上書きします」。
  • mkdir(path,mode,recursive,context) はディレクトリを作成します。これは理解するのが簡単ですが、モード: デフォルトの完全な権限に注意してください。再帰的であるかどうかという再帰もあります。たとえば、1/2/3/4/5 のようなレベルのフォルダーを作成する場合、最も重要なことは、このパラメーターが false の場合、前の 1/ の場合にフォルダー「5」を作成することです。 2/3/ 4 が設定されていない場合、作成は失敗します。 true が設定されている場合は、システムが自動的に 1/2/3/4/ を作成します。
  • rmdir(パス) フォルダーを削除します。ちなみに、この機能はまだ安全です。フォルダーが空でなくても問題ありません。

まずここまで書きましょう。もちろん、スペースの都合上、すべてをリストすることはできません。ストーリーや特性を含めて、ファイル操作関数を追加してください。そしてそれは注意して使用する必要があります。上記に不完全、不適切、不十分、またはナンセンスな部分がある場合は、ご理解の上、修正してください。

1FIvan_hy昨日 09:53
やっと更新されました、応援してます~ソファ~~~
声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
解决方法:您的组织要求您更改 PIN 码解决方法:您的组织要求您更改 PIN 码Oct 04, 2023 pm 05:45 PM

“你的组织要求你更改PIN消息”将显示在登录屏幕上。当在使用基于组织的帐户设置的电脑上达到PIN过期限制时,就会发生这种情况,在该电脑上,他们可以控制个人设备。但是,如果您使用个人帐户设置了Windows,则理想情况下不应显示错误消息。虽然情况并非总是如此。大多数遇到错误的用户使用个人帐户报告。为什么我的组织要求我在Windows11上更改我的PIN?可能是您的帐户与组织相关联,您的主要方法应该是验证这一点。联系域管理员会有所帮助!此外,配置错误的本地策略设置或不正确的注册表项也可能导致错误。即

Windows 11 上调整窗口边框设置的方法:更改颜色和大小Windows 11 上调整窗口边框设置的方法:更改颜色和大小Sep 22, 2023 am 11:37 AM

Windows11将清新优雅的设计带到了最前沿;现代界面允许您个性化和更改最精细的细节,例如窗口边框。在本指南中,我们将讨论分步说明,以帮助您在Windows操作系统中创建反映您的风格的环境。如何更改窗口边框设置?按+打开“设置”应用。WindowsI转到个性化,然后单击颜色设置。颜色更改窗口边框设置窗口11“宽度=”643“高度=”500“>找到在标题栏和窗口边框上显示强调色选项,然后切换它旁边的开关。若要在“开始”菜单和任务栏上显示主题色,请打开“在开始”菜单和任务栏上显示主题

如何在 Windows 11 上更改标题栏颜色?如何在 Windows 11 上更改标题栏颜色?Sep 14, 2023 pm 03:33 PM

默认情况下,Windows11上的标题栏颜色取决于您选择的深色/浅色主题。但是,您可以将其更改为所需的任何颜色。在本指南中,我们将讨论三种方法的分步说明,以更改它并个性化您的桌面体验,使其具有视觉吸引力。是否可以更改活动和非活动窗口的标题栏颜色?是的,您可以使用“设置”应用更改活动窗口的标题栏颜色,也可以使用注册表编辑器更改非活动窗口的标题栏颜色。若要了解这些步骤,请转到下一部分。如何在Windows11中更改标题栏的颜色?1.使用“设置”应用按+打开设置窗口。WindowsI前往“个性化”,然

OOBELANGUAGE错误Windows 11 / 10修复中出现问题的问题OOBELANGUAGE错误Windows 11 / 10修复中出现问题的问题Jul 16, 2023 pm 03:29 PM

您是否在Windows安装程序页面上看到“出现问题”以及“OOBELANGUAGE”语句?Windows的安装有时会因此类错误而停止。OOBE表示开箱即用的体验。正如错误提示所表示的那样,这是与OOBE语言选择相关的问题。没有什么可担心的,你可以通过OOBE屏幕本身的漂亮注册表编辑来解决这个问题。快速修复–1.单击OOBE应用底部的“重试”按钮。这将继续进行该过程,而不会再打嗝。2.使用电源按钮强制关闭系统。系统重新启动后,OOBE应继续。3.断开系统与互联网的连接。在脱机模式下完成OOBE的所

Windows 11 上启用或禁用任务栏缩略图预览的方法Windows 11 上启用或禁用任务栏缩略图预览的方法Sep 15, 2023 pm 03:57 PM

任务栏缩略图可能很有趣,但它们也可能分散注意力或烦人。考虑到您将鼠标悬停在该区域的频率,您可能无意中关闭了重要窗口几次。另一个缺点是它使用更多的系统资源,因此,如果您一直在寻找一种提高资源效率的方法,我们将向您展示如何禁用它。不过,如果您的硬件规格可以处理它并且您喜欢预览版,则可以启用它。如何在Windows11中启用任务栏缩略图预览?1.使用“设置”应用点击键并单击设置。Windows单击系统,然后选择关于。点击高级系统设置。导航到“高级”选项卡,然后选择“性能”下的“设置”。在“视觉效果”选

Windows 11 上的显示缩放比例调整指南Windows 11 上的显示缩放比例调整指南Sep 19, 2023 pm 06:45 PM

在Windows11上的显示缩放方面,我们都有不同的偏好。有些人喜欢大图标,有些人喜欢小图标。但是,我们都同意拥有正确的缩放比例很重要。字体缩放不良或图像过度缩放可能是工作时真正的生产力杀手,因此您需要知道如何对其进行自定义以充分利用系统功能。自定义缩放的优点:对于难以阅读屏幕上的文本的人来说,这是一个有用的功能。它可以帮助您一次在屏幕上查看更多内容。您可以创建仅适用于某些监视器和应用程序的自定义扩展配置文件。可以帮助提高低端硬件的性能。它使您可以更好地控制屏幕上的内容。如何在Windows11

10种在 Windows 11 上调整亮度的方法10种在 Windows 11 上调整亮度的方法Dec 18, 2023 pm 02:21 PM

屏幕亮度是使用现代计算设备不可或缺的一部分,尤其是当您长时间注视屏幕时。它可以帮助您减轻眼睛疲劳,提高易读性,并轻松有效地查看内容。但是,根据您的设置,有时很难管理亮度,尤其是在具有新UI更改的Windows11上。如果您在调整亮度时遇到问题,以下是在Windows11上管理亮度的所有方法。如何在Windows11上更改亮度[10种方式解释]单显示器用户可以使用以下方法在Windows11上调整亮度。这包括使用单个显示器的台式机系统以及笔记本电脑。让我们开始吧。方法1:使用操作中心操作中心是访问

如何在Safari中关闭iPhone的隐私浏览身份验证?如何在Safari中关闭iPhone的隐私浏览身份验证?Nov 29, 2023 pm 11:21 PM

在iOS17中,Apple为其移动操作系统引入了几项新的隐私和安全功能,其中之一是能够要求对Safari中的隐私浏览选项卡进行二次身份验证。以下是它的工作原理以及如何将其关闭。在运行iOS17或iPadOS17的iPhone或iPad上,如果您在Safari浏览器中打开了任何“无痕浏览”标签页,然后退出会话或App,Apple的浏览器现在需要面容ID/触控ID认证或密码才能再次访问它们。换句话说,如果有人在解锁您的iPhone或iPad时拿到了它,他们仍然无法在不知道您的密码的情况下查看您的隐私

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

DVWA

DVWA

Damn Vulnerable Web App (DVWA) は、非常に脆弱な PHP/MySQL Web アプリケーションです。その主な目的は、セキュリティ専門家が法的環境でスキルとツールをテストするのに役立ち、Web 開発者が Web アプリケーションを保護するプロセスをより深く理解できるようにし、教師/生徒が教室環境で Web アプリケーションを教え/学習できるようにすることです。安全。 DVWA の目標は、シンプルでわかりやすいインターフェイスを通じて、さまざまな難易度で最も一般的な Web 脆弱性のいくつかを実践することです。このソフトウェアは、

AtomエディタMac版ダウンロード

AtomエディタMac版ダウンロード

最も人気のあるオープンソースエディター

Dreamweaver Mac版

Dreamweaver Mac版

ビジュアル Web 開発ツール

PhpStorm Mac バージョン

PhpStorm Mac バージョン

最新(2018.2.1)のプロフェッショナル向けPHP統合開発ツール

SecLists

SecLists

SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。