スキップしてメイン コンテンツに移動

投稿

PHPのエラーレベル定数からエラー文字列を返すコード

PHPで定義されているエラー定数(int値)からエラー定数の文字列を返すコードです。 PHPのライブラリで定義されている情報だけで、キーが「エラー定数のint値 」値が「エラー文字列」となる連想配列を生成しています。 // 定義済みの定数を取得 $allConstants = get_defined_constants ( true ) ; // "Core"カテゴリに入っていて"E_"から始まる定数のみ取得 $errorConstants = array_filter ( $allConstants [ "Core" ] , fn ( $key ) = > strncmp ( $key , "E_" , 2 ) === 0 , ARRAY_FILTER_USE_KEY ) ; // エラー定数のint値 -> エラー文字列になるように連想配列を逆転 $errorCodeToString = array_flip ( $errorConstants ) ; // 使い方の例 echo $errorCodeToString [ E_COMPILE_ERROR ] ;

Node.jsでローカルにインストールしたpackageからプログラムを実行する方法

Node.jsでローカルにインストールしたパッケージのプログラムを実行する方法の紹介です。 方法1: 直接パス指定 モジュールがインストールされたディレクトリ ./node_modules/.bin/ から直接指定。下記はeslintのバージョンを取得したい場合の例。 ./node_modules/.bin/eslint -v 方法2: package.jsonのscriptsセクションに設定して実行 下記はeslintのバージョンを取得したい場合の設定例。 { "name" : "Sample" , "description" : "Sample Project" , "scripts" : { "eslint-version" : "eslint -v" , } , 実行時はプロンプトで npm run {設定したscript名} と入力すればコマンドを実行することができます。上記の例の場合は下記のように入力すればOKです。 $ npm run eslint-version ちなみにデフォルトで設定されているscriptsは下記に記載されています。 https://docs.npmjs.com/cli/v7/using-npm/scripts

Windowsで特定のポートを使っているプロセスを強制終了

Windows上である特定のポートを使って立ち上げたサーバープロセスを強制終了する方法の紹介です。 ■ 方法 1) Windows PowerShellやCommand Promptを立ち上げます。必須ではありませんが、プロセスのKILLを実行するので、管理者権限で立ち上げるのが無難で す。 2) ポートで使用しているポート番号(<PORT>)のプロセスIDを検索します。 netstat -ano | findstr :<PORT> 3) 得られたプロセスIDを指定(<PID>の部分)して、そのプロセスをKILLします。 taskkill /PID <PID> /F ■ 実際の例 例えば49668ポートで検索した場合、下記のような結果が出力されます。 PS C:\Windows\system32> netstat -ano | findstr :49668 TCP 0.0.0.0:49668 0.0.0.0:0 LISTENING 3932 TCP [::]:49668 [::]:0 LISTENING 3932 上記の例の場合のプロセスIDは「3932」になるので、下記のようにコマンドを実行すれば、当該のプロセスがKILLされます。 taskkill /PID 3932 /F ちなみに複数のプロセスIDを指定してKILLすることもできます。 taskkill /PID 14328 /PID 8156 /PID 6864 /F

エラーコード0x80070002でWindows Updateが進まない問題

0x80070002エラー Windows Updateを実行していたのですが、何度実行しても「エラーコード0x80070002」のエラーが発生してインストールに失敗するようになってしまいました。 下記のページに載っていた情報をもとに色々試したのですが、最終的に筆者の環境では、 ソフトウェア配布フォルダーの削除 を実施して解決しました。 https://freesoft.tvbok.com/tips/update_error_code/0x80070002.html https://www.cyclonis.com/ja/how-to-fix-error-code-0x80070002/ 「マイコンピュータ」に移動。 「C:\ Windows」フォルダーに移動。 SoftwareDistribution という名前のフォルダを検索して、念のため、フォルダの名前を SoftwareDistributionBackup などに変更してバックアップ。 SoftwareDistribution フォルダ削除。 PCを再起動し、Windows UpdateにアクセスしてPCを更新。 補足 ちなみにWindows Updateで0x80070002のエラーが発生している場合、Microsoft Storeで新しいアプリをインストールしようとしてGetボタンを押しても反応がなくなり、Microsoft Storeからアプリをインストールできなくなるようです。 筆者の場合は、下記のような流れで解決しました。 1) Microsoft Storeで新しいアプリをインストールできなきなくなる ↓ 2) Windows Updateの失敗していることが原因と判明 ↓ 3) Windows Updateが0x80070002エラーで失敗していることが判明 ↓ 4) Windows Updateが0x80070002エラーをこの記事に書いた方法で解決して、Windows Updateを完了させる ↓ 5) Microsoft Storeで新しいアプリをインストール成功となり、無事すべての問題解決!

NetBeansが「invalid jdkhome specified」エラーで起動しな場合の対処法

Windows 10のPCでJavaのバージョンを入れ替えた後、NetBeansを起動しようとしたのですが、「invalid jdkhome specified」「Cannot find java 1.8 or higher」というエラーが派生して、NetBeansが起動しなくなってしまいました。 環境変数のJAVA_HOMEが原因かとも思いましたが、筆者の環境で使用している C:\Program Files\AdoptOpenJDK\jdk-8.0.292.10-hotspot\ が正しく設定されていました。 調査したところ、原因は C:\Program Files\NetBeans-12.0\netbeans\etc\netbeans.conf 内の netbeans_jdkhome の設定でした。 netbeans.conf にインストールしてあるJDKを指定して、無事起動するようになりました(下記は筆者の例ですので、各人の環境にインストールしてあるJDKを指定してください)。 netbeans_jdkhome="C:\Program Files\AdoptOpenJDK\jdk-8.0.292.10-hotspot" 編集時の注意点としては、Administrator権限でファイルを編集する必要があります。 Windowsの検索ボックスで「Command Prompt」を検索。 検索結果に出てきた「Command Prompt」プログラムを右クリックして、「Run as administrator」でプログラムを起動。 cd "C:\Program Files\NetBeans-12.0\netbeans\etc" のようにインストールしてあるNetBeansのetcディレクトリへ移動。 notepad netbeans.conf と入力してnotepadを起動。 notepadで netbeans_jdkhome のエントリを探して使いたいJDKのホームディレクトリを指定して、ファイルを保存。 筆者は、最初Administrator権限ではなく、普通のユーザで直接netbeans.confを編集してしまい、変更が反映されずにしばらく原因を探るのに時間がかかってしましました。

WSLを利用している各アプリケーションのWSLのバージョンを確認する方法

WSL (Windows Subsystem for Linux)は、WSL 2からIOパフォーマンスなどが向上していますので、基本的にはWSL 2を使う方がおすすめです。 WSL 2は、下記のMicrosoftの公式ドキュメントの通り設定すれば、簡単にセットアップできます。 Install WSL on Windows 10 | Microsoft Docs すでにWSLを使っている場合に、各アプリケーションが利用しているWSLのバージョンを確認したいこともあると思いますが、その場合はPowerShellなどで、 wsl -l -v と実行すればOKです。 PS C:\> wsl -l -v NAME STATE VERSION * docker-desktop Stopped 2 docker-desktop-data Stopped 2 Ubuntu-20.04 Stopped 2 上記の実行例では、docker-desktopやUbuntu-20.04がすべて、Version 2 (=WSL2)を利用していることがわかります。