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

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

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

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

PHP

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

Q&A

解決済

2回答

1868閲覧

別ドメインに設置したphpファイルの中の変数を使う方法

Euri_K

総合スコア32

WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

PHP

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

0グッド

1クリップ

投稿2019/04/02 03:40

表題のとおりではあるのですが、そもそも根本的に理解が足りてないと思われるため質問させていただきます。

外部の別ドメインのサーバーに、下記の内容で変数「$photo」へ画像のURLを格納した「imgsrc.php」を作りました。
`

<?php $photo = 'http://hogehoge.com/photo.jpg'; ?>

`

それを複数のWordpressで読み込むことで画像の更新を楽にしたいと思い、

それぞれのWordpressのheader.php内で
<?php echo file_get_contents('http://hogehoge.com/imgsrc.php'); ?>

という形でphpファイルを読み込んだ後に

<?php echo '<img src="'.$photo.'" alt="hogehoge">'; ?>

として画像を出力しようとしたのですが、
srcの部分に何も挿入されず画像のリンク切れマークが出る状態です。

ページ自体がエラーを起こすわけではないので
変数の受け渡しについて私が誤って認識していると思うのですが、
こういった場合はグローバル変数としては扱われていないのでしょうか?
外部サーバーのファイルで定義した変数の中身を利用するには何が不足しているのでしょうか?

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

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

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

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

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

yoorwm

2019/04/02 03:45

勘違いされているようですが、echoで出力するだけですよ。
Euri_K

2019/04/02 03:56

ご回答いただいてありがたいのですが、どの部分をどう間違えているかがわからないのです。いただいたアドバイスの話で言えば、どの部分を勘違いしていて、何が不要で、どこにechoを追加すればいいかがわかりません…。 最終的に十個程度の変数を画像の出力用に用意しようと考えているためこのような形にしているのですが、そもそもやり方自体にも問題がある感じでしょうか?
Euri_K

2019/04/02 06:34

そもそもjson形式に変換しないとダメという回答をいただきました。その発想自体がなかったので質問そのものがおかしなことになってしまいすみません。
guest

回答2

0

ベストアンサー

http://hogehoge.com/imgsrc.php
をブラウザで開いてください。
その見た目がそのままfile_get_contentsに取り込まれます。
ですのでこの場合はimgsrc.phpに

php

1<?php 2echo 'http://hogehoge.com/imgsrc.php'; 3

としてください

2019-04-02 13:23追記
PHPの中身は共有できません。(serializeなど方法はあるけどセキュリティ的によろしくない)
なのでこの場合API化してJSON形式でやり取りするのがベストでしょう。
その場合

php

1<?php 2//送る方 3$output['headerImg'] = 'http://hogehoge.com/headerImg.jpg'; 4$output['topLink'] = 'http://hogehoge.com/top.php'; 5 6header('content-type: application/json; charset=utf-8'); 7echo json_encode($output); 8

とし

php

1<?php 2//受ける方 3 4$apiResponse = file_get_contents('http://hogehoge.com/imgsrc.php'); 5$input = json_decode($apiResponse,true); 6echo $input['topLink'];

で試してみてください。

投稿2019/04/02 03:51

編集2019/04/02 04:30
namda

総合スコア705

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

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

Euri_K

2019/04/02 04:08

上記を試したところ、テキストとしてhttp://hogehoge.com/imgsrc.phpとだけ表示され、中で定義されている変数は特に出力されていない状態で反映されました。 最終的に10数個程度の変数を持ってくる必要があるのですが、imgsrc.phpの中で定義した変数は、他のファイルには持ち込めないのでしょうか?
namda

2019/04/02 04:32

この場合JSON形式でやり取りするのがベストです。 具体例は回答に反映しました。
Euri_K

2019/04/02 04:48

詳細な手段まで書いていただきありがとうございます。上記の内容をもとに、なんとか画像が出力されるとこまでこぎつけました。外部のJavascriptを読むみたいに軽い気持ちで分離しようと思ったのですが、こういう手法になるのですね…。json形式については全く知識がないので、追って勉強したいと思います。とても助かりました!
guest

0

php

1<?php echo file_get_contents('http://hogehoge.com/imgsrc.php'); ?>

これは、http://hogehoge.com/imgsrc.php のソースコードの内容ではなく、http://hogehoge.com/imgsrc.php実行結果echo する、ということです。
見たところ http://hogehoge.com/imgsrc.php は何も出力していないようなので、

php

1<?php echo ''; ?>

と似たようなことが行われる、ということになります。
つまり何も出力されません。

投稿2019/04/02 03:53

alg

総合スコア2019

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

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

Euri_K

2019/04/02 04:11

状況としては理解しました。ありがとうございます。この場合、imgsrc.phpの中で定義している変数の中身を利用したい場合はどのように書くのが適切なのでしょうか?Javascriptの外部ファイルのように、とりあえず読み込めばソースにまるごと追加されると思っていたので、その辺りがよくわかっていません。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.49%

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

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

質問する

関連した質問