PHPのアニュアル17章をみてx.phpの引数を引き渡す方法がわからない

このQ&Aのポイント
  • PHPのアニュアル17章を読んで、x.phpの引数を引き渡す方法がわからないです。
  • x.phpには文字列変数を引数として受け取る処理があり、その中で画像を生成しています。
  • 現在、$string=implode($argv," ");の部分を$string="text";に変更すると画像が表示されますが、引数を正しく渡す方法がわかりません。何をすればいいですか?
回答を見る
  • ベストアンサー

PHPのアニュアル17章をみて

x.phpを <?php Header("Content-type:image/png"); $string=implode($argv," ");//変更場所 $im=imageCreateFromPng("x.png"); $orange=ImageColorAllocate($im,220,210, 60); $px=(imagesx($im)-7.5*strlen($string))/2; ImageString($im,3,$px,9,$string,$orange); ImagePng($im); ImageDestroy($im); ?> としx.htmlを <html><body> <img src="x.php?text"/> </body></html> とし画像x.pngとx.htmlとx.phpを /var/www/html/において 外部のPCからブラウザでx.htmlを呼び出したのですが絵が出ません $string=implode($argv," ");//変更場所 を $string="text"; に変更すれば絵が出ます このままでは引数を引き渡すことができません どうしたらいいのでしょうか?

  • keyguy
  • お礼率68% (895/1314)
  • PHP
  • 回答数1
  • ありがとう数1

質問者が選んだベストアンサー

  • ベストアンサー
  • the845t
  • ベストアンサー率33% (246/743)
回答No.1

PHPマニュアルの17章はCookieですが? あとXLiにあるイメージ関数の解説によれば、 <?php header("Content-type: image/png"); $string = $_GET['text']; $im = imagecreatefrompng("images/button1.png"); $orange = imagecolorallocate($im, 220, 210, 60); $px = (imagesx($im) - 7.5 * strlen($string)) / 2; imagestring($im, 3, $px, 9, $string, $orange); imagepng($im); imagedestroy($im); ?> です。 何を参考にされているのでしょう? http://php.planetmirror.com/manual/ja/ref.image.php

参考URL:
http://php.planetmirror.com/manual/ja/ref.image.php
keyguy
質問者

お礼

ありがとうございます x.php: <?php Header("Content-type:image/png"); $string=$_GET['text']; $im=imageCreateFromPng("x.png"); $orange=ImageColorAllocate($im,220,210, 60); ImageString($im,3,0,9,$string,$orange); ImagePng($im); ImageDestroy($im); ?> x.html: <html><body> <img src="x.php?text=abcdefghijklmn"/> </body></html> とすれば文字が出ました どうもマニュアルは手抜きが多いようですね

keyguy
質問者

補足

ありがとうございます 参考にしたマニュアルは http://www.kagoya.net/php/manual/features.images.html です マニュアルも章がずれているものがいくつかあるようで内容が同じなので文字が大きくて見やすいものを選びました 回答のとおりしてみると絵が出ますが'text'が表示されません また$GLOBALSを見てみると$_GETは空です 'text'を表示するにはどうしたらいいのでしょうか?

