【PHP】質問スレッドpart19【php】
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
04/07/16 07:12ID:KvHeypq/・新規質問の方は上げてください。age進行でお願いします。
・質問する際には環境も明記。
・正しい日本語で分かりやすく。
・レスがつかないからって逆切れする厨お断り。
・解決しなくてもこたえてもらったら礼を。
■本家
http://www.php.net/
■日本 PHP ユーザ会
http://www.php.gr.jp/
■PHP マニュアル
http://www.php.net/manual/ja/
■PEAR マニュアル
http://pear.php.net/manual/ja/
過去スレ, 関連スレ等>>2-4
抜けているものがあったら補足願います
0696Imo ◆.jC7ANgFY.
04/08/02 16:49ID:???$fp = fopen($logfile, "w");
$message = file($logfile);
ここの部分がおかしいですよ。
0697692
04/08/02 17:03ID:???#記事削除
if ($action=="記事削除"){
$message = file($logfile);
fclose(fopen("$logfile", 'w'));
if($max <= count($message)){
$num = $max - 1;
}else{
$num = count($message);
}
for($i = 0; $i < $num; $i++){
print "1 $no2 2 $number 3 $inpass 4 $pass2";
list($no2,$name2,$mail2,$subject2,$comment2,$time2,$host2,$color2,$pass2) = split( ",", $message[$i]);
if ($number==$no2 && $inpass==$pass2){
}else{
$fp = fopen($logfile, "w");
rewind($fp);
fputs($fp, $message[$i]);
fclose($fp);
}
}
}
にしたのですが、記事が消えません;;
パスあってるのに〜;;
0698Imo ◆.jC7ANgFY.
04/08/02 17:03ID:???ファイルを開いているときの0Byteにする場合はftruncate関数を使います。
ファイルを開いていない場合は'w'モードで開くだけで0Byteになります。
'w'モードで開いた時点でファイルは0Byteになります。
その後にファイルを読み込むと0Byteの文字列が返されることになります。
0699Imo ◆.jC7ANgFY.
04/08/02 17:08ID:???私がふとそのまま書いたらこんな感じになります。
とはいってもこれを直接使うといろいろ面倒なので
このソースを見て何かを得てみてください。
あくまで参考までに、、、、
$fn = fopen($logfile, 'r+');
if ($fn and flock($fn, LOCK_EX)) {
$data = explode("\n", trim(file_get_contents($logfile)));
$data = array_slice($data, 0, $max);
$hit = preg_grep("/^$number,.*,$inpass\$/", $data);
if (count($hit)) {
$hitnum = array_keys($hit);
unset($data[$hitnum[0]]);
ftruncate($fn, 0); rewind($fn);
fwrite($fn, implode("\n", $data));
} else {
echo '該当する記事がないかパスワードが違います';
}
} else {
echo 'ファイルが開けなかったかロック失敗';
}
@fclose($fn);
0700697
04/08/02 17:10ID:???||
( )
∪ ∪
∪∪
0701Imo ◆.jC7ANgFY.
04/08/02 17:16ID:???あえてあなたの書いたコードを修正するならばこう。
でもファイルロック処理とかしていないから込み合う
サイトではデーターが消えたりします。
// 記事削除
if ($action=="記事削除"){
$message = file($logfile);
$fp = fopen($logfile, 'w');
if($max <= count($message)){
$num = $max - 1;
}else{
$num = count($message);
}
for($i = 0; $i < $num; $i++){
// print "1 $no2 2 $number 3 $inpass 4 $pass2";
list($no2,$name2,$mail2,$subject2,$comment2,$time2,$host2,$color2,$pass2) = split(",", $message[$i]);
if ($number==$no2 && trim($inpass)==trim($pass2)){
// 該当記事
}else{
fputs($fp, $message[$i]);
}
}
fclose($fp);
}
0703nobodyさん
04/08/02 17:22ID:???ありです><
なんとかできました(*´д`)ハァハァ
(trimてなんだろ・・・)
0704nobodyさん
04/08/02 17:23ID:???0705軟式PHP
04/08/02 17:23ID:???http://www.php.net/manual/ja/function.trim.php
0706nobody
04/08/02 17:25ID:tyWsL5gt環境はPHP5、WindowsXPpro、Apache2.0です。
例えば、
ttp://xml-jp.amznxslt.com/onca/xml3?t=webservices-20&dev-t=webthreads&locale=jp&KeywordSearch=Amazon&mode=books-jp&type=lite&page=1&f=xml
上記で取得したXMLから、
foreach($xml->Details as $details){
echo $details->ProdctName;
}
などのようにデータを取り出すことはできましたが、取得したXMLのなかで、
著者名(Author)など、各詳細情報(Details)内でも複数あるデータについて
foreachなどでデータを取得することができません。
単純にキーを指定して、$details->Authors->Author[2] などのようにすれば
データは取れるのですが、ループで取得できないとなんとも不便です。
とりあえずこんな感じに書いてみましたがうまく動作しません。
foreach($xml->Details as $key => $details){
echo $details->Manufacturer;
foreach($details->Authors as $authors){
echo $authors->Author;
}
}
これだと著者名の最初1件しか拾えません。countなどでAuthorを数えてみても
正しくカウントされないようです。
これはこういう仕様なのでしょうか?
なにか間違った記述をしているのでしたらご指摘いただけると助かります。
よろしくお願いいたします。
0707Imo ◆.jC7ANgFY.
04/08/02 17:27ID:???fileで読み込んだ配列はどうしても最後に"\n"が入ってしまうからtrimで除去したんですよ。
パスワードのあとに","が入っているプログラムなら大丈夫なのですが、、、
0708703
04/08/02 17:29ID:???本当にアリガトー><
PS.目的別PHPハンドブックを読んでいるがワカンネェ
0709Imo ◆.jC7ANgFY.
04/08/02 17:30ID:???$details->Authors->Authorが複数(配列として存在している)のならば
こうあるべきでは?
foreach($details->Authors->Author as $authors){
echo $authors;
}
0710軟式PHP
04/08/02 17:32ID:???また明日な。・゚・(ノ∀`)・゚・。
0711nobodyさん
04/08/02 17:32ID:???一瞬でもにでもファイルを 0バイトにすると外部から読み込みが入ると怖いのであまり 0バイトには
しない方が安全だと思う。
やるとすれば以下のような感じかな。実用するならもう少しエラーチェックを真面目にするけど。
if (fwrite($fn, implode("\n", $data))) {
ftruncate($fn, ftell($fn));
}
あと、fopen で開いているファイルを file_get_contents で開くのはちょっと好きでは
ないので、以下の方法で読み込むとか。
$data = fread(filesize($logfile));
0712nobodyさん
04/08/02 17:34ID:???ひとまずWebの日本語マニュアルでも、殆ど問題ない。
http://php.s3.to/man/
0713Imo ◆.jC7ANgFY.
04/08/02 17:37ID:???でもその方法でやると後半部分のデータがくずれたりしますよ。
すべての部分(書き込みするために読み取る部分と、書き込みする部分)で
ロック処理をしておけばよっぽどのことがない限り大丈夫なはずです。
file_get_contentsはphpでは推奨しているといかなくとも、
「OSによっては高速になる」との記述もあります。
まぁちょっとの差でしょうけどね。
# それとちょっと間違えてるよ
# $data = fread($fn, filesize($logfile));
0715nobody
04/08/02 17:43ID:tyWsL5gtレスありがとうございます。
本当だ。できました。ありがとうございます。
こんな簡単なことに気が付かないとは恥ずかしい・・・。
0716711
04/08/02 18:25ID:???if 文を行った方が安全だけど。
rewind($fn);
if (fwrite($fn, implode("\n", $data))) {
ftruncate($fn, ftell($fn));
}
>>713
後半部分のデータがくずれるというのがよく分からない。
そのために、ftell で書き込み終わったファイルポインタの位置を取得して、
それ以降の部分を切り捨てている。
fwrite から ftruncate までの間に別からファイルの読み込みがあった場合は
確かにくずれるかもしれないけど、0バイトで読み込まれるよりはましだと
思ったということで。
一瞬でもファイルを 0バイトにしたいくないのは、fwrite で失敗、例えば
HDD のディスクが一杯になったりして、ftruncate でファイルを 0バイトに
した後にfwrite が失敗したりするとファイルは 0バイトで止まってしまうと
いう問題もあるからだけど。
711 で書いた fread の引数は確かに間違い。
ただ、fopen で既にファイルを開いていた場合は file_get_contents よりは
fread で全部読み込んだ方が早いのは確か。一応、ベンチマークを取って
確認した。
fopen から fclose までの一連の処理を行うよりは file_get_contents の方が
早いけど。
0717686
04/08/02 18:37ID:???"最初に確保されるサイズ"ってのは文字列オブジェクト一つのことなんですけど。
あとデフォで8Mってのはmax_limitのこと?
これは「確保できる最大メモリーサイズ」であって、
どこにも「最初に確保されるサイズ」ってかいてない。
それとも別のオプションがあるのかな。
とりあえず適当に実験してみたところphpの文字列はC文字列で、長さは保持しない感じ。
この辺はあまり気にしてもしょうがないんだが。
0718nobodyさん
04/08/02 18:51ID:???動的に画像生成したいのですが、可能でしょうか?
0719nobodyさん
04/08/02 19:05ID:???PHPはファイルを読み込むことができます。
PHPは画像生成をすることができます。
718はhtmlやPDFのレンダリングエンジンを作ることができます。
結論 -> 可能です。
0720nobodyさん
04/08/02 19:07ID:???どんな風にスクリプトを書けばいいでしょうか。
流れだけでもわかりませんか?
0721Imo ◆.jC7ANgFY.
04/08/02 19:12ID:???そこでそのようなことをしなければならないようじゃ、
それをしてもデーターの後半はくずれてしまいますよ。
と言いたかっただけですよ。
私は一般共用サーバーで使うことを前提にしてやっている
のでそこまで考えていませんが(HDDがいっぱいになるとか、、、
私も調べてみましたがまぁそうっぽいですね。
ファイルサイズがかなり巨大になってくると逆になりますが。
file_get_contentsは引数が少なくて個人的に好きです。
というよりかネットワーク処理のときにfreadの第二引数に
だまされて避けてるだけですが、(ローカルでは問題ありません
# FreeBSD+PHP4.3+PHPAで10000回ループさせた結果
# fopen&fclose: 0.253ms
# fread: 0.223ms
# file_get_contents: 0.335ms
0722nobodyさん
04/08/02 19:17ID:???無料メールアドレスのリストを作成し、入力されたメールアドレスを比較すればいいです。
有料メールアドレスのリストでもいいですよ。
0723Imo ◆.jC7ANgFY.
04/08/02 19:19ID:???でも文字列中に"\x00"も含められるということは文字の長さを保持しているわけだし、
変数といわれても型がいろいろあるわけで、最低10Byteは消費しているなと思ったり。
推測なんでなんともいえませんが、
0724Imo ◆.jC7ANgFY.
04/08/02 19:24ID:???私だったらこんなの書きますよ。
$deny = array('hotmail.com', 'mail.goo.ne.jp');
list($mail_user, $mail_domain) = explode('@', $mail, 2);
if (in_array($mail_domain, $deny)) {
die('別のアドレスで登録してくださいませ');
}
0725679
04/08/02 19:33ID:???>>684
高いっす
>>694
知り合いから頼まれて作っているのですが(携帯用待ち受け画面サイト)、
端末に合わせて自動的に画像を拡大縮小してほしいということで
元ファイル読み込み→GDでリサイズ→imagejpegで出力
という処理をしています(ファイルとしては書き出していません)。
で、携帯のほうで転送不可にしたいということで、ドコモ用・au用で
違った転送不可フラグを書き込みたい、と。
やはり一度書き出さないと無理なのでしょうか?
気合入れてググってきます・・・。
>>695
そのexif_read_data()の逆の関数があればラクなんですけど・・・
exif_write_data($image,"comment","hogehoge");みたいな。
0726Imo ◆.jC7ANgFY.
04/08/02 19:39ID:???packでがんばって処理するしかないようですね。
とりあえずJPEGのフォーマット関連のサイト、書いときますね。
ttp://www02.so-net.ne.jp/~koujin/jpeg/jpeg.html
ttp://www.yk.rim.or.jp/~mamo/Computer/DS-7/exif.html
ttp://www2.airnet.ne.jp/~kenshi/exif.html
ここは消えてるけどweb.archiveになら残ってるからアドレスだけ
ttp://www.ba.wakwak.com/~tsuruzoh/Computer/Digicams/exif.html
0727nobodyさん
04/08/02 19:58ID:???今のところhotmailが対象なのですが、他のメールも登録を考えた方がいいかな?と
思ってるので、そのリストを作成してみます。
ソースの提示もしていただき感謝です。
今のスクリプトへうまく組み込めればいいのだけど、最近php始めたもので^^;
参考にしてやってみます!
0728nobodyさん
04/08/02 22:18ID:???file()で読み込もうとするとどうなりますか?
flockを使うならファイル処理はfopenで揃えた方がいいでしょうか?
0729nobodyさん
04/08/02 23:11ID:lHZ4GoiW二つアドバイス。
一つ目
生成されるファイルサイズに気をつけてね。
vodafoneのV3/4シリーズは、ファイルサイズ最大6Kbyteだ。
QVGAサイズで6Kbyteは早漏圧縮率を上げないとね。
二つ目
QVGA対応端末の中には、Webアクセス時、QVGAサイズの画像を表示できない端末があります。
そやつらは、vodafoneだったら四分割、ezwebだったらダウンロードさせるしかないです。
0730nobodyさん
04/08/02 23:17ID:lHZ4GoiW千通ちかいメールを送る必要があります。
Mail::send()を使おうと思ってるんですが、sendmailで送るのと、smtpで送るのとで、速度面ではどちらが高速でしょうか?
ちなみに、MTAはqmailです。
0731nobodyさん
04/08/02 23:41ID:d5GNjYEUfor分を使ってカウントしようとしたのですが、文字そのものをカウントできなくて困ってます。
よろしくお願いします。
0732nobodyさん
04/08/02 23:42ID:8RF4q1S0$to = '[email protected]';
$bcc = "[email protected]";
$from = "[email protected]";
$title = "sampletitle";
$headers = "From: $from\r\n";
$headers .= "Bcc: $bcc\r\n";
$msg = file("./mailtxt.txt");
$msg = implode("",$msg);
mb_send_mail($to,$title,$msg, $headers);
のように書いてtoの他にbccでも送信したいのですが
送信されません、マニュアルをみるとmb_send_mail()はヘッダの区切りが\nになっていましたが
mail()の方は\r\nになっていましたので両方試しましたがダメなのはそこではなさそうなのですが
どこがおかしいかご指摘いただけますか。
旧サンのコバルトのraQ550、Apache/1.3.20+php4.0.6です。
0733nobodyさん
04/08/02 23:47ID:???スクリプト内部に"->"という記述があるのだけども
これってどんな意味があるのかどうかご教授を...
余りにも漠然としたワードなんで
ググっても全くヒットしなかったデスん('A`)
0734nobodyさん
04/08/03 00:00ID:7JP71wHzhttp://www.php.net/manual/ja/language.oop.php
0735nobodyさん
04/08/03 00:02ID:???出てくるんでないかあい?
0737nobodyさん
04/08/03 00:57ID:???なるほど!
クラスを用いた時のメンバ変数やメソッドにアクセスする為の
演算子という事が少しずつ分かってきました
激しく目から鱗です、謝々!!
0738nobodyさん
04/08/03 01:30ID:???0739nobodyさん
04/08/03 02:10ID:OM2Aei59$this->オブジェクト->メンバ名
としても
Object->メンバ名
となってしまうんですが、どこがおかしいのでしょうか?
0740nobodyさん
04/08/03 02:22ID:Q+9yurzP具体的なエラーメッセージor挙動を書きなさい
0741739
04/08/03 02:29ID:OM2Aei59設定情報を格納するクラスをつくっていて、
他のクラスのメンバにそのクラスのオブジェクトを生成・代入し、
print "なんたらかんたら$this->オブジェクト->メンバ名";
みたいな感じで出力させたところ、何故か出力が
Object->メンバ名
になってしまうのです。
一応C++をやっていたのですが、PHPではpublicなメンバみたいなのは使えなかったりするのでしょうか?
0742軟式PHP
04/08/03 09:13ID:???/*-----親クラス-----*/
class Oya{
//メンバ変数
var$musukoObj;
//メンバ関数
function Oya(){
$this->musukoObj = new Musuko;
print$this->musukoObj->GetData();
}
}
/*-----子クラス-----*/
class Musuko{
//メンバ変数
var$data;
//メンバ関数
function Musuko(){
$this->data = 100;
}
function GetData(){
return $this->data;
}
}
//--クラス定義終了
$objOya = new Oya();
?>
100が出力されるけど、こういうことではない?
0743軟式PHP
04/08/03 09:14ID:???適当なところにスペースよろしく。
0745nobodyさん
04/08/03 13:20ID:WVIz7NicPHPのバージョンを4.3.8に上げる前に、
プログラムは前もって4.3.8に修正したヤツを
現行のサーバーに入れようと思ってます。
文法をより適切に修正しただけで、新しい関数などは用いてはいないので
4.3.8用に修正したプログラムでも4.1.2で動くかと思ったら、
一箇所ダメなところが。
「mb_ereg()」関数が4.1.2時代にはまだ「mbereg()」としてしか存在していなかったようで、
mb_ereg()関数を呼び出しても未定義と怒られる。
なので、
function mb_ereg($str1,$str2,$str3){
return mbereg($str1,$str2,$str3);
}
のような感じで関数をとりあえず定義してバージョンアップ前まではお茶を濁そうと思っていたら
三番目の引数が問題でうまく動かない。
mb_eger("(hoge)$",$data,$regs);
とした場合に正規表現にマッチした部分を$regs[1]として
取り出すことができなくなってしまうのでお手上げ。
なので、「mb_ereg()」と自作した関数をそのまま「mbereg()」関数に
リンク(エイリアス?)するような方法はないでしょうか?
0746739
04/08/03 13:36ID:???レスどうもです!
>>742,743
やっちゃいますよね、それ。
内容は大体そんな感じです。
結局のところ、原因は・・・
>>744
まさにこれでした!
便利さには危険が付きまとうんですね(笑
皆さん、どうもありがとうございました。m(_ _)m
0747Imo ◆.jC7ANgFY.
04/08/03 14:19ID:???たとえばこんな感じ?
function mb_ereg($str1,$str2,&$str3){
return mbereg($str1,$str2,$str3);
}
0748745
04/08/03 14:27ID:???なるほど、参照渡し。
PHPで参照渡しってほとんど使ったことなかったから思い付きませんでした。
ありがとうございます。助かりました。
0749nobodyさん
04/08/03 15:05ID:???0750nobodyさん
04/08/03 15:27ID:KxZQfxxVいままで、結構な規模のPHPプログラムをincludeを使って書いています。
このソースを外部に公開することになったのですが、
functionを使う感覚でincludeを使って処理を別ファイルに書き出していたので、
プログラム的にちょっとみっともないかな、と思っています。
ですが、問題はここではなくて、
includeとfuctionで同じ(ような)処理を呼び出す場合、
処理スピードが違う等のメリットはあるのでしょうか?
functionではメモリにキャッシュされるような気もするのですが、
それに関するドキュメントが見つかりませんでした。
メリットが特になければ、
「スピードには問題ない!」で押し通そうと思っているのですが...
0751nobodyさん
04/08/03 15:41ID:???Set-Cookie ヘッダは session_start() 関数を実行するときに表示されているんでしょうか?
環境は 4.3.6 + FreeBSD のレンタル鯖です。
0752nobodyさん
04/08/03 16:03ID:BfqwKzi+HTMLに<?php include("test.jsp"); ?>と記述してみたのですが、
test.jspのソースがそのまま表示されてしまいます。
Apacheのhttpd.conf中のAddType application/x-httpd-phpに
「.jsp」を追加してみたのですがだめでした。
JSPのファイルからJSPをインクルードする方法なら簡単なのですが、
どうしてもHTMLからJSPをインクルードしたいんです。
JSPを表示する方法が分かる方がいたら教えてください。
0755nobodyさん
04/08/03 16:47ID:???取り合えずPHP4が前提でいいのかな?
「メモリにキャッシュ」をどのようにイメージしてるかが
ちょっと不明だが、サブプログラムのincludeでも
メインプログラム上のfunctionでの記述でも実行前に
メモリに取り込まれるのは変わらない。またこれは、
includeの箇所が実際に実行されるされないに関わらない。
スピードに関わるとしたら、includeの場合はファイルのopenや
close等の処理などで、塵も積もれば的な差異が出る可能性はある。
しかしその程度は瑣末な事。
>functionを使う感覚でincludeを使って処理を別ファイルに書き出し
素の処理コードをまんまincludeしてるのかな?
「公開」の目的とするものによっては、きちんと追いやすいコードに直すべきだよ。
includeはライブラリ然としたものを読み込むべし。
0757nobodyさん
04/08/03 17:31ID:???750です。
回答ありがとうございます。
メモリにキャッシュ、というのは、2度目以降の読み込みを想定していました。
functionだとメモリ上に常駐してくれるのかな、と。
includeはテンプレートを読み込むっていうイメージがあるもんで。
> 素の処理コードをまんまincludeしてるのかな?
そうです。
よく考えると、functionの方がコードとしては追いやすいですよね。
外部へは時間の関係で今のまま出しますが、
少しずつ、手直ししていくことにします。
重ねてありがとうございました。
0759nobodyさん
04/08/03 18:08ID:???1文ずつ覚えていったり一つ何かを作ろうとしたり・・・
俺の場合は本買ってまず掲示板作ろうととりかかりましたが
勉強のやり方はあっているでしょうか?
0761759
04/08/03 19:06ID:???ロックのかけ方もわからないし、クッキーすら全く・・・
出来たものも微妙です・・・
0762軟式PHP
04/08/03 19:13ID:???ロックの概念とか頭に入れてるだけでもマシな方かと。
0764Imo ◆.jC7ANgFY.
04/08/03 19:27ID:???「掲示板に書き込む」
「内容のチェック」
「必須項目チェック」
「内容が空欄であればエラー」
「最大文字長チェック」
「それぞれにあった文字数以上であればエラー」
「不正文字チェック」
「\x00を除去する」
「改行を\nに統一する」
「\r\nを\nに、\rを\nに置換する」
「問題のある文字(タグなど)を置換する」
「改行をタグに変換」
「ファイルの書き込む」
「ファイルを開く」
「ファイルをロックする」
「ファイルを読み込む」
「データを追加する」
「ファイルに書き込む」
「ファイルのロック解除」
「ファイルを閉じる」
1つ1つの細かいところは簡単。でも、漠然としてるから難しく感じる。
まぁとはいってもロックはちゃんと理解していないとだめだけどね。
# でもちゃんとしたロックをできている人はphpプログラマーでは少数
# 今度ホームページでも作ってそれについて書こうかな、
0765nobodyさん
04/08/03 20:12ID:???0766nobodyさん
04/08/03 20:16ID:???>メモリにキャッシュ、というのは、2度目以降の読み込み
この辺あたりから同じプログラムが連続して処理された場合の
キャッシュのようなものがあると考えてるのだと思われるのだが、
PHPはJavaのように何らかのアプリケーションサーバが常に
起動してる訳じゃなくて、基本的には1回こっきりで閉じている。
但しその1回の中での同一の処理については、効率化のための
処理が行われている。
httpdのモジュールとして運用した場合は若干違うのだが、
CGI版の挙動を調べてみると判りやすいだろう。
# CLIの方がもっと判りやすいか。
「同じプログラムが連続して処理された場合のキャッシュ」については
PHP Accelerator、Zend Performance Suite(Zend Accelerator)、
PECLに移された APCなどのプロダクトが関連するので、それを調べること。
0767745
04/08/03 20:47ID:???第三引数を指定しない場合にエラーになってしまいます。
function mb_ereg($str1,$str2,&$str3=""){
とするとエラーになってしまうし。
どうしたものでしょう?
参照渡しの場合は初期値の設定は不可?
0768Imo ◆.jC7ANgFY.
04/08/03 21:19ID:???完全な実現は無理だと思うのですが、とりあえず
mb_eregを呼び出すときにmb_ereg($str1, $str2, &$str3);
定義の方をfunction mb_ereg($str1,$str2,$str3="")
にすることによってある程度実現は可能です。
0770nobodyさん
04/08/03 21:34ID:29Vzu5Ve0771nobodyさん
04/08/03 21:42ID:???わざわざ日本語に訳してくれてんだし
0773770
04/08/03 21:49ID:29Vzu5Ve0774nobodyさん
04/08/04 15:24ID:???でロックかけたあと、ロックを外すにはどうすればいいのですか?
0776774
04/08/04 15:32ID:???0777nobodyさん
04/08/04 15:39ID:+l+GCo7r0780nobodyさん
04/08/04 16:43ID:T7C0bXmt0781nobodyさん
04/08/04 16:47ID:???$no = 5;
for ($i=$no ; $i >= 0; $i--){
print $i;
}
?>
これでダメなのか?
0782nobodyさん
04/08/04 16:54ID:T7C0bXmtフォームの処理は
<?php
echo $_POST["名前"];
?>
でいいんですよね
0783軟式PHP
04/08/04 16:59ID:???method属性指定してなかったらデフォはGETで送られるし。
0784nobodyさん
04/08/04 17:03ID:???フォームで入力した値を取得して、
適正な値(正の数値、整数等々)かどうか確認して、
for構文を使って初期の値(0)から、入力値まで
カウントアップ(例示のでは+1)して、echoする。
初期値とカウントアップ、適正値の条件などは容易に
変更できるようにパラメータ設定としておくのが定石。
0785軟式PHP
04/08/04 17:03ID:???$iNo = intval($_REQUEST["名前"]);
for( $i = 0; $i <= $iNo; $i++ )
{
print $i."<br>";
}
?>
一応答えおいとく。
0786nobodyさん
04/08/04 17:04ID:T7C0bXmtフォームから正の整数を入力して送信すると、1からその数字までの整数の
並び方を表示するPHPスクリプトを作れ。フォームの入力はテキストフィール
ドやメニューを使ってもよい。入力が0以上かどうかのチェックも行え。
0787軟式PHP
04/08/04 17:05ID:???0788nobodyさん
04/08/04 17:07ID:T7C0bXmtさっきのできました!
でも”5”の指定なしはどうすればいいんでしょう・・・?
0789nobodyさん
04/08/04 17:08ID:T7C0bXmtできました!!どうもありがとうございました!!
0790nobodyさん
04/08/04 17:14ID:???こチな!のAA貼っとけや
0791nobodyさん
04/08/04 17:16ID:T7C0bXmt4人で・・・
すみません。
0792nobodyさん
04/08/04 17:16ID:???課題を貰ってるのは君らだけなんだから、
授業を受けてる生徒内で解決するか
その課題に書いてある条件をここに列挙しろよ。
マルチ先にしか書いてない条件なんて、他の人は判らん。
でも先生も、このスレとPHP-usersと丸投げMLぐらいは読んでると思うぞ。
0794nobodyさん
04/08/04 17:41ID:???http://pc5.2ch.net/test/read.cgi/php/1047225437/420-421
0795nobodyさん
04/08/04 17:59ID:???■ このスレッドは過去ログ倉庫に格納されています