tronboneのプロフィール
- ベストアンサー数
- 1
- ベストアンサー率
- 50%
- お礼率
- 0%
- 登録日2007/12/19
- 画像処理での文字の処理について
formのtextareaから文字を受け取り、その文字を画像に書き込むプログラムを作成しています。 処理手順は、 1.[a.php]にあるtextareaに文字を入力 <textarea name="intxt" rows="10" cols="30"></textarea> (FORMのmethodはPOST) 2.submitで値を送信し、[b.php]で処理 [a.php]:print "<img border='0' src='b.php?imgfile=$imgfile&txt=$txt'>"; [b.php]:$imgfile=$_GET['imgfile'];/*画像*/ $txt=$_GET['txt']; /*入力文字*/ 文字を画像に書き込むときに、 aaa bbb という風に画像に書き込みたいのですが、処理をすると aaabbb となります。 そこで私が考えた方法は、改行コードで文字列を切り取り、【 $text=explode("\n",$txt); 】 for文で書き込むという方法でしているのですが、うまく文字列を切り取れません。 改行コードが間違っているのでしょうか? それとも、改行コードでは切り取れないのでしょうか? 検索をかけてみたり、他の質問を見てみたのですが、うまく出来ませんでした。 それと、日本語で文字列を渡すためにはどのような関数を使えばよいのでしょうか? マルチバイト文字列はrawurlencode()を噛まさねば渡すことが出来ないというのはわかったのですが、 どういう風に噛ませるのかわかりません。 いろいろと試したのですが、表示されませんでした。 他にも方法があるのでしょうか? 開発環境は、PHP5.2.5、Apache2.2、WindowsXPです。 よろしくお願いします。
- データベースへの接続
http://oshiete1.goo.ne.jp/qa3586557.htmlで作って、動いたプログラムからフォームのボタンを増やして、新しいテーブルに変えただけのので、 全体ソースは <html> <body> <?php $a_1 = $_POST["a"]; $b_1 = $_POST["b"]; $c_1 = $_POST["c"]; $d_1 = $_POST["d"]; $e_1 = $_POST["e"]; $f_1 = $_POST["f"]; $g_1 = $_POST["g"]; $h_1 = $_POST["h"]; require_once("DB.php"); $dbUser = "sample"; $dbPass = "password"; $dbHost = "localhost"; $dbName = "sampledb"; $dbType = "mysql"; $dsn = "$dbType://$dbUser:$dbPass@$dbHost/$dbName"; $conn = DB::connect($dsn); //接続にしっぱいしたらメッセージを表示して終了します。 if (DB::isError($conn)) { die($conn->getMessage()); } if($a_1 == "ない" and $b_1 == "ない" and $c_1 == "ある" and $d_1 == "ない" and $e_1== "ある"and $f_1== "ある"and $g_1== "ある "and $h_1== "ある") { $sql = <<<EOS SELECT * FROM c WHERE a IN ない AND b IN ない AND c IN ある AND d IN ない AND e IN ある AND f IN ある AND g IN ある AND h IN ある EOS; } $result = $conn->query($sql); if (DB::isError($result)) { die($result->getMessage()); } $count = $result->numRows(); print "あなたは".$count."件あります。<BR>"; if($count>0){ ?> <br> <TABLE width="450" border="1" cellspacing="0" cellpadding="8"> <TBODY> <TR><TH>番号</TH><TH>名</TH><TH>説明</TH></TR> <?php while($rs = $result->fetchRow(DB_FETCHMODE_ASSOC)) { ?> <TR><TD align="center"><?=$rs['id']?></TD> <TD><?=$rs['n']?></TD> <TD><?=$rs['s']?></TD></TR> <?php } ?> </TBODY></TABLE> <?php } $result->free(); $conn->disconnect(); ?> </BODY> </HTML> if($a_1 == "ない" and $b_1 == "ない" and $c_1 == "ある" and $d_1 == "ない" and $e_1== "ある"and $f_1== "ある"and $g_1== "ある"and $h_1== "ある") { $sql = <<<EOS SELECT * FROM c WHERE a IN ない AND b IN ない AND c IN ある AND d IN ない AND e IN ある AND f IN ある AND g IN ある AND h IN ある EOS; } DB Error: syntax errorが表示され、多分、ここの条件が間違っていると思うのですが、解決策を教えてください。 お願いします。
- 画像処理での文字の処理について
formのtextareaから文字を受け取り、その文字を画像に書き込むプログラムを作成しています。 処理手順は、 1.[a.php]にあるtextareaに文字を入力 <textarea name="intxt" rows="10" cols="30"></textarea> (FORMのmethodはPOST) 2.submitで値を送信し、[b.php]で処理 [a.php]:print "<img border='0' src='b.php?imgfile=$imgfile&txt=$txt'>"; [b.php]:$imgfile=$_GET['imgfile'];/*画像*/ $txt=$_GET['txt']; /*入力文字*/ 文字を画像に書き込むときに、 aaa bbb という風に画像に書き込みたいのですが、処理をすると aaabbb となります。 そこで私が考えた方法は、改行コードで文字列を切り取り、【 $text=explode("\n",$txt); 】 for文で書き込むという方法でしているのですが、うまく文字列を切り取れません。 改行コードが間違っているのでしょうか? それとも、改行コードでは切り取れないのでしょうか? 検索をかけてみたり、他の質問を見てみたのですが、うまく出来ませんでした。 それと、日本語で文字列を渡すためにはどのような関数を使えばよいのでしょうか? マルチバイト文字列はrawurlencode()を噛まさねば渡すことが出来ないというのはわかったのですが、 どういう風に噛ませるのかわかりません。 いろいろと試したのですが、表示されませんでした。 他にも方法があるのでしょうか? 開発環境は、PHP5.2.5、Apache2.2、WindowsXPです。 よろしくお願いします。