PHPに関するメモの記録

ファイルの読み込み

  • readfile関数でファイル読み込みが可能

文字を区切る(explode関数)

説明 ¶

array explode ( string $delimiter , string $string [, int $limit = PHP_INT_MAX ] )

文字列の配列を返します。この配列の各要素は、 string を文字列 delimiter で区切った部分文字列となります。

配列要素を区切って文字列に格納する(implode関数)

string implode ( string $glue , array $pieces )
string implode ( array $pieces )

配列の要素を glue 文字列で連結します。

$glueのデフォルトは空文字。

スカラー型

大小関係のある値

ジェネリクス
デリゲート
無名関数
ラムダ式

調べたけど忘れちゃった。
ジェネリクスは確か,型を汎用的にとらえる書き方。

POSTとGET

POSTは登録時に使用する。URLに情報が記載される。
GETは情報を取得するときに使用する。body部分に情報が記載される。

どちらもClient側から参照可能なので重要な情報は記載しないこと。
重要な情報はSESSIONに委ねる。

ファイルポインタ

ポインタは,変数のアドレスを記憶する変数。
ファイルポインタは,どこまで読み込んだかの情報を保持している。

以上

 

XAMPPとIISの競合について

IISでローカルのPHPの開発環境を構築して勉強をしていたが
諸々考えてくとXAMPPで環境構築した方がはかどることに気づいて乗り換えた。

その時に,ポートが競合してハマったのでメモ。

現象

XAMPPインストール後に,Apacheを起動しようとすると
Port 80 in use by "Unable to open process" with PID 4!

と怒られる。

解決策

IISがポート80を使用していたため,inetmgrからIISを停止すれば解決する。

以上

Windows10でPHPの実行環境構築

IISを利用して,PHPの実行環境を構築する。

IISの有効化と”Hello html!”まで

  1. Windowsボタン + Rを押下 > controlと入力(コンパネを開く)
  2. 「プログラムと機能」 > 左パネルよりWindowsの機能の有効化と無効化を選択
  3. 下記を参考にチェックをつける。
    インターネットインフォメーションサービス
    > World Wide Webサービス
    > アプリケーション開発機能
    > CGI <-チェックインターネットインフォメーションサービス
    > Web管理ツール <-チェック
  4. OKボタンを押下するとインストールが開始される。
  5. C:\inetpub\wwwroot\の既存ファイルを削除(ndex.htmlを作成し,HelloWorldと入力
    (書き込み権がなかったら,wwwrootを選択しAlt + Enterを押下。
    セキュリティ > 編集より書き込み権限を付与する。)
  6. 任意のブラウザでhttp://localhostにアクセス。

以上


PHPの有効化

  1. https://windows.php.net/download/よりWindows用のPHP(zip)をダウンロード
  2. C:\inetpub\php配下に展開(どこでもいいんだけどね)
    権限が必要と言われるけど,「はい」でOK
  3. php.ini-productionをphp.iniにリネーム
  4. php.iniに任意のエディタで下記を追記する。
    (本当はコメントアウトして設定したほうがいいけど。)

    extension_dir = "ext" cgi.fix_pathinfo=1 fastcgi.impersonate = 1 fastcgi.logging = 0 extension=mbstring.dll [mbstring] mbstring.language = Japanese mbstring.internal_encoding = UTF-8 mbstring.http_input = auto mbstring.http_output = UTF-8 mbstring.encoding_translation = On mbstring.detect_order = auto

    TODO: 設定項目に関する説明を別投稿にまとめる。

  5. 「VCRUNTIME140.dllが見つからないため~」とエラーが表示された場合はVCRUNTIME140.dllをインストールする。
    1. ダウンロードサイト
    2. 自分のOSのCPUのビット数に合わせること
      64bit -> x64
      32bit -> x86
    3. 落としたexeを実行すればOK
  6. 2の手順で展開したフォルダC:\inetpub\phpにフォーカスを合わせAlt + Enterを押下
  7. セキュリティタブ > 編集より,セキュリティ画面を開く
  8. 追加ボタンを押下し,「ユーザまたはグループの選択」ダイアログを開く
    「選択するオブジェクト名を入力してください」テキストボックスに「IIS_IUSRS」と入力。
  9. 「名前を確認」ボタンを押下
    「名前が見つかりません。」ダイアログが開かれた場合は,名前が間違ってる可能性があるので,「IIS_IUSRS」のスペルを確認!
  10. Windowボタン + Rを押下し,inetmgrと入力
  11. ハンドラーマッピングをダブルクリック
  12. 右パネルより,モジュールマップの追加を選択
  13. 下記を参考に設定を行う。
    要求パス: *.php
    モジュール: FastCgiModule
    実行可能ファイル: C:\inetpub\php\php-cgi.exe
    名前: PHP

    設定はこれで完了。

動作確認

C:\inetpub\wwwroot\test.phpを作成し,下記をコピペ

<?php
//ここを書き換える。
$name="nekonisi";


$fp=fopen("http://abehiroshi.la.coocan.jp/top.htm","r");
$arr=array();
$arrVal=array();
while(!feof($fp)){
	$data = mb_convert_encoding(fgets($fp), 'UTF-8', 'sjis-win');
	array_push($arrVal,$data);
}
$arr=preg_replace("(阿部 寛)",$name,$arrVal);



foreach($arr as $val){
	echo ($val);
}
?>

以上

PHPのお勉強

2月からWeb業界に転職するつもりなので,PHPの勉強をしている。

基本的にはバスと電車の中で本を読んで,
帰りにコーヒー屋で手を動かしてアウトプットという感じで進めている。

読んでいる本はコレ
一周目が終わって内容を理解したので,アウトプット中。

開発用サーバ: http://52.194.187.169

文法等については後日まとめる。
きちんと寝て,明日に備えよう。
やってきたこと,考えてきたことを出せればいい。

結果はどうあれ,あの日から全力でやってこれた。

以上