2015年3月31日火曜日

PHPのエラー "unexpected T_CONSTANT_ENCAPSED_STRING" とは??

最近になってWord Pressを弄るようになりました。
昔は仕事でプログラミングをかじったこともありますが、PHPについても素人です。

そんなわけで、ワードプレスのテンプレートを弄ってるうちに、下記のようなエラーを吐き出してしまいました。

Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING in ~


よくあるのは処理後のセミコロン;を忘れているとか初歩的なミスなので、エラーメッセージの示している行を確認してすぐに修正できるのですが・・・

今回のは原因が分からず10分ぐらい悩んでしまった。
特におかしな変数や定数も見当たらないし・・・

だいたい"Encapsed"なんて単語の意味が分からない。
そんな英単語もたぶん無い。

"T_CONSTANT_ENCAPSED_STRING" が示すところは下記リンクの一覧を参考にすると、何らかの手がかりは掴める。

パーサトークンの一覧
http://php.morva.net/manual/ja/tokens.php

結局、問題のラインを一文字ずつ追いかけてみて原因判明。

変数に値を代入する為に書いたイコールの後ろに全角のスペースが・・・

実にくだらないミスをやってしまいました。

半角スペースに直して無事解決です。
...

2015年3月17日火曜日

ウィジェット「ラベル」のクラウド表示を見やすくカスタマイズしてみた | Blogger

Bloggerの「ラベル」ウィジェットの表示スタイルをカスタマイズして見やすくしました。その手法をメモしておきます。
Bloggerの「ラベル」ウィジェットは で手軽にラベルの一覧を表示できて便利なのですが、設定にクラウドを選択すると文字だけの羅列になってちょっと見づらい。
そこで、個々のラベルに枠をつけて下のように見やすくしてみました。
カスタマイズ前のラベル一覧。
クラウド表示なので使用頻度に応じて文字サイズが変化して表示されますが、
文字だけの羅列は見づらい。
カスタマイズ後。
角丸の枠で修飾。文字サイズはオリジナルのまま表示されています。

折角なので今回カスタマイズ用に追加したCSSを貼り付けておきます。
必要なら参考にしてください。

span.label-size {
  display: table;
  float: left;
  border: solid 1px #ffffff;
  background-color: #cfcfcf;
  border-radius: 6px;
  line-height: 1em;
  height: 26px;
  padding: 0px 3px;
  margin: 1px;
}

span.label-size a,
span.label-size span {
  display: table-cell;
  vertical-align: middle;
  text-decoration: none;
  color: #cc3300;
}

span.label-size span { /*リンクなしラベルの文字色*/
  color: #000000;
}


ちなみにBloggerの「ラベル」ウィジェットを使ってクラウド表示させると、ラベル名のリンクが<span class="label-size">タグで囲われます。下の様な感じで。

    <span class="label-size">
        <a>ラベル名</a>
    </span>
※ここでは説明に必要なクラス名しか表示していません。
※リンクなしのラベルは<a>タグが<span>になります。たとえば「パソコン」というラベルの投稿一覧を表示中は当該の「パソコン」には<a>タグが付かずに<span>で囲われます。

細かい説明は省きます。配色とかはお好みで適当に。
ポイントは<span class="label-size">タグのスタイルを"display: table;"にして、その子要素になる<a>(または<span>)のスタイルを"display: table-cell;"にすること。
このおかげで"vertical-align: middle;"が使えるようになり、ラベル名の枠内での上下位置を文字サイズに関係なく中央に配置できます。

くどいですが、ウィジェットの設定はリストではなくクラウドです。リストを選んでも上記のCSSは効きませんので。
「表示」の項目はクラウドに設定。
投稿数の表示はお好きなほうで。
以上です。
カスタマイズしたCSSはテンプレートのカスタマイズ画面に設置する項目があります。
設置方法の詳細も省略しますが、くれぐれも失敗してソースコードがぐちゃぐちゃにならないようにバックアップは取っておいたほうが賢明だと思われます。
...

2015年3月14日土曜日

フォルダやドライブの共有設定が勝手に解除されてしまう現象(続き) | SSD換装の影響

SSDへの換装によってシステムの起動が高速化された副作用として起きた問題。起動の遅い外付HDDの共有設定が復元できない現象について講じた対策をメモしておきます。
ドライブの共有設定が勝手に解除されてしまうと思っていた現象。
正確には解除ではなく、共有設定が復元できないままシステムが起動していることが分かりました。
というところまでは前回の記事でご紹介しましたが今回はその対策について。

この問題について最善の策は新しい外付HDDに買い替えなさい!ってことだと思います。
が、財布の中身とか諸事情があって、それはひとまず却下。

と言うわけでファイル共有を提供しているサービス(LanmanServer)の開始を遅らせることで何とか問題回避を試みました。

「コンピュータの管理」を開いてサービスの開始方法(スタートアップの種類)を確認すると、通常は LanmanServer は「自動」となっています。
これはウィンドウズの起動時に自動でサービスを開始する設定です。

