LoginSignup
0
0

More than 3 years have passed since last update.

syntax errorの正体は不可視文字だった

Posted at

よくあることなのだろうか?
厄介なトラブルなのでメモっとく。

WordPressでテンプレートを編集していた。
画像が存在する場合はそれを表示して、存在しない場合はダミー画像を表示する。
下記のようなコードを書いた:

// プログラム画像
$img_url = '';
$upload_dir = wp_upload_dir();
$file_path = $upload_dir['basedir'] ."/images/{$pg_number}.jpg";

if ( file_exists( $file_path ) ) {
      $img_url = home_url( "/images/{$pg_number}.jpg" );
} else {
      $img_url = home_url( "/images/dummy.jpg" );
}

特段難しいことではないし、コードもシンプル。
だが、なぜかfile_existsの行でsyntax errorになる。

file_exists Fatal error: syntax error, unexpected '' (T_STRING), expecting ')'

file_existsに渡っている値がおかしいのか、そもそも使い方が間違っているのか、など小一時間Webを彷徨ってたどり着いたのは、不可視文字によるいたずら(?)だった。

file_existsの行をカーソル移動していくと、$file_pathの後の閉じ括弧の手前で、カーソルが足踏みする…二度点滅する。Codaで不可視文字を表示しても何も表示されない(画像ほぼ中央)。
スクリーンショット 2019-07-18 19.13.03.png

この時点で不可視文字のせいだと気づいたので、Shift+矢印キーで選択&コピーし、Macの文字ビューアにペーストしてみると
スクリーンショット 2019-07-18 19.04.45.png

OBJECT REPLACEMENT CHARACTER
Unicode: U+FFFC, UTF-8: EF BF BC

https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1240887022
…日本語だと「〓」みたいなものらしい。表示はできないが、そこに文字はある。

どこかからコピペした記憶もないのだが、どこで混じってしまったのだろう。。。
不可視文字による不具合は過去何度か経験しているが、「不可視文字を表示」しても見えないやつに遭遇したのは初めてだ。
厄介なのは、手元のローカル環境ではとくに不具合は出なかったのに、サーバにアップしたらsyntax error発生。
むしろそれがヒントだったのか?

カーソル合わせて、deleteで解決。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0