質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

解決済

2回答

4845閲覧

原因不明のSyntaxエラーを解決したい。

退会済みユーザー

退会済みユーザー

総合スコア0

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

1グッド

0クリップ

投稿2016/01/13 15:05

編集2016/01/14 02:29

よろしくお願いします。

1週間ほど前から同じSyntaxエラーで悩んでいます。

php

1<?php 2// 格納変数 3$functions_php = null; 4 5$functions_php = " 6<?php 7/********** ウィジェットエリア ***************/ 8// サイドバーのウィジェット 9register_sidebar( array( 10 'name' => __( 'Side Widget' ), 11 'id' => 'side-widget', 12 'before_widget' => '<li class="; $functions_php .= '"widget-container"'; $functions_php .= ">', 13 'after_widget' => '</li>', 14 'before_title' => '<h3>', 15 'after_title' => '</h3>', 16) ); 17 18// フッターエリアのウィジェット 19register_sidebar( array( 20 'name' => __( 'Footer Widget' ), 21 'id' => 'footer-widget', 22 'before_widget' => '<div class="; $functions_php .= '"widget-area"'; $functions_php .= "><ul><li class="; $functions_php .= '"widget-container"'; $functions_php .= ">', 23 'after_widget' => '</li></ul></div>', 24 'before_title' => '<h3>', 25 'after_title' => '</h3>', 26) ); 27 28/**************************************/ 29 30// アイキャッチ画像 31add_theme_support( 'post-thumbnails' ); 32set_post_thumbnail_size(220, 165, true ); // 幅 220px、高さ 165px、切り抜きモード 33 34// カスタムナビゲーションメニュー 35add_theme_support('menus'); 36 37"; 38 39if(isset($layout['main_visual'])){ 40 41 $functions_php .= " 42 // ヘッダー画像 43 $args = array( 44 'width' => 1100, 45 'height' => auto, 46 'header-text' => true, 47 'default-image' => get_template_directory_uri() . '/images/"; $functions_php .= $layout["main_visual"]; $functions_php .= "', 48 'uploads' => true, 49 ); 50 add_theme_support( 'custoom-header',$args ); 51 "; 52 53} // 39行目のifの閉じ 54 55$functions_php .= " ?>"; 56?>

このコードで、

Parse error: syntax error, unexpected '$functions_php' (T_VARIABLE) in C:\phpdocs\nonprothemes\functions_temp.php on line 55

といったエラーが出ます。
画面は背景真っ白にエラー文のみです。

55行目を消してみると、本来の背景に、

Notice: Use of undefined constant - assumed ' ' in C:\phpdocs\nonprothemes\functions_temp.php on line 56

というエラー文が出ます。

いろいろ試した結果、if(isset($layout['main_visual'])){と}を消した場合、

Notice: Undefined variable: args in C:\phpdocs\nonprothemes\functions_temp.php on line 47

というエラー文が出ます。

$layout['main_visual']の中身は存在していても空でも結果は上記の通りのエラーが出力されます。

どこに間違いがあるのでしょうか?
ご指摘のほどよろしくお願いします。

追記:編集後のコードを記載

php

1<?php 2// 格納変数 3$functions_php = null; 4 5$functions_php = " 6 7/********** ウィジェットエリア ***************/ 8// サイドバーのウィジェット 9register_sidebar( array( 10 'name' => __( 'Side Widget' ), 11 'id' => 'side-widget', 12 'before_widget' => '<li class="; $functions_php .= 'widget-container"'; $functions_php .= ">', 13 'after_widget' => '</li>', 14 'before_title' => '<h3>', 15 'after_title' => '</h3>', 16) ); 17 18// フッターエリアのウィジェット 19register_sidebar( array( 20 'name' => __( 'Footer Widget' ), 21 'id' => 'footer-widget', 22 'before_widget' => '<div class="; $functions_php .= 'widget-area"'; $functions_php .= "><ul><li class="; $functions_php .= 'widget-container"'; $functions_php .= ">', 23 'after_widget' => '</li></ul></div>', 24 'before_title' => '<h3>', 25 'after_title' => '</h3>', 26) ); 27 28/**************************************/ 29 30// アイキャッチ画像 31add_theme_support( 'post-thumbnails' ); 32set_post_thumbnail_size(220, 165, true ); // 幅 220px、高さ 165px、切り抜きモード 33 34// カスタムナビゲーションメニュー 35add_theme_support('menus'); 36 37"; 38 39if(isset($layout['main_visual'])){ 40 41 $functions_php .= " 42 // ヘッダー画像 43 $"; $functions_php .= "args = array( 44 'width' => 1100, 45 'height' => auto, 46 'header-text' => true, 47 'default-image' => get_template_directory_uri() . '/images/"; 48 $functions_php .= $layout["main_visual"]; $functions_php .= "', 49 'uploads' => true, 50 ); 51 add_theme_support( 'custoom-header',$"; $functions_php .= "args ); 52 "; 53 54} // 39行目のifの閉じ 55 56?>
ikuwow👍を押しています

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

上記のコードを単体で動かしてもエラーが出るのですよね?
こちらの環境ではParse errorを再現できませんでした。

55行目の$functions_php .= " ?>";を削除してParse errorを解消することができるのなら、WordPressのfunctions.phpのような純粋なPHPファイルに終了タグ(?>)は不要なので、55行目を削除して問題ありません。

"Notice: Undefined variable: args .."のエラーは、ダブルクォーテーションの文字列中に"$args"と記述しているのが原因です。
変数と解釈されないよう、文字列の外に出すなりドル記号をエスケープするなりしましょう(2箇所)。

投稿2016/01/13 21:47

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2016/01/14 02:36

回答ありがとうございます。 単体でもエラーが出ます。 エスケープをしたかったのですが、上手く出来なかった(?)ので質問欄に新しく追記したソースコードのようにしました。 単にバックスラッシュを入れるだけではダメなのでしょうか? 問題は解決しました。 ありがとうございました。
guest

0

変数の中に関数を入れるような書き方(ラムダ式)の記述ではないと思いますので、単純に文法のミスだと思いますが、ソースを読んでみましたが、$functions_phpに、出力を詰め込んで、どこかで利用したいということですか?

register_sidebarは、WPの関数だと思いますが、これは、戻り値はなく標準出力です。

変数に値を格納する場合は、戻り値があるものでなければいけません。
現状の記載方法をしても、register_sidebarにて出力される内容が、変数には入りません。

register_sidebarなどの結果を出力したいのであれば、PHPファイルを別で用意し、それをまとめたPHPファイルを、includeなどをするようにして出力させるのがよいかと思います。

投稿2016/01/13 15:59

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2016/01/13 16:13

回答ありがとうございます。 別のファイルで include "functions_temp.php"; //ファイル名格納 $file_name = 'mysite/functions.php'; //ファイルが存在していたら上書き if(file_exists($file_name)) { $fp = fopen("mysite/functions.php","w"); flock($fp,LOCK_EX); fputs($fp,$functions_php); flock($fp,LOCK_UN); fclose($fp); } といったことをしています。 質問に記述したコードはfunctions_temp.phpの中身であり、 $functions_phpの中身はfunction.phpのコードとして使用したいのです。 register_sidebarに関しては正常に動いています。 if(isset...)以降を追加した場合のみエラーが出てしまうのですが、register_sidebarの記述の方にも影響を及ぼしているのでしょうか?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問