[PHP]雑記帳

 

Q. 変数名で大文字、小文字の区別は?

A. します。$Value と $value とでは区別され、別物になってしまいます(詳細

 

Q. HTMLなどShift-JISのテキストデータをUTF-8に変換する

A. サンプル

$data = mb_convert_encoding($data, 'UTF-8', 'SJIS');

 

 

Q.表示されていない改行、見えない改行を消す

A.あくまでも一例

\rを”に置換し、その後、同様に\nを置換する。”に置換→消去と同じ。

$w_caption = str_replace(“\r”,”, $w_caption);
$w_caption = str_replace(“\n”,”, $w_caption);

 

 

Q.自分自身を取得したい

A. 参考元 マジック定数

フルパスのファイル名

__FILE__

ファイル名のみ

basename(__FILE__)

ディレクトリ

__DIR__ または dirname(__FILE__)

 

Q.日付日時が”2021-09-28T06:28:24+02:00″のように、日本仕様にならない。

A.

date_default_timezone_set(‘Asia/Tokyo’);

date(‘c’)

に記述する必要があります。

正常になれば”2021-09-28T13:38:11+09:00″のように「+09:00」が付加され正確な時刻になります。

 

Q.エラーメッセージ「Warning: mb_send_mail(): Multiple or malformed newlines found in additional_header in」とは?

A. mb_send_mail関数で PHPのバージョンが「7.4.13」の時

・サンプル文

mb_send_mail($mail, ‘テスト送信’, $msg, ‘ From: 任意のメールアドレス’);

で発生。エラーの表示だけでなくメールの送信も失敗しています。

・改善案

$w_header = ‘From: 任意のメールアドレス’;
mb_send_mail($mail, ‘テスト送信’, $msg, $w_header);

のように、第4パラメータを一度変数に渡すとエラーは消え、メールも送信されました。考えられる原因はPHPのバージョンによるものかもしれませんが詳細は不明です。

 

 

Q.エラーメッセージ「Parse error」とは?

A.例 $key’ ではゼロ件でした’ のように変数と文字列との間に結合文字を忘れた場合に発生。結合文字「.」を使って修正します。

$key.’ ではゼロ件でした’

 

Q. 相対パス

A.

./または指定なし 同じディレクトリを参照

指定しない例

abc/def.php

abcフォルダ内のdef.phpを参照

 

../ 上のディレクトリ内を参照

 

他の事例

Q.自分と同じ階層にあるフォルダ内のphpを参照したい

A.

自分.php

abc_folder内の相手.php

 

サンプル

require_once ‘abc_folder/相手.php’;

 

Q.自分のフォルダと同じ階層の別のフォルダにあるphpを参照したい

A.

abc_folder/自分.php

xyz_folder内の相手.php

 

サンプル

require_once ‘../xyz_folder/相手.php’;

 

 

Q.外部ファイルの読み込みにはrequire関数か?include文か?

A.require関数については

https://www.sejuku.net/blog/31255

より「読み込みに失敗する」と

・require文は致命的なエラーになる。

・include文は警告が出るだけ。

※ブラウザに表示する場合は ini_set関数(公式)を使う

例 ini_set(‘display_errors’, ‘1’);

 

Q.単純にファイルを開いて閉じる

A.file_put_contentsの公式の例1がシンプルでわかりやすい

<?php
$file = ‘people.txt’;
// ファイルをオープンして既存のコンテンツを取得します
$current = file_get_contents($file);
// 新しい人物をファイルに追加します
$current .= “John Smith\n”;
// 結果をファイルに書き出します
file_put_contents($file, $current);
?>

★注意点

当然ながら people.txt が存在しないとエラーになる。そこで file_exists でエラーを回避する。

$file = ‘people.txt’;

if (file_exists($file)){

$current = file_get_contents($file);

以下、同文

}

 

Q.配列の並べ替えは?

A.個人的にはarray_multisortが便利。

公式サイト

 

 

Q.型キャストは?

A.公式

変換しようとする型を括弧で括り、キャストする変数の前に置きます。

●一部抜粋

(int) – 整数へのキャスト

$foo = (int) $bar;

(boolean) – 論理値へのキャスト

$bar = (boolean) $foo;   // $bar はbooleanです

(string) – 文字列へのキャスト

$fst = (string) $foo; // $fst も文字列です

intvalもあります

 

Q.boolean型変数の中身を表示したら?

A. 実行サンプル

echo ‘_’; //正しく動作したら _ と表示される
$cluster_sw = (boolean) FALSE;
printf($cluster_sw);

結果:

_


echo ‘_’; //正しく動作したら _ と表示される
$cluster_sw = (boolean) TRUE;
printf($cluster_sw);

結果:

_1

 

 

$_SERVER 一覧

Q. $_SERVER[‘REQUEST_URI’] 、$_SERVER[‘PHP_SELF’]の戻り値は?

A. 呼ばれたPHPファイルのパス。ただしサーバーによっては対応しない場合あり

Q. $_SERVER[‘HTTP_REFERER’]の戻り値は?

A. 呼んだ側のPHPファイルのあるサブドメイン(ホスト)名(ex. host.domain.co.jp)。ただしサーバーによっては対応しない場合あり

Q. $_SERVER[‘HTTP_HOST’]の戻り値は?

A. 呼んだ側のPHPファイルのあるドメイン(ホスト)名のみ(ex. domain.co.jp)。ただしサーバーによっては対応しない場合あり

 

 

その他

 

・PHP以外の言語と同様に continue もあります。

 

・ループfor の記述例

配列 $cd_ar の数を把握し、0から配列数未満まで増加1の昇順ループ

for($i = 0, $size = count($cd_ar); $i < $size; ++$i) {

 

逆順の例

for ($i = count($cd_ar) -1; $i > -1; --$i) {

Qiita様の記事を参考にさせて頂きました。

 

*ループ記事を更新できなかったのでこの記事に記載しました

 

 

PHPメニューへ戻る

 

この記事のQRコード
カテゴリー PHP
[ PHP 関係の記事 ]へもどる


8592
amazonでPHPと検索した結果
*該当しない場合があります