jquery に unique() という関数があるが、これはDOM要素の配列の重複を削除するもの。文字列が入った配列の重複を解消するものでない。
jquery(javascript)で配列の内容をユニークにするには少し手間を掛ける必要がある。
//配列内の文字列の重複を削除する自作関数。
---------------------------------------------------------
function uniqueArray(array) {
var storage = {};
var resultAry = [];
var value;
for ( var i=0; i
カテゴリー:javascript, JQUERY
大なり「<」小なり「>」の覚え方。
大なり小なりは左の数字が基準。
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" );
?>
---------------------------------
カテゴリー:PHP, さくらインターネット
さくらにて、同じサーバーで異なるドメインを運用中、片一方のドメインだけで文字化けが発生した。文字化け発生箇所は 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')
カテゴリー:さくらインターネット, 文字コード
文字参照をそのまま表示するには頭文字の「&」を文字参照に置き換える。
つまりダブルクォーテーションの文字参照「"」なら、「&quot;」、
大なり記号の文字参照「<」なら、「&lt;」と記述すればいい。
カテゴリー:文字コード
カンマ区切りの文字列から上手にデータを抽出には「FIND_IN_SET」を使う。
たとえばあるカラムにカンマ区切りのデータが入っていたとする。
---------------------------------
はくさい,しいたけ,にんじん
---------------------------------
この場合こう書く。
SELECT * FROM table WHERE FIND_IN_SET('しいたけ', カラム名);
FIND_IN_SET は、結合条件(ON 句のうしろ)にも使える。
カテゴリー:mysql
テーブルのセル全体をリンクさせると次のようになる
↓ セル全体にすると ↓
方法はaタグをブロックレベル要素に変更して、高さと幅を100%にするだけ。
<a href="#" style="display:block;width:100%;height:100%;">
このとき親要素の td に高さ指定が必須なのだが、セルの情報量に合わせてセルサイズをブラウザに自動で決めてもらいたいのでセルサイズを指定したくない。必要以上大きくセルの高さをしていすると格好がわるい。
しかし、セルサイズを指定しないと display:block を指定してもセル全体がリンクになってくれない。仮に親要素 td に height:100% と指定してもセル全体のリンクにはならない。px指定でないとダメなよう。
そこで、テーブルの高さを文字の大きさ以下(情報量以下の大きさ)にする。
必要以上にテーブルの高さを広げずに、セル全体をリンクすることができる。
さて、自分の場合こうした上で文字をセルの垂直中央に揃えたかったのだが、うまくいかなかった。
セル1を垂直中央に置きたかったが、セルをブロックレベル化、 height を 100%にしたため vertical-align: middle も valign="middle" も思い通りに効いてくれない。
そこでdisplay:tableを使う。要素をtableのように横並びに配置させられるので思ったとおりのものができた。
コード
-----------------------------------------------------
<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>
-----------------------------------------------------
カテゴリー:css
さくら共有サーバーのmysqlサーバーに突然アクセスできなくなったときの覚書。
サイトにアクセスしても突然つながらなくなった。
「Servece Temporarily Unavailable」と出る

ページを更新させると違うエラーが出る

どうもmysqlサーバーにつながってないよう。
phpmyadminへのログインを試みる。

ログインできない。エラー番号は1040。
SSHからmysqlサーバーにログインしてみる。

「Too many connections」のエラー。ようはmysqlサーバーへのアクセスが多すぎらしい。
これを解消するためにいろいろ試みた。

動作しているプロセスを終了してみるが、改善されず。
結局2時間後、つながるようになった。時間が解決してくれた。
カテゴリー:mysql, さくらインターネット
さくら共有サーバーで使えるmysqlコマンドの一覧は次のとおり。
mysqlモニターにログインしなくても(ログイン前に)つかえるもの。
MySQL5系 |
MySQL4系 |
mysql |
mysql-4.0 |
mysqldump |
mysqldump-4.0 |
mysqlimport |
mysqlimport-4.0 |
mysqlshow |
mysqlshow-4.0 |
mysql_config |
mysql_config-4.0 |
上記だけなので、mysqladminなどは使えない。
実行するとこうなる
------------------------------
mysqladmin: Command not found.
------------------------------
ソース
カテゴリー:mysql, SSH, さくらインターネット
my.cnfは、mysqlの設定ファイル。
SSHでサーバーにログイン(mysqlモニターにはログインしない)して、以下のコマンドを実行すれば確認できる。
「mysql --help」
もしくは、
「mysql --help | grep my.cnf」
helpに書かれている次のパスが、my.cnfのあるところ。

実際には「/usr/local/mysql/5.5/etc」にあった。
以下の記述があった。
-------------------------------
[mysql]
default-character-set=ujis
[mysqldump]
default-character-set=ujis
[mysqlimport]
default-character-set=ujis
[mysqlshow]
default-character-set=ujis
-------------------------------
これは、サーバーにログイン後(mysqlモニターにはログインしない)に使えるコマンド。
mysqladminなどはないので、実行しても使えない。
-------------------------------------------
mysqladmin -u username -h hostname -p
-------------------------------------------
↓ ↓ ↓
-------------------------------------------
mysqladmin: Command not found.
-------------------------------------------
カテゴリー:mysql, SSH, さくらインターネット