今回はこの設定を「自動」から「自動(遅延開始)」に変更。
毎回毎回、寝坊して起きてくる外付HDDに合わせて、敢えてファイル共有サービスが開始されるタイミングを遅らせるというわけ。
サービスの開始方法は「コンピューターの管理」から、サービスを開いてLanmanServer のプロパティから設定できます。
(※LanmanServer はサービス一覧では「Server」と表示されています。)。

Server のプロパティ画面。
スタートアップの種類を「自動(遅延開始)」に設定。

サービスの遅延開始についてはマイクロソフトのサポートサイトを参考にしました。
マイクロソフト サポート:
特定のサービスの読み込みを遅らせる方法
http://support.microsoft.com/ja-jp/kb/193888/ja

ここにも記述があるように、遅延開始を設定する場合はサービスの依存関係を予め確認しておく必要があります。
自分の環境では2つのシステムコンポーネント(Computer Browser, HomeGroup Listener)がぶら下がっていましたがLanmanServerの起動に合わせて自動開始している様子だったのでオッケー(たぶん)ということにしました。
更にComputer Browserと HomeGroup Listenerに依存しているサービスなどがないかもチェックのこと。この辺りは注意深く行わないシステムが正常に起動できない場合もあると思います。詳細は上記サイトとかを参照して調べてください。

同じく Server のプロパティ画面。依存関係のタブ。
このサービスが依存しているサービスと、
このサービスを依存されているサービスを確認できる。

さて、ここまで単に「遅延開始」としか言ってきませんでしたが、実際のところどれだけ遅延するのか気になるところですね。
通常の自動開始のサービスよりも2分遅れて開始されるそうです。

実際にイベントビューアを使ってサービスの開始される様子を追っていくと、通常の自動開始のサービスがシステム起動直後から次々と開始を初めておおよそ20秒ほどでその波が治まり、2分経過したあたりから遅延開始を設定されたサービスが起き始める様子を確認できました。

気になるLanmanServer はどうなったかというと何故か20秒過ぎたあたりから開始しています。
他のサービスにつつかれて起動しているのかもしれません。遅延開始させる前は1秒ほどで開始していたので、遅延開始の設定が無視されている訳でもなさそうです。
当初の目的である共有設定の復元は正常に行われるようになったので取りあえず解決済ということで。

遅延開始に設定して以降、数日間にわたって何度もシステムの起動や再起動、休止状態からの復帰などを繰り返していますが、以前のように共有設定が外れることは完全になくなりました。
また、以前の記事で紹介していたレジストリの変更は既に元に戻した状態なので、私の環境では外付HDDの起動が遅いことに原因があったといって良いでしょう。と願いたい・・・

<おまけ>
ところで、サービスの遅延開始が2分ということでしたが、SSDに交換したおかげで一連の自動開始サービスが20秒以内で開始しているので、遅延組をもうちょっと早めに起こしても良いような気がします。
ということで、遅延開始のタイミングを1分に変更してみました。今のところ問題なく稼働しています。
変更の方法については殆ど情報がなかったのですが、下記サイトを参考にさせてもらいました。

サービスの「状態」比較 #3:良くはないけどまあ、いいか。
https://http://ssmshibata.wp.xdomain.jp/2014/02/05/%E3%82%B5%E3%83%BC%E3%83%93%E3%82%B9%E3%81%AE%E3%80%8C%E7%8A%B6%E6%85%8B%E3%80%8D%E6%AF%94%E8%BC%83-3/

そもそもバックグラウンドで動いているサービスでそれも遅延して起動してもよいとされるものばかりなんで、開始を少し早めたところで何のメリットがあるかと言われると返答に困りますが、、、
何らかの理由で遅延のタイミングを変更したい(どちらかというと遅らせたい)場合には使えそうです。
...

2015年3月11日水曜日

フォルダやドライブの共有設定が勝手に解除されてしまう現象 | SSD換装の影響

ファイル共有が勝手に解除されてしまう問題について、新たな原因が判明したのでレポートしておきます。
先日、PCのファイル共有が勝手に解除されて復元できないことについてレポートしました。
過去の記事
フォルダやドライブの共有設定が再起動後に解除されてしまう問題の解決策:Windows7

この記事でご紹介した方法で解決したと思われたのですが、どうやら見当違いだったようで・・・
再び問題の症状が発生するようになっていました。

暫く様子を見ていましたが、前回の解決策はどうも効果が得られていない様子だったので改めて怪しい点をチェック。
そして、ようやく原因が判明したと思われます(自信なさげ^^;・・・。)

改めて冷静に症状をおさらいすると・・・
  • 共有した筈のドライブが次に起動したときには勝手に共有解除されてしまう。
  • 気が付くと共有設定が復元されているときもあったりする。
  • 起動して共有設定が外れてしまっている場合でも再起動(シャットダウン状態からの起動ではなく再起動)すると共有設定が復元される
  • 共有設定が解除されるのは外付けHDD2台のうち、特定の1台のみに発生
  • デスクトップPCのCドライブをHDDからSSDへ交換した後から上記の症状が発生している。
  • AcronisTrueImageやセキュリティソフトの影響と考え、対処したが的外れだった様子・・・

