不等号の大なり小なりの覚え方

大なり「<」小なり「>」の覚え方。

大なり小なりは左の数字が基準。

5 > 2 → 「5」が大なり 2

10 < 100 → 「10」が小なり 100

別の覚え方として、顔文字(泣き顔)の >< をイメージ。
この順番が大なり小なり。

「>」→ 大なり。
「<」→ 小なり。

ちなみに大なり(>)は英語で「greater than」、小なり(<)は英語で「less than」である。

なお、なり[並立助詞]とは、並列・列挙した中から、どれか一つを選択する意を表す。
「兄さん―姉さん―に教えてもらいなさい」「御飯にする―お風呂に入る―早くして」「大―小―」
(コトバンク デジタル大辞泉より)

さくらにて、異なるドメイン間でリダイレクトする

さくらインターネットにて .htaccess 内に RewriteRule を記述してリダイレクトを指定したがうまくいかなかった。どうもドメインをまたいでのURL遷移は禁止されているらしい。

・さくらインターネットで、RewriteRule を用いて異なるドメイン間のリダイレクトは不可。

php を使ってのリダイレクトは問題なく出来た。

---------------------------------
<?php
header( "HTTP/1.1 301 Moved Permanently" );
header( "Location: http://$new_url" );
?>
---------------------------------

html_entity_decodeで文字化けしたときの対処法

さくらにて、同じサーバーで異なるドメインを運用中、片一方のドメインだけで文字化けが発生した。文字化け発生箇所は html_entity_decode を実行した直後。

原因はphpのバージョンの違いだった。
html_entity_decode のエンコードのデフォルト値はphpのバージョンで異なる。

PHP 5.6.0 以降では、デフォルト値として default_charset の値が使われる。PHP 5.4 と PHP 5.5 のデフォルト値は、 UTF-8 で、それより前のバージョンの PHP のデフォルト値は ISO-8859-1 である。

私のさくらサーバーはhtmlファイル内でphpを実行させるため、ルートファイルにphp.cgiをコピーしている。で、さくらのphpのバージョンはコピーしたphp.cgiで決まる。今回片一方のドメインのみで文字化けが起こったのはphp.cgiのバージョンが異なったためだった。

文字化けなしのphp.cgiをコピーして問題は解決した。なお、html_entity_decode では encoding というオプションの引数で文字コードを変えることが可能である。

UTF-8なら、
html_entity_decode($str,ENT_NOQUOTES,'UTF-8')

【HTMLエンティティ】文字参照をそのまま表示する

文字参照をそのまま表示するには頭文字の「&」を文字参照に置き換える。

つまりダブルクォーテーションの文字参照「&quot;」なら、「&amp;quot;」、
大なり記号の文字参照「&lt;」なら、「&amp;lt;」と記述すればいい。

【mysql】カンマ区切りの文字列から上手にデータを抽出する【FIND_IN_SET】

カンマ区切りの文字列から上手にデータを抽出には「FIND_IN_SET」を使う。

たとえばあるカラムにカンマ区切りのデータが入っていたとする。

---------------------------------
はくさい,しいたけ,にんじん
---------------------------------

この場合こう書く。

SELECT * FROM table WHERE FIND_IN_SET('しいたけ', カラム名);

FIND_IN_SET は、結合条件(ON 句のうしろ)にも使える。

高さの指定がないセル全体をリンクにする

テーブルのセル全体をリンクさせると次のようになる

セル内の文字リンク

 ↓ セル全体にすると ↓ 

セル全体リンク

方法はaタグをブロックレベル要素に変更して、高さと幅を100%にするだけ。

<a href="#" style="display:block;width:100%;height:100%;">

このとき親要素の td に高さ指定が必須なのだが、セルの情報量に合わせてセルサイズをブラウザに自動で決めてもらいたいのでセルサイズを指定したくない。必要以上大きくセルの高さをしていすると格好がわるい。
しかし、セルサイズを指定しないと display:block を指定してもセル全体がリンクになってくれない。仮に親要素 td に height:100% と指定してもセル全体のリンクにはならない。px指定でないとダメなよう。

そこで、テーブルの高さを文字の大きさ以下(情報量以下の大きさ)にする。

高さ300px

 ↓ 高さを文字の高さ以下に設定する ↓ 

高さ1px

必要以上にテーブルの高さを広げずに、セル全体をリンクすることができる。

さて、自分の場合こうした上で文字をセルの垂直中央に揃えたかったのだが、うまくいかなかった。

セル1 セル2
セル2
セル2
セル2
セル2

セル1を垂直中央に置きたかったが、セルをブロックレベル化、 height を 100%にしたため vertical-align: middle も valign="middle" も思い通りに効いてくれない。

そこでdisplay:tableを使う。要素をtableのように横並びに配置させられるので思ったとおりのものができた。

セル1
セル2
セル2
セル2
セル2
セル2

コード
-----------------------------------------------------
<div style="display:table;table-layout:fixed;">
<div style="display:table-row;">
<a href="index.html" onclick="return false"style="display:table-cell;border: 1px solid #d4d4d4; width:200px;height:100%;vertical-align:middle;">セル1</a>
<a href="index.html" onclick="return false"style="display:table-cell;border: 1px solid #d4d4d4; width:200px;height:100%;vertical-align:middle;">セル2<br>セル2<br>セル2<br>セル2<br>セル2</a>
</div>
</div>
-----------------------------------------------------