【PHP】Header Location できない

php にて、header(‘location: xxx’);
を行い、他のページへ遷移しようとした所、以下のようなメッセージが表示されて
遷移ができないということがあった。

Warning: Cannot modify header information – headers already sent by (output started at C:\xxxxxxx.php:1)
in yyyyyyyy.php on line 28

yyyyyyyy.php の 28 行目で header() をしようとしているのに、
xxxxxxxx.php の 1 行目で既に何かが出力されているので
header() できませんよ、というワーニング。

原因はxxxxxxxx.php の 1 行目にあるはずなので、見てみた所、
<?php とあるだけ。 スペースなども特にない。 思いがけずはまってしまったのだが、本当の原因はxxxxxxxx.php のファイルの文字コードが utf-8 の BOM あり で保存されていること。 なのでサクラなどのテキストエディタで開いて、 utf-8 の BOM なしで保存し直せば解決。 BOM というのは Byte Order Mark の略で、 そのファイルが Unicode であることが識別できるように 先頭につけられるデータのことだそうだ。

カテゴリー: php

WordPressの古いバージョンのプラグインをダウンロードする方法

公式サイトの各プラグインページの右下の「互換性」欄でバージョン番号を確認して、最新バージョンのダウンロードURLのバージョン部分を書き換えてダウンロードします。

例)
最新版URL(2015/10/10 現在):

https://downloads.wordpress.org/plugin/wp-super-cache.1.4.6.zip

↓ バージョン1.3.3をダウンロードする場合

https://downloads.wordpress.org/plugin/wp-super-cache.1.3.3.zip

セキュリティ上、WordPressもプラグインも最新版(最新の安定版)を使うべきでしょうけど、もしもの場合に。

 

さくらレンタルサーバーでシェルスクリプト実行がうまくいかない時

メモ。

・さくらのデフォルトでは、1行目インタプリタ指定は #!/bin/csh
※環境毎に確認するのほうが無難。
・実行するファイルのパーミッションチェック
・文字コード・改行( euc-jp・改LF)に注意。特に改行がCRLFになっていると動作しない。
・cron実行の場合、さくらのレンタルサーバーでは長時間の処理はNG

VertualBox5でゲストOS:Win7 on MBP Retina 使ってみました。

VErtualBox5が出てみたのでバージョンアップしてみました。
とりあえず、普通にインストール、ExtenstionPackやGuest Additions も最新にして普通に使えました。
純仮想化でHyper-V使うとパフォーマンスが上るって事だったんで期待しましたが。。。。
むしろ、Chrome上の2Dアニメーションが若干カクカク?
何の速度アップも感じませんでしたので、純仮想化インターフェースをLegacyに戻しました。
やっぱり、Vertual環境で速度を求めちゃだめですかね。。。

sidebar-login ユーザー名が文字化け

ワードプレスのプラグイン「sidebar-login」で %username%部分で日本語が文字化け。

なんでかと思えば、class-sidebar-login-widget.php で1文字目を大文字にしています。

array( ucwords( $this->user->display_name ), $this->user->ID )

array( $this->user->display_name , $this->user->ID )
に修正して解決。

変な気を使わないでくださいという感じです。