配列の中に特定の値が含まれているかを調べる方法です。
PHP 添付ファイルを送信できるメールフォームを作成しました。
添付ファイルを送信できる、無料で自由に使えるメールフォームを作成しました。
ぜひお使いください。
【2017/06/14】
必須項目に0を入力した場合に必須エラーになる不具合を修正(v2.0.4)
PHP 外部ファイル (css、js)内でPHPを実行する方法
外部ファイル (css、js)内でPHPを実行する方法です。
PHP 文字列を配列に変換するexplode、配列を文字列に変換するimplodeの使い方
文字列を配列に変換する「explode」、配列を文字列に変換する「implode」の使い方です。
PHP ini_set(‘display_errors’, 1) ってなに?
PHPの学習をしていると「ini_set(‘display_errors’, 1)」っていう記述が出てきたのでぐぐってみました。
PHP range,shuffle,array_sliceを使用して特定の範囲の数値からランダムにいくつか取り出して配列を作る方法
特定の範囲の数値からランダムにいくつか取り出して配列を作る方法です。
「range」「shuffle」「array_slice」を使用して下記のように記述することで特定の範囲(サンプルは1~100)の数値からランダムにいくつか(サンプルは5つ)取り出して配列にすることが出来ます。
<?php $i = range(1,100); shuffle($i); $array = array_slice($i, 0, 5); var_dump($array); ?>
» 実行結果
リロードすると数値が変わります。
range
「range」は第一引数から第二引数の範囲の配列を作成します。第三引数を指定しない場合は1ずつ、第三引数を指定すると、指定した間隔で配列を作成します。
<?php $x = range(0, 10); // 0~10の配列を作成します $y = range(0, 100, 10); // 0~100を10ずつに区切って10,20,30…100の配列を作成します var_dump($x); echo "<br>"; var_dump($y); ?>
「range」は英字にも使えます。
<?php $x = range("a", "d"); var_dump($x); ?>
shuffle
「shuffle」は配列の順番をランダムに変更します。
<?php $x = range(1, 10); // 1~10の配列を作成 shuffle($x); // 配列をランダムに並び替え var_dump($x); ?>
» 実行結果
リロードすると順番がランダムに変わります。
array_slice
「array_slice」は第一引数の配列から、第二引数を開始位置として、第三引数の数値分の配列を返します。
<?php $i = range(1,100); // 1~100の配列を作成 shuffle($i); // 配列をランダムに並び替え $array = array_slice($i, 0, 5); // ランダムに並び替えられた配列の0番めから5つを$arrayに代入 var_dump($array); ?>
» 実行結果
リロードすると数値が変わります。
PHP strposを使用して文字列に特定の文字が含まれているか判定する方法
「if」と「strpos」を使用して文字列に特定の文字が含まれているか判定する方法です。
「strpos」は特定の文字列が含まれていない場合にfalseを返しますので、下記のようにすると文字列が含まれている場合や含まれていない場合に処理を行うということができます。
含まれている場合に処理を行う
下記は、変数xに「いうえ」が含まれている場合に「含まれています」を表示する例です。
<?php $x = "あいうえお"; if(strpos($x, "いうえ") !== false){ echo "含まれています"; } ?>変数xに「いうえ」が含まれているので、strpos($x, “いうえ”)の結果はfalseではなく、数値が返ってきます。「!==」を使用して、falseでなければ処理を実行する、つまり特定の文字が含まれていれば実行する形になっています。
重要なのは厳密に判定するために「!==」を使用していることです。「!=」だと、strposの結果が0だった(0文字目から含まれている)場合にfalseと判定されるため、誤った結果となってしまいます。
下記は、「!=」を使用してしまい、誤った結果が返ってきてしまう例です。変数xには「あいう」がふくまれているのに「含まれています」が表示されません。
<?php $x = "あいうえお"; if(strpos($x, "あいう") != false){ echo "含まれています"; } ?>
含まれていない場合に処理を行う
下記は、変数xに「イウエ」が含まれていない場合に「含まれていません」を表示する例です。
<?php $x = "あいうえお"; if(strpos($x, "イウエ") === false){ echo "含まれていません"; } ?>「含まれている場合」と同じく厳密に判定するために「===」を使用します。
両方の処理を行う
else を使用するだけですね。
関数にしてみます。
<?php function jud($x, $y){ if(strpos($x, $y) !== false){ echo "含まれています<br>"; }else{ echo "含まれていません<br>"; } } $x = "あいうえお"; $y = "いうえ"; jud($x, $y); $x = "あいうえお"; $y = "イウエ"; jud($x, $y); ?>関数がよくわからなかった方は「関数の作り方」の記事をご覧ください。
最後に・・・
判定に使用するためであれば、日本語であっても「mb_strpos」を使用する必要はありません。strposで大丈夫です。日本語でも「含まれていない場合」にちゃんとfalseを返してくれますので。
PHP 文字列に特定の文字が含まれる場合に開始位置を取得するstrpos,mb_strposの使い方
文字列に特定の文字が含まれる場合に開始位置を取得する方法です。
「strpos」「mb_strpos」を使用することで、文字列に特定の文字が含まれる場合に開始位置を取得することが出来ます。特定の文字が含まれていない場合はfalseを返します。
「strpos」も「mb_strpos」も基本的に記述方法は同じですが「mb_strpos」は第四引数に文字コードを指定することが出来ます。
strpos(値, 含まれているか調べる文字, 何文字目からを対象とするか); mb_strpos(値, 含まれているか調べる文字, 何文字目からを対象とするか, 文字コード);
第一、第二引数のみの場合
第一、第二引数のみの場合は、値の全ての文字を対象に、特定の文字が含まれているかを調べて、含まれていれば開始位置を返し、含まれていなければ「false」を返します。ちなみに第二引数は必須なので、指定しないとエラーになります。(指定しないとstrpos使う意味が無いですけど)
下記例では、変数xには「うえ」が含まれるので、0から数えて2文字目の「2」が変数yに代入され、「ウエ」は含まれていないのでfalseが変数zに代入されます。
<? $x = "あいうえお"; $y = mb_strpos($x, "うえ"); // 0から数えるので、0,1,2,3,4 → あ,い,う,え,お 「うえ」が開始される 2 を返す $z = mb_strpos($x, "ウエ"); // 「ウエ」が含まれていないのでfalseを返す var_dump($y); echo "<br>\n"; var_dump($z); echo "<br>\n"; ?>
第三引数を指定する場合
第三引数で、何文字目以降を調べるかの指定ができます。
下記例では、変数xの0から数えて3文字目の「え」以降には「お」が含まれているため「4」が変数yに代入され、変数xの0から数えて5文字目の「か」以降には「お」が含まれていないためfalseが変数zに代入されます。
<?php $x = "あいうえおかきくけこ"; $y = mb_strpos($x, "お", 3); // 0から数えて3文字目の「え」以降に「お」が含まれているため、開始される 4 を返す $z = mb_strpos($x, "お", 5); // 0から数えて5文字目の「か」以降に「お」が含まれていないため、false を返す var_dump($y); echo "<br>\n"; var_dump($z); echo "<br>\n"; ?>
最後に・・・
mb_srtposを使用する際、htmlの文字コードと値の文字コードが違う場合は、第四引数に「値の文字コード」を指定しましょう。表示する際は「mb_convert_encoding」等でエンコードして文字化けしないように気をつけましょう。
PHP 文字列の一部を置き換えるstr_replaceの使い方
文字列の一部を置き換える方法です。
「str_replace」を使用することで、文字列の一部を置き換えることが出来ます。
str_replace(置き換えの対象になる文字, 置き換える文字, 値);
「mb_strlen」や「mb_substr」の様に、マルチバイト文字用の「mb_str_replace」という関数は(今のところ?)ありませんので注意しましょう。
str_replace
「あいうえお」の「いうえ」をカタカナに置き換えてみます。
<? $x = "あいうえお"; echo str_replace("いうえ", "イウエ", $x); ?>
最後に・・・
簡単ですが、以上です。
何か実例を思いついたら追記しますm(__)m
超便利 !? ブラウザ上からHTMLを編集できる Sitecake
コリスさんで超便利なオープンソースが紹介されていました。
HTMLを直接ブラウザで更新・修正できてしまう簡易CMS「Sitecake」です。
普通のHTMLで作成したページの指定箇所のみをブラウザ上から更新・修正できるようにするシンプルなCMS -Sitecake
導入までをご紹介したいと思います。
特徴
すでにコリスさんで説明されていますが、HTML・PHPの知識が不要、データベースが不要、更新が簡単、個人・商用利用可能といったメリットが盛り沢山のオープンソースです。
HTMLの編集可能にしたい箇所に「class=”sc-content”」を付与するだけで使用することができます。
編集可能な箇所を指定できるので、クライアントが毎月更新する部分だけに使用したり出来ますね。(余計な箇所を扱われる心配がないです)
環境
PHP5.4以上が必須です。
XAMPP、ロリポップでは問題なく動作しました。
VagrantとVirtualBoxで動かしているcentosで動作確認してみると「Class ‘DOMDocument’ not found」といったエラーが出て、色々調べましたが解決出来ませんでした。。。
ダウンロード・アップロード
http://sitecake.com
上記「DOWNLOAD」から本体をダウンロードします。
「TRY DEMO」からデモ画面を操作することが出来ます。
「WATCH VIDEO」から動画で使い方を見ることが出来ます。(英語ですが見たらなんとなくわかると思います)
https://github.com/sitecake/sitecake
GitHub中段の「example template」からサンプルをダウンロードして、すぐに使ってみることが出来ます。
本体、サンプルの中身は下記のようになっていますので、全部まとめてサーバーのルートにアップロードします。
■ 本体 /sitecake sitecake.php
■ サンプルデータ /css /img /js about-us.html contact.html index.html portfolio.html
↓ ↓ ↓
■ サーバー /css /img /js /sitecake about-us.html contact.html index.html portfolio.html sitecake.php
編集方法
アップロードしたsitecake.phpにアクセスします。
http://hoge.com/sitecake.php
パスワードを求められます。デフォルトは「admin」です。実際に使用する時は、/sitecake/credentials.php の
<?php $credentials = "d033e22ae348aeb5660fc2140aec35850c4da997"; ?>
を、書き換えましょう。SHA1で暗号化した文字列を入力する必要がありますので、「» http://www.sha1-online.com」等で変換しましょう。
編集可能な部分にカーソルを近づけると枠が表示され、クリックすると編集が出来ます。
上部のツールバーから要素をドラッグ&ドロップすることで、新しく要素を追加することも可能です。
編集後はツールバーの「Publish」をクリックすると保存出来ます。
右上の「×」で編集画面からログアウトし、/index.html にリダイレクトされます。「変更されてないっ!?」と思った方(私)はおそらくキャッシュですので、安心してF5を押しましょう。
最後に・・・
画像、動画、GoogleMapを設置したり、リサイズしたり出来ますので、動画を見ながら色々扱ってみてください。
最近のコメント