関連するQ&A

  • PHPで画像縮小

    質問します。自分は今PHPで画像の縮小をしようと思っています。 しかしうまくいきません。 コードは <htm> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>画像縮小</title> </head> <body> <?php $size = getimagesize("dl_button.png"); $image_in = imagecreatefrompng("dl_button.png"); $image_out = imagecreate( 90, 90 ); imagecopyresized( $image_out, $image_in, 0, 0, 0, 0, 90, 90, $size[ 0 ], $size[ 1 ] ); imagepng($image_out,"small.png"); imagedestroy( $image_in ); imagedestroy( $image_out ); ?> <img src = "dl_button.png" border = "0"> <img src = "small.png" border = "0"> </body> </html> となっています。 今のままだとエラーが出て、 「small.pngが見あたらない」と言われてしまいます。 ディレクトリは index.phpとdl_button.pngが同じ場所にあります。

    • ベストアンサー
    • PHP
  • PHP+GDについて

    PHPでGDを用いてPNGファイルを生成するスクリプトを作成したのですが、うまく動作しません。 <?php $filename = "G".date("Ymdhis").".png"; $im = imagecreate(550, 250) or die ("画像の作成に失敗しました"); $bg = imagecolorallocate($im, 255,255,255); $trans = imagecolortransparent($im, $bg); imageline($im, 60,0,60,140, $trans); $filedir="graph_img/".$filename; imagepng ($im,$filedir); imagedestroy($im); echo "作成完了!"; ?> このスクリプトを実行すると、PNGファイルは生成されるんですが、ファイルサイズが0で、スクリプトの実行がそこで中断されてしまいます。 何かよい解決方法はないでしょうか?よろしくお願いいたします。

    • 締切済み
    • PHP
  • PHPについて質問です。

    PHPについて質問です。 @@@@@@@@@pic.php@@@@@@@@@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>画像作成⇒保存</title> </head> <body> <?php //0から32767までの間で乱数を発生させる //乱数の最小値と最大値を定義 $number_min = 0; $number_max = 32767; //乱数ジェネレータを初期化 srand((double)microtime()*100000); //乱数を発生させる $number_value = rand($number_min, $number_max); // 空の画像を作成し、テキストを追加します $im = imagecreatetruecolor(120, 20); $text_color = imagecolorallocate($im, 233, 14, 91); imagestring($im, 1, 5, 5, 'A Simple Text String', $text_color); // 画像を 'simpletext.jpg' として保存します imagejpeg($im, $number_value.'simpletext.jpg'); // メモリを開放します imagedestroy($im); ?> </body> </html> @@@@@@@@@@@@@@@@@@@@@@@@@@@ 上記のPHPを、・・・ テキストボックスに入力したりして文字列を取得したり、画像の大きさをリストメニューを設定して、作成ボタンを押すと、上記のPHPと同じように出力できるようにするにはどうすればいいですか?

    • ベストアンサー
    • PHP
  • 透過合成した画像からの縮小コピーで黒塗りに!

    PHPの処理によって透過処理した画像と画像を合成して出来た画像(test.png)を単純に小さいサイズのPNG画像として コピーしたいのですが、黒塗りになってしまい、調べながら思考錯誤してみましたができません。 分かる方、どうかお知恵を貸して下さい。 下記は、黒塗りになってしまうソースです。 <?php $img = 'http://www.angelito.biz/test.png' ; // 読み込む画像のアドレス $size = 100 ; // リサイズするサイズ (大きい方の幅をこれに合わせる) if (!($irc = @imagecreatefromjpeg($img))) // jpeg として読み込んでみる if (!($irc = @imagecreatefrompng($img))) // png として読み込んでみる $irc = @imagecreatefromgif($img) ; // gif として読み込んでみる if (!$irc) { // 画像が正しく読み込めなかったときの処理 echo '×' ; exit ; } if (imagesx($irc) > imagesy($irc)) { $rrc = imagecreate($size, $size * imagesy($irc) / imagesx($irc)) ; } else { $rrc = imagecreate($size * imagesx($irc) / imagesy($irc), $size) ; } imagecopyresampled($rrc, $irc, 0, 0, 0, 0, imagesx($rrc), imagesy($rrc), imagesx($irc), imagesy($irc)) ; // jpgeg 画像として出力 header('Content-type: image/png') ; imagepng($rrc) ; ?> ■環境 windows vista xampp/apache 2.2.4 PHP Version 5.2.3

    • ベストアンサー
    • PHP
  • PHPによる画像処理

    PHPを使ってJPG形式の画像をPNG形式に変換しようとしていますが、画像が添付のスクリーンショットのようなものになってしまいます。 以下がPHPスクリプトです。 ちゃんとPNG形式の画像を表示させるにはどうしたらよいのでしょうか。 詳しい方、どうかご教授ください。お願いします。 <?php $fpath='pictures/DSCN1458.JPG'; $scimg=imagecreatefromjpeg(realpath($fpath)); $cpimg=imagecreatetruecolor(200,150); $cl=imagecolorallocate($cpimg,255,0,0); imagecopyresized($cpimg, $scimg, 0,0,0,0,imagesx($cpimg),imagesy($cpimg), imagesx($scimg),imagesy($scimg)); header('Content-type', 'image/png'); imagepng($cpimg); imagedestroy($scimg); imagedestroy($cpimg); ?> <html> <head><title>image transform</title></head> <body > </body> </html>

    • ベストアンサー
    • PHP
  • PHPについて教えてください

    下記のindex.htmlとcheck.phpを別々にURLに入力すると正しく表示されるのですが 横の送信ボタンを押したときにcheck.phpにジャンプしてくれません どうしてでしょうか? index.html <DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>PHP基礎</title> </head> <body> <from method="post" action="check.php"> <input name="nickname" type="text" style="width:100px"> <input type="submit" value="送信"> </from> </body> </html> check.php <DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>PHP基礎</title> </head> <body> <?php print'ようこそ'; ?> </body> </html>

    • 締切済み
    • PHP
  • イメージ関数の使い方について

    ローカルテスト環境で、簡易画像掲示板を自分で作ってみたいと思い、まずimage関数がどういったものかphpマニュアルで見てました。 imagecreatetruecolor()を調べていて、実際どんなものか動かしてみようと思い、マニュアルのサンプルコードのメッセージ部分だけ変えてやってみました。以下がコードの内容です。 <?php header ("Content-type: image/png"); $im = @imagecreatetruecolor(120, 20) or die("新しいイメージストリームを作成できませんでした。"); $text_color = imagecolorallocate($im, 233, 14, 91); imagestring($im, 1, 5, 5, "ここが表示されるテキスト", $text_color); imagepng($im); imagedestroy($im); ?> しかし、これを実行してみても画像が×印になって表示されません。 imagecreatetruecolor()とかimagepng()とかちゃんと動いているのかと思い、自分なりに確認してみようと、コードを少し変えました。 まずimagecreatetruecolor()は成功時に画像リソースIDを返すと書いてあったのでprint文で出力して確認できないかと思いやってみました(返される値がarrayとかstoringじゃないので、出力できないのではと思いましたがとにかくやってみました。) つぎにimagepng()は失敗した場合に FALSE を返すって書いてあったので、失敗したら"false"と出力させてみようと思いました。 以下がそのコードです。 <?php header ("Content-type: image/png"); $im = @imagecreatetruecolor(120, 20) or die("新しいイメージストリームを作成できませんでした。"); print($im); $flag=imagepng($im); if($flag==false){ print("false");} imagedestroy($im); ?> これを試してみましたが、出力結果は同じでした。 なんか反応があるかもとおもい、一応imagecreatetruecolor(120, 20)の前の@マークをはずしてみたりもしましたが別にエラーが表示されるわけでもなく、ただ画像が表示されないだけです。 phpinfoのgdのところは、 GD Support enabled GD Version bundled (2.0.34 compatible) FreeType Support enabled FreeType Linkage with freetype FreeType Version 2.1.9 T1Lib Support enabled GIF Read Support enabled GIF Create Support enabled JPG Support enabled PNG Support enabled WBMP Support enabled XBM Support enabled になっています。 php.iniのmemory_limit は32Mになってます。memory_limitを-1にしたらちゃんと表示されるかもと思ったのですがやはり×印のままでした。 C:\xampp\php\extの中にphp_gd2.dllがあるのも一応確認しました。 動作環境はwindows vistaにxampp1.6.5で、phpのバージョンは5.2.5です。マニュアルを見た限りでは、windowsではphp.iniのphp_gd2.dllのコメントを外すだけでちゃんと動作すると思っていたのですが、他に抜けていることがありましたらアドバイスをお願いします。

    • ベストアンサー
    • PHP
  • PHP GDでテキストを含む最小の画像を作りたい

    PHP GDでテキストを描画し、画像の幅・高さがそれを含む最小になるように したいのです。 まずimageftbboxでバウンディングボックスを取得し、そのサイズにすればいいかと思い 以下のコードを書いてみましたが、うまくいきません。 <?php $fontSize = 20; $angle = 0; $fontFile = './msgothic.ttc'; // MSゴシック for ($code = ord('A'); $code <= ord('Z'); $code++) { $text = chr($code); $bbox = imageftbbox($fontSize, $angle, $fontFile, $text); $w = $bbox[2] - $bbox[0]; $h = $bbox[3] - $bbox[7]; var_dump($bbox); echo "w = $w h = $h\n"; $im = imagecreatetruecolor($w, $h); $backcolor = imagecolorallocate($im, 0x00, 0x00, 0x00); $forecolor = imagecolorallocate($im, 0xff, 0xff, 0xff); imagefill($im, 0, 0, $backcolor); $x = 0; $y = -$bbox[7]; echo "x = $x y = $y\n"; imagefttext($im, $fontSize, $angle, $x, $y, $forecolor, $fontFile, $text); imagegif($im, $text .'.gif'); } この場合、Iの右半分が切れてしまいます。 $xを調整すればいいのかと思い、$x = $bbox[0]などとしてみましたが、 どうやっても必ずどれかの文字の一部が切れてしまいました。 これを正しく描画するにはどのようにすればいいでしょうか?

    • 締切済み
    • PHP
  • php パラメータ

    新規登録として登録できたら別ウインドウに遷移せずそのままtopに戻し戻ってきたらデータが登録されているようにしたいですがなかなか出来ません 調べたら、exec関数を使えばできるとのことですが $return_data = exec("/usr/local/bin/php ./top.php param1 = 1 m2 = 2"); こんな例がありましたが自分の力ではこのプログラムのどこを修正すればtop.phpに返ってくるかわかりません 下記は新規登録を行うための入力フォームです 登録するボタンを押したらそのままtopに移動したいのですがいまはinsert.phpに飛んでしまいます regist.php <html> <head><title>新規登録</title></head> <body> <blockquote> <form action = "insert.php" method = "POST"> <br><br>登録画面<br><br> すべての項目入力してください<br> 番号<input type="number" name = "ID"> (一覧画面にない番号を入力してください) <br> <br>氏名<input type="text" size = "50" name = "NAME"><br><br> 住所<input type="text" size = "130" name = "ADDR"><br><br> <a href="http://localhost/top.php"> <input type = "submit" value = "登録する" style ="font-size:20px; width: 100px; height: 40px"></A> <a href="http://localhost/top.php"> <input type = "button" value = "一覧に戻る" style ="font-size:20px; width: 100px; height: 40px"></A> </body> </blockquote> </form> </body> </html> 下記はinsert.phpです <!--insert.php 登録完了--> <html> <body> <blockquote> <?php $con=mysqli_connect("localhost","root","admin","db_test"); // Check connection if (mysqli_connect_errno()) { echo "Failed to connect to MySQL: " . mysqli_connect_error(); } if ($_POST['ID'] != '' && $_POST['NAME'] != '' && $_POST['ADDR'] != '') { $id = mysqli_real_escape_string($con, $_POST['ID']); $name = mysqli_real_escape_string($con, $_POST['NAME']); $addr = mysqli_real_escape_string($con, $_POST['ADDR']); $sql="INSERT INTO tbl_test (番号, 氏名, 住所) VALUES ('$id','$name','$addr')"; if (!mysqli_query($con,$sql)) { die('Error: ' . mysqli_error($con)); } echo "登録完了しました"; } else { echo "<br><br>データが未入力の箇所があります。すべてデータを入力してください"; } mysqli_close($con); $return_data = exec("/usr/local/bin/php ./top.php param1 = 1 m2 = 2"); ?> <br><br><br> <a href="http://localhost/regist.php"> <INPUT TYPE = "button" VALUE = "登録画面に戻る" style ="font-size:20px; WIDTH: 140px; HEIGHT: 40px"></A> <br><br><br> <A HREF="http://localhost/top.php"> <INPUT TYPE = "button" VALUE = "一覧に戻る" style ="font-size:20px; WIDTH: 140px; HEIGHT: 40px"></A> </blockquote> </body> </html> どこを直せばいいですか? 本格的に直さないとできないですか?

    • ベストアンサー
    • PHP
  • 文字化け

    phpソースだけなら正しく表示できるのですが、 htmlソースを加えるとphpソースの部分が文字化けし、画像が表示できません。どうしてなのでしょうか? 画像を扱わないプログラムは、文字化けしないのですが、GDで画像を扱うと文字化けしてしまいます。 文字化けする↓ <html><head><title>sample</title></head> <?php $width=$_GET{'wid'}; $height=$_GET{'hei'}; $red=$_GET{'red'};$green=$_GET{'gre'};$blue=$_GET{'blu'}; $text=$_GET{'tex'};$size=$_GET{'siz'}; $red1=$_GET{'red1'};$green1=$_GET{'gre1'};$blue1=$_GET{'blu1'}; $angle=$_GET{'ang'};$x1=$_GET{'x1'};$y1=$_GET{'y1'}; header("Content-type: image/jpeg"); $im = imagecreate($width,$height); $bground = imagecolorallocate($im, $red,$green,$blue); $text_c = imagecolorallocate($im,$red1,$green1,$blue1); imagettftext($im, $size, -$angle,$x1,$y1, $text_c,"Century",$text); imagepng($im); ?> </form></body></html>

    • ベストアンサー
    • PHP

専門家に質問してみよう