投稿者: ume

  • [PHP]ブックマークから開いたときの前のページ

     前のページのURLを調べるときは、PHPで『$_SERVER[‘HTTP_REFERER’]』を使います。
    直接URLを開いたり、ブックマークから開いたりしたとき、『$_SERVER[‘HTTP_REFERER’]』はどんなURLになるでしょうか。
    試してみたところ空っぽでした。

     ちなみに<a href=””></a>と、hrefにブランクを渡すと現在のURLへのリンクになっていました。

  • [PHP]if-else分岐

    IF文での分岐は次のようになります。

    if(条件) {
    式;
    }

    if(条件) {
    式;
    } elseif {
    式;
    } else {
    式;
    }

  • [PHP]Laravelの開発環境をWindowsで整える

    はじめに

     WindowsパソコンにLaravelの開発環境を整えました。およそ次のとおりになります。

    1. WSL(WindowsでLinuxを使えるようにするもの)
    2. WSLにUbuntuをインストール
    3. WindowsにDocker Desktopをインストール
    4. UbuntuにLaravelをインストール

    WSL

     [コントロールパネル]>[プログラム]>[プログラムと機能]>[Windowsの機能の有効化または無効化]を開いて、次の項目にチェックを入れます。

    • Linux 用 Windows サブシステム
    • 仮想マシン プラットフォーム

     これをPowerShellで設定するには次のようにします。PowerShellは[管理者として実行]します。

    dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
    dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart

    WindowsでWSL2を使って「完全なLinux」環境を作ろう!

     ここまで設定したら、一旦Windowsを再起動します。

    Ubuntu

     パソコンから目を離しても、Windowsがスリープしないように、[システム]>[電源とバッテリー]で設定しておきます。

     それでは、Ubuntuをインストールしましょう。PowerShellを[管理者として実行]し、次のようにします。

    wsl --install

     Ubuntuがインストールされると、新しいユーザーの名前とパスワードの登録がおこなわれます。
    ユーザー名とパスワードは何でもよいですが、ブランクにできません。このパスワードは頻繁に使いますので、しっかりメモしておきましょう。
     成功すると、[スタート]>[すべてのアプリ]に[Ubuntu]が登録されます。

    WSL を使用して Windows に Linux をインストールする

     次に、Ubuntuを更新しましょう。[スタート]>[すべてのアプリ]から[Ubuntu]を開いて、次のようにします。

    sudo apt update && sudo apt upgrade -y
    exit

     ここでWindowsを再起動します。

     もういちど、Ubuntuを開いて、次のようにします。

    sudo do-release-upgrade
    exit

     途中で[y]や[ENTER]の入力を求められます。

     更に、WindowsとUbuntuの改行コードの違いを吸収するために次のようにします。

    sudo apt-get install -y dos2unix
    find . -type f -print0 | xargs -0 dos2unix

    Docker Desktop

     次のサイトからWindows用のDocker Desktopをインストールします。これはWindowsのアプリです。

    ドッカーデスクトップ

     インストールが正常に終わると[Installation succeeded]と表示されます。そのあとDocker Desktopを開くとチュートリアルが始まりますが、とりあえずスキップしましょう。

    ララベルとドッカー

    Laravel

     Ubuntuを開いて、次のようにします。
    [○○]部分には任意のディレクトリ名を入れます。例えば[example-app]とすることができます。

    curl -s "https://laravel.build/○○?php=81" | bash
    cd ○○ && ./vendor/bin/sail up

     これで、開発環境は整いました。

    【Docker】Laravel Sailのインストールと使い方を確認

    Laravelを開く

     ここからは、コンピューターを開いてLaravelにアクセスするたびにおこないます。
    まずはUbuntuを開いて、次のようにします。

    cd ○○ && ./vendor/bin/sail up -d

     [○○]部分には、先に curl -s “https://laravel.build/○○?php=81” | bash したときの○○を入れます。
     次に、ブラウザを開いて http://localhost/ にアクセスします。無事にLaravelの画面が表示されたでしょうか。

     なお、Laravelを終わらせるには、次のようにします。

    ./vendor/bin/sail down

    おわりに

     開発環境の細かいところは、参加するチームによって色々と差異があるとおもいます。基本的なところが押さえられていたなら いいな..とおもいます。

  • [MariaDB]開発環境をととのえる

    はじめに

     Windowsに Apache HTTP Server、PHP、MariaDB をインストールして開発環境を構築してみます。
     最初は XAMPP をインストールしたのですが、あるとき動かなくなって、どうしたら復旧するのかわからなくなりました。「こんなことになるのなら個別にインストールしたほうがわかりやすくない?」とおもい、個別にインストールとセットアップをすることにしました。

    PHP(ピーエイチピー)

     最初に PHP をインストールします。PHP は次のリンクから、スレッドセーフのZIPをダウンロードします。ZIPファイルの中身をお好きなところへコピーします。

    https://windows.php.net/download

     『php.ini-development』ファイルをコピーして『php.ini』にします。
     そして『php.ini』の次の各行の先頭の『;』を取り除きます。

    • ;extension=pdo_mysql
    • ;extension_dir = “ext”

     Windowsの[設定]-[システム]-[バージョン情報]-[システムの詳細設定]で、[システムのプロパティ]-[詳細設定]タブを開き、下のほうにある[環境変数]ボタンを押します。[システム環境変数]の[Path]を編集して、PHP のファイルをコピーしたフォルダ(例: C:\PHP)を追加します。

    Apache HTTP Server(アパッチ)

     インストールファイルを次のリンクからダウンロードします。

    https://www.apachelounge.com/download/

     ダウンロードした ZIP ファイル中の『Apache○』フォルダごと、お好きなところへコピーします。
     そして『Apache○\conf\httpd.conf』の次の各行のように更新したり追加したりします。

    • Define SRVROOT “○:/Apache○”
    • ServerName localhost:80
    • Options FollowSymLinks
    • DirectoryIndex index.php index.html
    • LoadModule php_module (PHPのApache用DLLファイルのパス、例: C:/PHP/php8apache2_4.dll)
    • <FilesMatch “.php$”>(改行)AddHandler php-script .php(改行)AddType application/x-httpd-php .php(改行)</FilesMatch>
    • PHPIniDir “(PHPのフォルダ、例: C:\PHP)”

     設定が終わったら Apache を Windowsサービスに登録します。管理者モードでWindowsコマンドプロンプトを開きます。そして Apacheの bin ディレクトリへ移動するコマンド(例: CD /D ○:\Apache○\bin)を実行します。続けて『httpd.exe -k install』でサービスに登録されますが、まだサービスは開始されていません。

    MariaDB(マリアディービー)

     インストーラーを次のリンクからダウンロードします。

    https://mariadb.com/downloads/

     インストーラーを実行して、例えば次のように選択・入力していきます。インストールが完了すると、自動でサービスに登録され、開始されます。

    • New root password: (開発するときは指定しないほうが楽)
    • Use UTF-8 as default server’s character set: 選択

     次に『MariaDB\data\my.ini』を開いて確認します。『utf8mb4』は4バイト対応のUTF-8です。

    [mysqld]
    character-set-server=utf8mb4
    skip-character-set-client=handshake
     ・・・
    [client]
     ・・・

    おわりに

     最後にWindowsを再起動します。
     Apache のドキュメントルートは『○:\Apache○\htdocs』になります。このフォルダに *.php ファイルを置いて、ブラウザーから『http://localhost/○.php』を呼び出してみましょう。

  • [Windows]パスワードを変更する

     Windowsでパスワードを変更しようとするとき、通常は Ctrl + Alt + Delete キーを押してパスワード変更の画面をだします。

     リモートデスクトップからパスワードを変更するには Ctrl + Alt + End キーを押します。キーがかぶらないように工夫されていますね。

  • [C#]List<型>

    using System.Collection.Generic;
    List<型> 変数名 = new List<型>();
    変数名.Add(値); // 追加
    変数名[位置(0-)] = 値; // 更新、追加はできない
    変数名.RemoveAt(位置(0-)); // 削除
    値(true==削除した) = 変数名.Remove(値); // 削除
    変数名.Clear(); // すべて消去
    値 = 変数名[位置]; // 取得
    変数名.Sort(); // 並び替え
    件数 = 変数名.Count;
    位置 = 変数名.IndexOf(値); // -1 == 含まれない
    型[] = 変数名.ToArray(); // Listから配列へ
    foreach(var 一時変数名 in 変数名) { 値 = 一時変数名; }

  • [PHP]お問い合わせフォームをつくりました

     HTMLとPHPをつかって、お問い合わせ内容をメールで送信するものをつくりました。

    HTML

    <form action="PHPファイル名.php" method="post">
    <p>ご返信先メールアドレス<br>
    <input name="email" type="email" size="40"></p>
    <br>
    <p>ご用件を教えてください<br>
    <textarea name="body" required cols="40" rows="6" placeholder="ウェブサイト作成のご依頼ほか"></textarea></p>
    <p><input type="submit" value="送信"></p>
    </form>

    PHP

    <!doctype html>
    <html lang="ja">
    <head>
    <meta charset="utf-8">
    </head>
    <body>
    <main>
    <?php
    $email = $_POST['email'];
    $body = $_POST['body'];
    mb_language("Japanese");
    mb_internal_encoding("UTF-8");
    $headers = "From: $email";
    mb_send_mail($email, "お問い合わせ", $body, $headers);
    print ("お問い合わせありがとうございます");
    ?>
    </body>
    </html>

  • [Python]name ‘pip’ is not defined

     Python(パイソン)でpip install ○○』と入力したとき、pipって何?というエラーがでました。
    なぜでしょうか?

    name 'pip' is not defined

     昔インストールした古いパスが残っていることがあります。
    Windowsのスタート画面で『環境変数を編集』と検索し、検索結果を開きます。
    画面上部にユーザー環境変数が、画面下部にシステム環境変数が表示されます。どちらにも『Path』があります。
     Pathに設定された値を確認します。『Python』を含むものを見つけましょう。そのパスが示すフォルダはあるでしょうか?なければ削除しましょう。これで治ったのではないかとおもいます。

  • [CSS]クラス名に空白を含むとどういう意味?

     次のようにクラス名に空白が含まれるものがあります。
    これはクラス名 abc と def の2つを持つという意味になります。

    class="abc def"

     このクラスにスタイルを設定するときは次のように.(ピリオド)に続けたクラス名を2つ空白を入れずに併記します。
    クラス名 abc と def の両方を持つばあいの設定を指定しますという意味です。

    .abc.def {
       設定: 値;
    }

     ちなみに2つのクラス名の間に空白を挟むと、左側のクラス名のなかにある右側のクラス名の部分という意味になります。

  • [Linux]ファイル一覧を取得

    [Linux]ファイル一覧を取得

    Linux系でファイルとディレクトリの両方を取得するには次のコマンドを実行します

    ls -a -l -R --time-style=long-iso /

    すべてのファイルを取得するため「/(ルートディレクトリ)」を設定します

    出力結果をファイルに書き出すには次のようにします

    ls -a -l -R --time-style=long-iso / 1>ファイル名 2>&1

    「2>&1」でエラーもファイルに書き出します

    ファイルだけを取得したいときは次のようにします

    ls -a -l -R --time-style=long-iso / | grep -v "^d" | grep -v "^l" | grep -v "^c" | grep -v "^b" | grep -v "^total " >ファイル名

    「grep -v」で先頭文字が{d, l, c, “total “}行を除外します
    grepを付けると「2>&1」が無効になってエラーが画面表示されるみたいです

    lsの行頭の記号の意味

    d : ディレクトリ
    l : シンボリックリンク
    c, b : デバイスファイル
    – : ファイル