【mysql】データベースの照合順序を変更する

データベースの照合順序を変更する
---------------------------------------------------------
ALTER DATABASE データベース名 COLLATE utf8mb4_general_ci
---------------------------------------------------------

テーブルの照合順序を変更する
---------------------------------------------------------
ALTER TABLE テーブル名 COLLATE utf8mb4_general_ci
---------------------------------------------------------

CID番号から漢字を調べる

CID番号(Adobe-Japan1)から漢字を調べるにはグリフウィキを使うのが簡単。

グリフウィキ

たとえば、CID 15294 は「顙」だが

https://glyphwiki.org/wiki/aj1-15294

にアクセスすればいい。URLの下5桁がCIDに対応している。CIDが4桁なら先頭にゼロを加えて5桁にする。

さくらVPS で pear をインストールしたときの覚書

さくらVPS で pear をインストールしたときの覚書

現在インストールされているパッケージの確認
------------------------------
pear list
------------------------------

インストールできるパッケージの一覧
------------------------------
pear list-all
------------------------------

インストールされた pear のバージョンを確認
------------------------------
pear version
------------------------------
PEAR-1.9.4 がインストールされた。

DB パッケージをインストールする
------------------------------
pear install DB
------------------------------
DBパッケージをインストールするには pear のバージョンが 1.10.4 以上でないといけないエラーが出る。

こことかいろいろ見ながら最後に強制アップデートできた。

------------------------------
pear upgrade --force PEAR
------------------------------

preg_replaceで予期せぬnullが返ってくる場合の対処法

pcre.recursion_limit の値を増やす。
値は phpinfo で確認

phpファイルに以下を記述
--------------------------------------------------
ini_set('pcre.backtrack_limit', 100000000);
--------------------------------------------------

参考ページ:preg_replaceでnullが返却される際の対処

【javascript】宣言してない変数へ値を代入するとグローバル変数が作成される

メモ。

宣言してない変数へ値を代入するとグローバル変数が作成されるのは javascript の仕様。

非strictモードの場合のみ。

詳細:“use strict”(厳格モード)を使うべきか?

【jQuery】アラートを一回だけ出す

【jQuery】アラートを一回だけ出す

これで↓「青年」をクリックすると「青年」「ある青年の主張」とアラートが二度出てしまう。
-------------------------------------------------
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" />
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function(){

$(document).on("click", "span", function() {

var get_txt = $(this).text();

alert(get_txt);

});
});
</script>
</head>
<body>
<span>ある<span>青年</span>の主張</span>
</body>
</html>
-------------------------------------------------

「青年」をクリックすると「青年」だけ、その他の文字列をクリックすると「ある青年の主張」というアラートをそれぞれ一度だけアラートするには。

方法1
バブリングを止める
-------------------------------------------------
<script type="text/javascript">
$(document).ready(function(){

$(document).on("click", "span", function(e) {

var get_txt = $(this).text();

alert(get_txt);
e.stopPropagation(e);

});
});
</script>
-------------------------------------------------
stopPropagation で親要素へのイベントの伝播を止めている

方法2
event.target を使う
-------------------------------------------------
<script type="text/javascript">
jQuery(document).on('click', function (event) {
var target = event.target;

if (target.tagName === 'SPAN') {
alert(target.textContent);
}
});
</script>
-------------------------------------------------

event.targetは、イベントバブルのイベントを開始したDOM要素を返すプロパティ。

jQueryで文字列だけ残してタグを削除

jQueryで文字列だけ残してタグを削除する方法

特定の値を持ったカスタムデータ属性を含むタグを消す場合
-------------------------------------------------
$("span[data-url=" + url + "]").each( function(i){
var childNodes = this.childNodes;
$(this).replaceWith(childNodes);
});
--------------------------------------------------

参考:教えて!goo jqueryを使って無駄なspanタグを削除したい

【javascript】Uncaught TypeError: Cannot read property 'replace' of undefined

Chrome のコンソールを見ると javascript のエラーが出ていた。

-------------------------------------------------
Uncaught TypeError: Cannot read property 'replace' of undefined
-------------------------------------------------

replace が未定義で読み込めないらしい。

原因 → 文字列でないものに replace を使っていた。

【さくらVPS】PHPセッションファイルの保存場所

さくらVPS に PHP をインストールしたときにPHPセッションファイルの保存先と保存先の指定方法について調べたときの覚書

セッションファイルの保存場所は、 php.ini の session.save_path ディレクティブで指定できる。しかしデフォルトではコメントアウトになっていた。

その状態で phpinfo() を実行すると、 session.save_path の右カラムは no value になっている。

savepath

ターミナルから phpinfo を見る場合
-------------------------------------------------
cat /etc/php.ini | grep session.save_path
-------------------------------------------------

実際のセッションファイルは左カラムに記載されているパスにある。

セッションファイルのあるパス
-------------------------------------------------
/var/lib/php/session
-------------------------------------------------

で、このパス(/var/lib/php/session)はどこで設定しているのかというと、php.conf ファイルになる。

-------------------------------------------------
cat /etc/httpd/conf.d/php.conf
-------------------------------------------------

php.conf 内の記述
-------------------------------------------------
php_value session.save_path "/var/lib/php/session"
-------------------------------------------------

セッションファイルの保存先を変更したいなら、php.ini の session.save_path のコメントアウトを外して有効にすればいい。

変更前
-------------------------------------------------
;session.save_path = "/tmp"
-------------------------------------------------

変更後
-------------------------------------------------
session.save_path = "希望の保存先パス"
-------------------------------------------------

さくらVPSで外部ホストからmysqlに接続する

さくらVPSで外部ホストからmysqlに接続するには、接続を許可するユーザーを作ればいい。

参考サイト
MySQLに外部ホストから接続できるように設定する

接続を許可するユーザーを作るSQL
-------------------------------------------------
grant all privileges on 接続を許可するDB名.* to new_user_name@"接続元のホスト" identified by 'password' with grant option;
-------------------------------------------------

grant → 付与。許諾する。mysqlで権限を付与する命令。

all privileges → 全ての権限を与える。

privileges → プリビレッジ。権限の意。