- 1. Python,Ruby,PHP,Java,JavaScript,Perlのライブラリ・モジュールの比較
- 2. AlmaLinux OS 9にPHP 8.0, PHP-FPM 8.0をインストール(AppStream)
- 3. 【PHP基礎復習12】空白で区切る、四捨五入、小数点以下表示
- 4. [PHP] CSVからスコア平均を求めてランキング化
- 5. 【PHP基礎復習11】配列要素の和
- 6. 【PHP基礎復習10】割り算
- 7. Codeigniter4で出力バッファをフラッシュし結果を出力する方法
- 8. 「PHP・Composer」の質問まとめ
- 9. XAMPP(PHP)のアップデートと躓きポイント
- 10. Python,Ruby,PHP,Java,JavaScript,Perlの文法・構文の比較
- 11. 1万件のCSVを読み込ませるPHPコード雛形。
- 12. 【PHP】URLパス部分に特定の文字列が含まれるかどうかの条件分岐【str_contains()】
- 13. filter_varの検証フィルタ「FILTER_VALIDATE_DOMAIN」の動作を確認するためにphptファイルにテストパターンを追加して実行してみた
- 14. 【PHP基礎復習9】掛け算と割り算
- 15. 【PHP】json_decodeに特定の文字列を入れるとINF(無限)になる
- 16. 【PHP基礎復習8】絶対値
- 17. 【PHP基礎復習7】掛け算②
- 18. 【PHP基礎復習6】最大値と最小値
- 19. ゆめみコーディング試験サンプルをやってみた
- 20. Laravel Pint コードスタイル自動整形ツールのインストールと設定
Python,Ruby,PHP,Java,JavaScript,Perlのライブラリ・モジュールの比較
Python,Ruby,PHP,Java,JavaScript,Perlのライブラリ・モジュールの比較
# Python
https://qiita.com/ryuichi1208/items/cb5f850a9811d2a4bc3a
# Ruby
https://qiita.com/sugamaan/items/d7871da28c0160b69609
# PHP
https://qiita.com/mikakane/items/2719df714df5b3fc6adf
# Java
https://qiita.com/haruto167/items/162551100449ea5c7e6d
# JavaScript
https://qiita.com/Nako4/items/1d8eaf731bf4370b84a7
# Perl
https://perlzemi.com/b
AlmaLinux OS 9にPHP 8.0, PHP-FPM 8.0をインストール(AppStream)
# はじめに
Application Stream(AppStream)を利用してAlmaLinux9にPHP8.0をインストール
親記事:[PHP, PHP-FPMの各種インストール方法とEOLまとめ](https://qiita.com/witchcraze/items/dfe3823554b7caba6f6a)
参考:[RHEL8のパッケージ構成 – BaseOSとApplication Stream – 赤帽エンジニアブログ]( https://rheb.hatenablog.com/entry/rhel8_baseos_and_appstream)## サポート
本手法で導入した場合、[Red Hat Enterprise Linux Application Streams Life Cycle \- Red Hat Customer Portal](https://access.redhat.com/support/policy/updates/rhel-app-streams-life-cycle)より、2032-05がEOLだと思われる。(OS EOLまでサポー
【PHP基礎復習12】空白で区切る、四捨五入、小数点以下表示
[問題]
仲良しグループ3人組のテストの点数の平均点を、四捨五入して小数点以下第1位まで表示させなさい。
3人の点数は、半角スペースで区切って入力される。# コード
“`php
$input = fgets(STDIN);
$array = explode(” “,$input);
$total = round(array_sum($array)/3, 1);
echo number_format($total,1);
“`↓ 60 70 65と入力
# 結果
“`
65.0
“`☆explode(区切り文字 , 入力文字)
→ 区切り文字で区切った文字列を配列に変換☆round(値 , 小数点以下の桁数)
→ 四捨五入して指定した小数点以下の桁数で表示☆number_format(値 , 小数点以下の桁数)
→ 指定した小数点以下の桁数まで表示
[PHP] CSVからスコア平均を求めてランキング化
https://qiita.com/rana_kualu/items/cd65cd6a05ac62c9a3e8
rana_kualuさんの記事を読んでたら、自分でもできそうな問題があったので挑戦。
PHPは長らく書いてなかったので、練習にはちょうど良い問題だった。“`php:top10ranking.php
$score, ‘count’=>1, ‘id’=>$id];
}
else{
$player[$id][‘total’] += $score;
$player[$id][‘count’]++;
}
}// 平均点
foreach($player as $id => $v){
$player[$id][‘mean’] = round($v[
【PHP基礎復習11】配列要素の和
[問題]
1から入力値Aまで1ずつ増えていく整数の値の和を求めよ。
なお、Aは2以上とする。# コード
“`PHP
$input1 = fgets(STDIN);
$input2 = range(1,$input1);
echo array_sum($input2),PHP_EOL;
“`↓ 140と入力
# 結果
“`
9870
“`☆ range(a,b)
→ aからbまでの配列☆array_sum()
→ 配列の要素の和
【PHP基礎復習10】割り算
[問題]
長さAセンチメートルをメートル単位で出力させなさい。# コード
“`PHP
$input = fgets(STDIN);
echo $input /100, PHP_EOL;
“`↓ 460と入力
# 結果
“`
4.6
“`
Codeigniter4で出力バッファをフラッシュし結果を出力する方法
# 概要
* PHP 8、 Codeigniter4
* Codeigniter4で、ob_flash() flush() を使っても処理途中での結果出力がされない
* Codeigniter4を通さないでob_flash() flush()を実行するとちゃんと処理途中で結果表示できる# 対処方法
* `ob_end_flush();` を途中出力したい処理の前でコールする。# 原因
app/Config/Events.php Events::on にてob_start()がコールされている。
通常の処理を実行すると、ob_start()で出力がバッファされるため、一旦 ob_end_flush() で内部バッファの内容を出力してしまう必要がある。出力バッファはスタッカブルなので、ob_end_flush()をせずに
“`
ob_start();
ob_end_flush();
ob_flush();
flush();
“`
としてしまうと、すでにバッファされているob_start() からさらに入れ子でバッファされることになるので、そのあとflushしても、最初のob
「PHP・Composer」の質問まとめ
■PHP・Composer
【リンク切れ】ControllerからModelを使用する
https://tech-sta.com/blog/forum/postid/1274/CakePHPのバージョンについて
https://tech-sta.com/blog/forum/postid/98/Composerのインストール・バージョンについて
https://tech-sta.com/blog/forum/postid/1062/composerを実行したら途中で以下のような赤背景のメッセージが出て途中で止まってしまいました
https://tech-sta.com/blog/forum/postid/761/cmdでComposerのインストール、Apacheでローカルサーバーも立てれていてSampleCakeも作れているのですがObject not foundとなってしまいます
https://tech-sta.com/blog/forum/postid/497/Hello CakePHP3!!と表示させる場面でエラーがでました
https://tech-s
XAMPP(PHP)のアップデートと躓きポイント
## そろそろPHPとMariaDBをアップデートしたい
XAMPPで何年か開発を行っていると、PHPやMariaDB(MySQL)がだいぶアップグレードしていて、新しいバージョンに対応したくなることがしばしばある。
これが結構面倒なので手順をまとめてみた。### 対象ユーザー
– XAMPPでバーチャルホストを設定して複数のサイトを開発している
– PHPのバージョンアップで動かなかったときに古いPHPを利用できるようにしておきたい。
– 特に7.x → 8.xはdeplicatedな機能が多いので注意が必要
– え?vagrant?なにそれおいしいの?## 手順
### 1. [古いXAMPP] DBのバックアップ(dump)
XAMPPなら http://localhost/phpmyadmin からバックアップできる。
`xampp\mysql\bin\mysqldump.exe` で一括バックアップをしても良いが、この際不要なDBは切り捨てよう### 2. [古いXAMPP] XAMPPの停止
XAMPPで実行しているサービス(PHPやMaria
Python,Ruby,PHP,Java,JavaScript,Perlの文法・構文の比較
Python,Ruby,PHP,Java,JavaScript,Perlの文法・構文の比較
# Python
https://qiita.com/Fendo181/items/a934e4f94021115efb2e
# Ruby
https://qiita.com/Fendo181/items/eb2cb17f32d99aa01f59
# PHP
https://qiita.com/7968/items/d739e926189e219273bd
# Java
https://qiita.com/tomonori_hioki/items/cec47a366208d43d7339
# JavaScript
https://qiita.com/Fendo181/items/cca476da99e8f09b6b97
# Perl
https://perlzemi.com/blog/2
1万件のCSVを読み込ませるPHPコード雛形。
# 1万件のCSVを読み込ませるPHPコード雛形です。
#### 動作環境はPHP8系
+ Read_csv_class.php…CSV読み込みを行っているファイル(雛形です)。
+ index.php…ajaxを使用しRead_csv_class.phpを呼び出しているファイル
+ [こちら](https://testdata.userlocal.jp/)のCSVダミーデータを改変して動作確認をしています。
#### ※ fgetcsv($this->handle, null, “,”);の箇所はバージョンより要確認!追記:テーブルに保存するコードを新たに作りました。
[1万件のCSVを読み込みテーブルに保存する雛形コード #PHPCode](https://zip358.com/2022/09/08/1%e4%b8%87%e4%bb%b6%e3%81%aecsv%e3%82%92%e8%aa%ad%e3%81%bf%e8%be%bc%e3%81%bf%e3%83%86%e3%83%bc%e3%83%96%e3%83%ab%e3%81%ab%e4%bf%9d%e5%ad%98%e
【PHP】URLパス部分に特定の文字列が含まれるかどうかの条件分岐【str_contains()】
## パスを取得
“`
$path = $_SERVER[‘REQUEST_URI’]
“`
PHPが提供するスーパーグローバル変数$_SERVERを利用する。
‘REQUEST_URI’に現在アクセスされているパスが格納されている。
因みに「プロトコル(httpsか?) + ホスト名(localhostなど) + パス(/index.phpなど) = 現在のURL」となる。## PHP 8以上では`str_contains()`を使用
:::note
`strpos()`をメインで説明していましたが、コメントにて「文字列が含まれるかどうかをチェックするには `str_contains()`を使うとよいのではないでしょうか」といただいたので`str_contains()`の内容を追加しました。ありがとうございます!
:::
### 条件分岐
“`
if( str_contains( $path, ‘hogehoge’ ) {
// $pathにhogehogeが含まれる場合} else{
// $pathにhogehogeが含まれない場合}
“`
PHP 8で追加さ
filter_varの検証フィルタ「FILTER_VALIDATE_DOMAIN」の動作を確認するためにphptファイルにテストパターンを追加して実行してみた
### この記事を書くきっかけ
2022年9月24日、25日に開催される「[PHP Conference Japan 2022](https://phpcon.php.gr.jp/2022/)」で「[FQDN(ドメイン名)のバリデーションが意外と面倒だった](https://fortee.jp/phpcon-2022/proposal/fbbbf348-e535-4537-896e-ad771e46759b)」というタイトルで登壇予定なんですが、登壇スライドを作成している途中に調査したphptについてはLT(4分)の枠内に収められそうにないので、こちらでまとめておこうと思った次第です。
### 動作確認環境
– PC: MacBook Pro (13-inch, 2020, Four Thunderbolt 3 ports)
– OS: macOS Monterey 12.0.1
– CPU: 2.3 GHz クアッドコア Intel Core i7
– Memory: 32 GB### 事前準備
任意のディレクトリにPHP 8.1.10(2022年9月8日時点の最新版)のソ
【PHP基礎復習9】掛け算と割り算
[問題]
モモさんは毎朝、近所にあるお城のお堀の周りをジョギングしています。
1周Aメートルのお堀をB周した場合、合計何キロメートルになるか求めなさい。# コード
“`PHP
$input_1 = fgets(STDIN);
$input_2 = fgets(STDIN);
echo $input_1 * $input_2 /1000, PHP_EOL;
“`↓ 1000、3と入力
# 結果
“`
3
“`★何キロメートルかと聞かれているので、1000で割る。
【PHP】json_decodeに特定の文字列を入れるとINF(無限)になる
毎週火曜のラブライブだけを生きがいにしてたのに今週は休みと知ってとてつもなく絶望している今日
## 前提
phpにはjson形式の文字列を配列やオブジェクトなどに変換してくれる`json_decode`という関数が存在します。
関数についての細かいことは[省略](https://www.php.net/manual/ja/function.json-decode.php)
このjson_decodeは基本的に非json形式の文字列を入れるとnullを返します。
“`php
// NULL
json_decode( ‘abcdefg’ );
“`また、入力値が整数の場合はint、少数の場合はfloatとして数値が返ってきます。
“`php
// int(123456)
json_decode( ‘123456’ );// int(123456)
json_decode( 123456 );// float(123.456)
json_decode( 123.456 );
“`
ここまでは問題なし。## 本題
問題なのは入力された文字列が、指数表記として解釈
【PHP基礎復習8】絶対値
[問題]
次の入力値の絶対値を求めよ。# コード
“`PHP
$input = fgets(STDIN);
echo abs($input),PHP_EOL;
“`↓ -4と入力
# 結果
“`
4
“`☆絶対値を求める
→ abs( )
【PHP基礎復習7】掛け算②
[問題]
ユキさんは、部屋の壁にポスターを貼ろうとしています。
1枚で幅Acmのものを4枚貼ると、幅は合計何cmになるでしょうか。# コード
“`PHP
$input = fgets(STDIN);
echo $input*4, PHP_EOL;
“`↓ 30と入力
# 結果
“`
120
“`
【PHP基礎復習6】最大値と最小値
[問題]
5つの入力値のうち、最大値と最小値を出力させなさい。# コード
“`PHP
$input_1 = fgets(STDIN);
$input_2 = fgets(STDIN);
$input_3 = fgets(STDIN);
$input_4 = fgets(STDIN);
$input_5 = fgets(STDIN);
echo max($input_1, $input_2, $input_3, $input_4, $input_5);
echo min($input_1, $input_2, $input_3, $input_4, $input_5),PHP_EOL;
“`↓ 3、5、4、9、6と入力
# 結果
“`
9
3
“`☆最大値を求める
max($a, $b, $c);☆最小値を求める
min($a, $b, $c);☆配列の要素の最大値・最小値を求める場合は、以下のようにする。
“`php
$array = [1,5,6,4];
echo max($array);
“`
↓ 結果
“`
6
“`
ゆめみコーディング試験サンプルをやってみた
ふらっと巡回していたら
https://qiita.com/rana_kualu/items/cd65cd6a05ac62c9a3e8
手頃な問題があったので記事を読む前に自分でやってみる。
https://www.yumemi.co.jp/serverside_recruitCLIでCSV入力から平均値を計算してCSV出力する問題。
“`
create_timestamp,player_id,score
2021/01/01 12:00,player0001,12345
2021/01/02 13:00,player0002,10000
2021/01/03 12:00,player0021,100
2021/01/04 12:10,player0031,200
2021/01/05 12:00,player0041,300
“`プレイヤーは1万人以下、入力行数は数千万行になるというところがポイントっぽい。
特に何も考えずに上から順にベタ書きしていく。
“`php
Laravel Pint コードスタイル自動整形ツールのインストールと設定
## Laravel Pint
Laravel Pint(パイント)はコードスタイルの自動整形ツールPHP-CS-Fixerのラッパーライブラリです。
– GitHub: https://github.com/laravel/pint
– ドキュメント: https://readouble.com/laravel/9.x/ja/pint.html
– PHP-CS-Fixer: https://github.com/FriendsOfPHP/PHP-CS-Fixer
– PHP-CS-Fixer Configrator: https://mlocati.github.io/php-cs-fixer-configurator## インストール
[Laravel v9.3.0](https://github.com/laravel/laravel/releases/tag/v9.3.0) からLaravelに標準搭載されています。
古いLaravelに導入する場合は下記のコマンドからインストールします。
“`shell-session
$ composer require