今回、注目したのは赤字の部分。
共有設定が外れてしまうのはUSB2で外付けしている古いハードディスクで、アイオーデータのHDCN-Uシリーズ。購入したのは5年ぐらい前だったっけか?
一方、同様にUSBで外付け(こちらはUSB3)している新しいハードディスクは正常に共有設定が復元されている。
そして、問題が起き始めた時期はちょうど起動ドライブをSSDに交換した後から。

このことから、古い外付けハードディスクの起動がもたついていることが原因と想定。
つまり、起動ドライブをSSDに換装してシステムの起動が高速化した反面、古い外付HDDの立ち上がりがそれに間に合っていないのではないかということ。

ちなみにファイルやフォルダの共有機能を提供しているのはWindowsのLanmanServerというサービス。
通常はシステムの起動時にLanmanServerが自動的に開始されてファイル共有が提供されているはずですが、このサービスが起動する前にHDDの準備ができていないのではないかと思われます。


早速、イベントビューアでサービスの起動状況を観察。

一見したところ、スタートアップの種類が「自動」に設定されている全てのサービスはシステムの開始から概ね20秒以内で起動を始めています。
問題のLanmanServer(「コンピューターの管理」画面では「Server」という表示名)についてみてみると、1秒から2秒の間に既に起動を始めています。

このころ問題のHDDの状態はどうかというと・・・
PCの電源投入後に自動で電源ONになったものの、BIOS画面からウィンドウズが立ち上がる辺りで一旦OFFになった後に改めて電源ON状態に。

実はこのHDDは常にこんな感じで起動していて、メーカーがWebで公開しているマニュアルにもその事が注意書きされています。つまりよく言う「仕様」ということですね。

試しに、「コンピューターの管理」画面でLanmanServer(表示名Server)を再起動してみると、共有設定が外れてしまっていた外付けHDDが元通り共有状態になりました!

コンピューターの管理画面
LanmanServer はServer と表示されている
やはりこの辺が怪しいですね。
ということで、次回はこの問題に対して行った実際の対策についてレポートしする事にします。
...

2015年3月4日水曜日

Adobe CS5 のアップデートエラー

ひと月ぐらい前にデスクトップをSSDに換装してからCS5のアップデートエラーが出るようになった。

タスクトレイにAdobe Application Manager からの通知が出るのでアップデートを開始するのだが、暫くしてダウンロードエラーで一部のアップデートに失敗した旨のメッセージが返ってくる。

再度アップデートを試すように促してくるので、何度か試したが結果は同じ。

一部のアップデートに失敗といいつつ、見た感じどの製品のアップデートもできずに終了している様子です。

早速、調べてみたところ、最新の Adobe Application Manager をインストールすることでこの問題を解決できるらしい。

ということでやってみた。

最新版Adobe Application Manager (Ver 8、Windows版) のダウンロードはここ
http://www.adobe.com/jp/applicationmanagerpatch/downloadwin.html

結果、4つのエラーを残して、その他のアップデートに関しては無事に終了。

残る4つのエラーですが、すべて同じエラーコード(U43M1D207)です。

下記はその時のエラーメッセージ

Adobe Extension Manager CS5 5.0 アップデート
このアップデートをダウンロード中にエラーが発生しました。ダウンロードを終了して、もう一度実行してください。 エラーコード : U43M1D207

Fireworks CS5 11.0.2 アップデート
このアップデートをダウンロード中にエラーが発生しました。ダウンロードを終了して、もう一度実行してください。 エラーコード : U43M1D207

Adobe Pixel Bender Toolkit 2.5 アップデート
このアップデートをダウンロード中にエラーが発生しました。ダウンロードを終了して、もう一度実行してください。 エラーコード : U43M1D207

Adobe Illustrator 15.0.2 アップデート
このアップデートをダウンロード中にエラーが発生しました。ダウンロードを終了して、もう一度実行してください。 エラーコード : U43M1D207

ADOBE|アドビ Photoshop Elements & Premiere Elements 2022 日本語版 MLP 通常版 [Win・Mac用]

価格:27,280円
(2022/3/11 23:50時点)
感想(0件)


これらのアップデートについては各々、個別にパッチをダウンロードして実行することでアップデートを完了することができました。

Adobe Extension Manager CS5 5.0 アップデート
http://www.adobe.com/exchange/em_updates/#emcs5

Fireworks CS5 11.0.2 アップデート
http://www.adobe.com/support/fireworks/downloads_updaters.html

Adobe Pixel Bender Toolkit 2.5 アップデート
http://www.adobe.com/jp/devnet/pixelbender.html

Adobe Illustrator 15.0.2 アップデート


これ以降は最新のAdobe Application Manager を使って正常に自動アップデートができているようです。

さて、既に無償サポートも終了しているCS5ですが、CCになった今は必要以上に費用が嵩みそうで、なかなかアップグレードする気になれないです。
もっとも、それほど使いこなしてない私にとって、機能面ではCS5で十分なんですが。
...

あずきふたつぶ。。

気まぐれな日記にお付き合いいただいてありがとう!