さくらのレンタルサーバでSSLを有効にするとJetpackが連携できない

wordpress.comからさくらのレンタルサーバに移転して2ヶ月が過ぎたわけですが。

移転当時から常時SSL化を行っています。

そのせいか、wordpressで1、2位を争う人気プラグイン「Jetpack」がうまく連携できませんでした。

続きを読む さくらのレンタルサーバでSSLを有効にするとJetpackが連携できない

nl2brは使えない子

久々にphpでつまずいた事。

nl2brを使って改行コードを<br />に変換しようとしたところ、変換して戻ってきた値をテキストエリアで表示すると勝手に改行が入ってしまう現象が発生。

色々調べてnl2brは改行コードを<br />に置き換えるのではなく、改行コードの前に<br />を挿入する関数だと知った。

完全な勘違い。

これだと改行コードを消さないといけなくなるし、タグもhtml5で記述してるので<br />より<br>の方がいい。

なので大人しく

str_replace(array("\r\n", "\r", "\n"), '
', $str);

で代用することに。

関数の仕様はちゃんと確認すべきですね。

simplexml_load_fileを使う際の文字コード

久々にphpのネタを。

今回引っかかったのは「simplexml_load_file」。

simplexml_load_fileはphp.iniで「allow_url_fopen」がonになっていないと使えないので、まずそこに注意。

あとはFacebookなんかがそうなんですが、ファイルに対してブラウザからはOKだけどサーバーなどからのアクセスは拒否してる場合があります。

その場合は「ini_set(‘user_agent’, ‘ブラウザ情報’);」でユーザーエージェントを偽ってください。(ブラウザ情報って書かれてるところにお好きなブラウザのユーザーエージェント突っ込んでください)

今回はそれもクリアした状態。

なのに取得してきたxmlをsimplexml_load_fileで変換できない。

原因は文字コードでした。

XML宣言で下記のように文字コードがEUC-JPにされていました。

]]>

しかし、simplexml_load_fileはEUC-JPに対応していない。

なので、文字コードをUTF-8に変換してあげます。

下記がサンプルソースコード。

str = file_get_contents('http://example.jp/rss.xml');
$xml = str_replace('encoding="EUC-JP">', 'encoding="UTF-8">', mb_convert_encoding($str, 'UTF-8', 'auto'));
$rss = simplexml_load_string($xml, 'simpleXMLElement', LIBXML_NOCDATA);

まずはfile_get_contentsでソースを取得しmb_convert_encodingでソースをUTF-8に変換。

str_replaceで宣言部分をUTF-8での宣言に置換。

以上で対応完了。

文字コードの違いだけだとエラーが出ず、画面が真っ白になるだけなので何がいけないのか全くわからないので苦戦しました。

続・Universal Analyticsのフィーチャーフォン(ガラケー)設定

今年の1月に書いたUniversal Analyticsのフィーチャーフォン(ガラケー)設定の続きです。

「やり方がわからないので教えてほしい」との依頼があったので、自分が設定した方法を紹介したと思います。

続きを読む 続・Universal Analyticsのフィーチャーフォン(ガラケー)設定

phpでの権限変更「chown」

またまた初歩的な躓きを。

ファイルを編集後、属性と権限を変える処理を作っていたところ、権限変更がうまくいかない。

前にやった時にできなかったのはうっすら覚えていたので「あーやっぱりな」くらいだった。

続きを読む phpでの権限変更「chown」

Universal Analyticsのフィーチャーフォン(ガラケー)設定

GoogleAnalyticsのフィーチャーフォン(ガラケー)対応からの続きです。

とりあえず、公式マニュアルに書いてあるように設定してみることに。

続きを読む Universal Analyticsのフィーチャーフォン(ガラケー)設定