PHP+smartyを使って開発をしております。
【image.php】
イメージを出力するPHP
【index.php】
処理PHP
【index.tpl】
画面のテンプレート
3つのファイルがあり、
(1)
index.phpにアクセスすると、
index.tplのテンプレートが呼び出されるようになっています。
index.tplの中で、<img src="image.php">とすると
image.phpで出力した画像がindex.tplの中に表示されます。
(2)
index.phpにアクセスすると、
index.tplのテンプレートが呼び出されるようになっています。
index.tplの中で、<img src="{imageChange}">とすると
image.phpで出力した画像がindex.tplの中に表示されずバイナリデータが表示されてしまいます。
index.phpの中で関数が使用出来るように
$smarty->register_function( "imageChange", "imageChange" );
と書いてあります。
(2)でやりたい理由として、
(1)でやるとパラメータを渡す際に、
?aaa=1&bbb=2&ccc=9&ddd=4.....としなければいけないのと、
処理毎にPHPファイルを分けないといけない為です。
何とか関数を使用してテンプレートで呼び出す方法はないでしょうか。
他にいい方法がありましたら他の方法でも構いません。
ご教授お願い致します。
A 回答 (3件)
- 最新から表示
- 回答順に表示
No.3
- 回答日時:
たとえば
## MyImage.php
class MyImage {
. . function html($src, $options = array()) {
. . . . return '<img src="image.php?params" />';
. . }
}
## image.php
readfile('aaa.jpg');
## index.php
$smarty->assign('image', new MyImage());
## index.tpl
{$image->html('aaa.jpg', array('width'=>100, 'height'=>50, 'type'=>'gif'))}
なんか中途半端だな..
No.2
- 回答日時:
imgタグの中のsrcという属性は、画像の位置を指す属性であって、画像データをさす属性ではありませんから、
この属性の中に画像データを埋め込んでも、それを表示することは不可能です。
1つのデータファイルで画像もhtmlソースもデータとして処理し表示するのはほぼ不可能です。
なので1以外の手段は使えない。
この回答への補足
ご回答ありがとうございます。
(1)に書いた場合うまくいくのは、
image.phpが画像ファイルとして認識されているというからでしょうか?
処理的には同じように見えるのですが、
確かにパス指定とそうでないものなので違いますね。
何とかうまく出来ないものかと思いましたが無理そうなので
(1)の方法でやろうかと思います。
ありがとうございました。
No.1
- 回答日時:
>バイナリデータが表示されてしまいます
のは imageChange function がちゃんと書けてないだけですよね?
URLを生成した文字列の変数や
URLを生成するメソッドをもったオブジェクトを
Smartyに渡してやるのはどうでしょうか。
PS. ?aaa=1&bbb=2&ccc=9&ddd=4 は具体的にどんな値なんでしょうか?
ご回答ありがとうございます。
>>バイナリデータが表示されてしまいます
>のは imageChange function がちゃんと書けてないだけですよね?
imageChangeを関数にしないでimageChangeの処理と全く同様のPHPを
<img src="imageChange.php">のように呼び出すと問題なく表示されます。
>PS. ?aaa=1&bbb=2&ccc=9&ddd=4 は具体的にどんな値なんでしょうか?
やりたい事としては、aaa.jpgというイメージファイルがあり、
<imageChange src="aaa.jpg" width="100" height="50" type="gif">
と記述すると、画像を幅100、高さ50、画像をgifに変換したものを
表示したいと思っております。
?aaa=1&bbb=2&ccc=9&ddd=4 は具体的には
?src=aaa.jpg&width=100&height=50&type=gifみたいな感じになります。
>URLを生成した文字列の変数や
>URLを生成するメソッドをもったオブジェクトを
>Smartyに渡してやるのはどうでしょうか。
あまり知識が無い為よくわからないのですが、
具体的にどういったことになるのでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- HTML・CSS CSSが効かずどのように指定すれば良いか分からないのでアドバイスお願い致します 2 2023/06/07 12:25
- JavaScript clear機能を失わずにファイルアップロード機能を作成したい 3 2023/06/10 16:12
- その他(プログラミング・Web制作) .htaccessファイルの修正がこれで問題ないかどうか 1 2022/04/21 08:42
- JavaScript 画像の表示位置 3 2022/12/23 08:25
- JavaScript javascriptで変数を組み込みたい 2 2023/01/13 09:52
- JavaScript jQueryでのドラッグアンドドロップについて 1 2022/07/30 09:10
- その他(プログラミング・Web制作) pythonのグローバル変数 2 2022/11/25 18:02
- HTML・CSS インクルードした要素がヘッダーにかぶってしまう 3 2022/09/13 17:35
- PHP 共通の処理をまとめる方法がわからないのでアドバイスお願いします。 1 2022/12/19 20:20
- PHP アップロード画像数でCSSを分けることに成功したのですが、画像の横に文字を並べることが出来ません。 3 2023/07/28 17:16
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
画像をDBに保存し、表示させ...
-
ob_end_clean と ob_clean の違...
-
PHPSpreadsheetによる書き出し...
-
CSV出力にHTMLが入ってしまう
-
PHPでダブルバッファリング(画...
-
imgタグでのphpの呼び出しについて
-
PHPで五角形、または多角形のグ...
-
リダイレクト元のURLの取得方法...
-
PHPにおける時間計算、時間足し...
-
onedrive にexcelファイルをア...
-
PEARのmimeDecodeでメール解析...
-
拡張子php画像をjpg画像等に変...
-
フォームで戻った際に入力済み...
-
2つの画像ファイルが異なるファ...
-
PHP フォルダ名やファイル名に0...
-
form actionで二つ送信先を指定...
-
さくらサーバーにて、phpからメ...
-
mysql複数レコードをまとめて削...
-
WordPressでテーマのヘッダー画...
-
日本語ファイル名のアップロー...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
CSV出力にHTMLが入ってしまう
-
PHPSpreadsheetによる書き出し...
-
PHPにおける時間計算、時間足し...
-
PHPで取得したHTML内のdiv要素...
-
TCPDFについて
-
エクスプローラーでフォルダを...
-
¥マークを出力したいがバック...
-
ob_end_clean と ob_clean の違...
-
リダイレクト元のURLの取得方法...
-
PHPで`headers already sent`と...
-
PerlからPHPへ移行したときの注...
-
PHPでデータベースからデータを...
-
phpでの画像表示
-
image関数でMS Pゴシックを使い...
-
smarty foreach 半角スペース
-
webroot以外の画像の表示
-
phpにcssを適応させたい...
-
phpexcelにてsubmitボタンを押...
-
文字列を段落で分ける方法を教...
-
Spreadsheet_Excel_Writerのイ...
おすすめ情報