【PHP】初心者コーナー
■ このスレッドは過去ログ倉庫に格納されています
0001名無しさん@お腹いっぱい。
02/01/21 03:21ID:???仕方ない、人気のないPHPを応援してやる。
データベース禁止 MySQL PostgreSQL はどっかいけ。
純粋にPHPプログラミングだけ。
初歩的な事ならWebProg板の誰かが素早く教える。
もちろんPerlプログラマーも手伝ってくれ。
ほんじゃ質問してみ。
>>2-9 誰か情報かいてくれ。
0136nobodyさん
02/10/22 22:06ID:???【PHP】初心者コーナー では、
PHPの初心者クラスのアホな質問を受け付けております。
PHP + MySQL
http://pc.2ch.net/test/read.cgi/php/983250751/l50
PHP + PostgreSQL
http://pc.2ch.net/test/read.cgi/php/983128806/l50
0137nobodyさん
02/10/23 19:59ID:???$count = 動的パラメタ...として
for($i;$i<=$count;$i++){
print '<input type=text name=count_'.$i.'>input_'.'$i.'<br>';
}
...で複数のテキストフィールドを動的に作った場合
このテキストフィールドのパラメタを全て回収するには
どすればよいでしょうか?
0138nobodyさん
02/10/23 20:48ID:???forで回してるから$countは123・・・順の最高値なんすか?
<input type=hidden name=count value=$count>で渡して、
受けたら$count以下のを扱うとかいうのは違うすか?
つか、何がしたいのかさっぱりわかりませんずら。詳細キボンヌ
0139hmk
02/10/24 00:38ID:???私なら、配列を使います。例えば、
<?php for ($i = 1; $i <= $count; $i++) { ?>
<input type="text" name="cnt[<?php echo $i; ?>]">input_<?php echo $i; ?><br>
<?php } ?>
このようなフォームにしておけば、
<?php
for (reset($cnt); list($k, $v) = each($cnt);) {
// このようにして後で回収できます。
}
?>
138の言うようにhiddenで最大値を渡してもできる。
用途に応じて、使いやすい方法でいくのがよいでしょうかね。
0140137
02/10/24 10:40ID:???レスどもです。
わたしの意図するところは伝わったようですが
自分なりの常識を押し付けるような書き方になってしまいました。
反省してます。
念のため
php のversion は4.2.3
php.ini のregister_grobals=Off
そのため、フォームから渡されたパラメタは
$param_name=$HTTP_GET_VARS['param_name']
で回収する必要があります。
当初、これをfor でまわして
for($i=1;$i<=$count;$i++){
$param_name[$i]=$HTTP_GET_VARS['param_name[$i]']
}
とできると思ったのですがダメでした。
外部フォームからの変数が格納されている配列
また、その配列から要素を抜き出す方法を教えてください。
0141nobodyさん
02/10/24 11:10ID:???<form action="<?=$_SERVER[PHP_SELF]?>">
<?php
$count = 10;
for($i = 0;$i<=$count;$i++){
print "<input type=text name=param[]>input_".$i."<br>\n";
}
print '<input type="submit"><br>'
for($i = 0;$i<=$count;$i++){
print "param".$i."=".$_GET[param][$i]."<br>\n";
}
0142nobodyさん
02/10/26 20:59ID:???勉強するために本を買おうと思ってるのですがPHP3なんです。
「プロフェッショナルPHPプログラミング」という本なのですが。
しかしサーバーがPHP4なので大丈夫かな?と思い質問させていただきました。
0143nobodyさん
02/10/27 09:48ID:???その本PHP4.0.4で動作確認してるって書いてるよ。おすすめかも。
おれならマンモンス本の赤と青を買うな。
詳しくしりたいなら -> PHP関連の書籍(但しPHP出版系お断り)
http://pc.2ch.net/test/read.cgi/php/985315574/l50
0144nobodyさん
02/10/28 15:24ID:uGqL/qit普通のテキストファイルよりもデータベースファイルに保存した方がいいんでしょか。
管理し易いとか速いとか。。。
0145nobodyさん
02/10/28 18:42ID:b7KIhGgzデータの出し入れはデータベースの方が圧倒的に便利です。
0146144
02/10/28 18:47ID:uGqL/qitデータベースファイルを扱う場合、
やっぱりMySQLとかインストールしないと無理なんですか。
0147nobodyさん
02/10/28 19:02ID:???0148nobodyさん
02/10/28 22:02ID:???0150nobodyさん
02/10/28 22:28ID:???ホワイトベースを扱う場合、
やっぱりブライト艦長とかインストールしないと無理なんですか。
0152○
02/11/02 16:40ID:sGSys/RS0153nobodyさん
02/11/02 18:08ID:KWT88uG8「PHPメール」って、何?
0154名無し募集中。。。
02/11/03 01:13ID:dBGKbheQ「if」をつかって、日ごとに違う文章を表示させたいのです。
もし「11/03」ならば「今日は11月3日なわかけだが」
もし「11/04」ならば「今日もお休みで(・∀・)イイ!!」
もし「11/05」(略
表示させる文章は自分で適当に書くだけです。
ようは、日付を使ってどうやって「if」を使えばいいかを知りたいのです。
よろしくおねがいします☆ミ
0155nobodyさん
02/11/03 02:18ID:pFxZ0WjN0159nobodyさん
02/11/03 03:53ID:???別にすごいから秘密にしたいってわけじゃないよ。
2chに書き込みをするスクリプトなんだけど
いたづらで悪用されたら、こまるから、
秘密にできたらいいなって思ってん。
0162nobodyさん
02/11/03 04:20ID:???ただZend Encoderと違って速くはならないらしいけど
0163nobodyさん
02/11/03 04:53ID:???APC (ALTERNATIVE PHP CACHE) というのかな?
でもこれって実行側で環境をインストールせやなあかんみたい。
これやと逆にユーザ対象が狭まれ過ぎて、配付する意味がなくなるわ…。
それに少し古いみたいで、惜しい。
0164nobodyさん
02/11/04 22:59ID:???./foo.php (メインファイル)
./subject.txt (現在存在するログファイル名が書いてある。 一行に一個。)
./dat/xxxxxxxx.dat (subject.txtに書いてあるログファイル)
subjectのarray[i]を読んで、そこに書かれてるxxxxx.datてゆーのをdatディレクトリから探して表示、
を繰り返すわけなのですが、、、、
Warning: file("./dat/1036411589.dat ") - Invalid argument in 〜
とゆーような感じでdatのあとに半角スペースが入ってしまうんです。 よって読めないと。
ereg_replace()してもダメでした・・・
配列の仕様ってヤツなのでしょうか? そして回避法はあるんでしょうか?
お願いします。
0165nobodyさん
02/11/05 10:20ID:iexiejZJもう一度、マニュアルを読んでみよう。
file()は、\nを除去しないと書いてあるよ。
よって、trim()でもつかうのがよろし。
0166165
02/11/05 10:24ID:iexiejZJあと、subject.txtに「表示させたいログファイル名」ではなくて、
「現在存在するログファイル名」だけがかいてあるのなら
./dat/を直接readdir()した方が楽でない?
0168nobodyさん
02/11/05 16:50ID:???pear/PECL/APCに最新版があるヨ
pear/PECL/APC Cache機能
pear/PECL/APD Debug機能というかプロファイラ
pear/PECL/OPC Optimizer機能(今日レポジトリが出来たみたい-まだ枠組みだけだけど)
これからが楽しみ :)
0169nobodyさん
02/11/05 16:59ID:???ありがとうございます!
> 改行記号はついたままと なります。
て書いてましたね・・汗
ついでにtrim()の存在も知らなかったので大変勉強になりました〜! ありがとうございました!
0170164
02/11/05 17:03ID:???readdir()ってディレクトリの見えないディレクトリで使えるかどうか分からなかったので頭に入れてなかったっす。
あとでちょっち試してみます。
0171nobodyさん
02/11/05 18:02ID:WIPa8/Vj半角スペースや「"」などの文字が含まれているとそれ以降が消えてしまいます
addslashesを使って「\"」にエスケープしても「\\」と文字化けします
どうやってデータを渡せばよいのでしょうか?
0172nobodyさん
02/11/05 20:25ID:Dn6gflHKphp.iniでmagic_quotes_gpcがonになっていると、
COOKIE,POST,GETで渡された値の中の
これらの文はは勝手にエスケープされる。
ので、
php.ini でmagic_quotes_gpc = off
にするか、
.htaccessで
php_flag magic_quotes_gpc off
にする。
あと、stripslashes() という函数もあったような;
0173nobodyさん
02/11/05 20:55ID:WIPa8/Vjすみませんちょっと説明不足だったようですが
勝手にエスケープされたものをstripslashes()で取り除いても
正常に受け渡しができなくなります。
「aaa"bbb"」→POST→「aaa」
「aaa\"bbb\"」→POST→「aaa\\」
フォームからは正常にエスケープされた文字列が受信できます
環境がおかしいのでしょうか?
対策としては正常に受け渡しできる文字に置換して
受信側で元の文字に戻すということですけど・・・
0174nobodyさん
02/11/05 21:28ID:???0175nobodyさん
02/11/06 01:26ID:EhYZ0bVtサーバースペースはまだ探していないので、local環境で始めてみたいです。
OSはWindows2000かLinux(Red Hat)です。
とりあえずwin2kでやってみようと思って、
phpdevやphpのインストーラ(win用)は落としてみたのですが、
使い方がいまいちわかりません。
初心者は何から始めればよいのでしょうか?
0177173
02/11/06 07:19ID:yWgDH7Dp4.2.2に戻してみましたがかわりませんでした・・・
0179173
02/11/06 17:19ID:???htmlspecialcharsで変換してPOSTすれば
消えずに送信できました
0180nobodyさん
02/11/07 11:41ID:QEt0uw4x単純な置き換えだけでなくてIFとかLOOPとかあるような・・・
0181nobodyさん
02/11/07 11:59ID:Go7yQUbZwhile (hoge) {
?>
aaaa
<?php
}
0183nobodyさん
02/11/08 01:14ID:Veqht0/QPHPを始めたいとのことですが、やはり「なぜPHPを始めるの?」
という質問に答えられるかどうかがポイントではないでしょうか?
その答えがご自分の中にあるのであれば、それに必要な処理や道筋を
立てて、そのプロセスに必要な関数や仕組みを試行錯誤でやることです。
そうすれば、徐々に覚えることができます。
0184nobodyさん
02/11/09 07:47ID:???促されたので質問させて下さい。↓は初心者スレからのコピペです。
現在、XHTMLで表示部分を記述しているCGIスクリプトが少ないので
自分でスクリプトを作ってみようと思っています。しかし、色々と
検索しているとPerlよりもPHPの方が動作も軽くていいようなので
PHPでスクリプトを作ろうかと思ったのですが、HTML(XHTML)以外
知らない人間がいきなりPerlではなくPHPを覚えようというのは
無謀なのでしょうか?下らない質問ですみませんが教えて下さい。
#Jsは多少知っています。
0185nobodyさん
02/11/09 10:59ID:X+rmQU/4こういう本で勉強
http://www.gihyo.co.jp/books/syoseki.php/4-7741-1321-2
そのあとはPHPのオンラインマニュアルを見れば簡単に書ける
何事も基礎が大事
0186nobodyさん
02/11/09 11:14ID:E2/H+5gTPHPとても簡単
0187nobodyさん
02/11/09 11:24ID:???>何事も基礎が大事
言われて納得。確かにそうですよね。ありがとう御座います。
PHPやPerlの前に基礎の基礎をしっかり固めたいと思います。
0189nobodyさん
02/11/09 11:39ID:rznkVAE5サイトを見るのにパスワードとユーザ名を要求されるようになってしまいました。
知らないうちに会員制に移行してたらしいのです。
こうなった以上、もう見るのは不可能なんでしょうか?
0190nobodyさん
02/11/09 12:14ID:???0191nobodyさん
02/11/10 11:26ID:QiAM6QEOecho '管理人の名前は使用できません。';
}
サポートと言う文字を入れると
Warning: REG_EBRACK: in C:\test.php on line 296
みたいなエラーが出るのですがなんででしょうか?
管理人やWebmasterではちゃんと表示されるんですが。
0192nobodyさん
02/11/10 11:29ID:???0193191
02/11/10 12:27ID:???どうやら長音記号「ー」のせいみたいですね。
メーリングリストに同じような話題が出ていました。
http://ns1.php.gr.jp/pipermail/php-users/2001-December/004497.html
0194191
02/11/11 05:10ID:???0195nobodyさん
02/11/22 03:31ID:klMrTIO/SELECT CODE, NAME FROM TABLE1 ORDER BY CODE
とポスグレに流したら、100件帰ってきます。
PHP3で pg_Result($rtn, 80, name)ってすると、80番目が帰ってきますよね。
この時、ポスグレのカーソルは先頭から80回フェッチしているんですか?
0196nobodyさん
02/11/22 11:25ID:???print と echo は、まったく同じものでしょうか?
ちょっと違うのかな?
どっちでもいい事かもしれませんが気になりまして
0199nobodyさん
02/11/22 13:01ID:???0201nobodyさん
02/11/22 14:46ID:2PtBJ1DAprintは関数。echoは文
echoは()がいらないので多用している。
0202nobodyさん
02/11/22 16:22ID:???0203nobodyさん
02/11/22 16:25ID:???> このため、引数を括弧で括る必要はありません。
http://www.php.net/manual/ja/function.print.php
0204nobodyさん
02/11/22 16:30ID:2PtBJ1DAそうだったのか。そうしたら ますます両者の違い側下欄。
0205bloom
02/11/22 16:30ID:ouswKb0xhttp://www.agemasukudasai.com/bloom/
0206nobodyさん
02/11/22 16:35ID:???Cのprintfも使って良いわけだし。
0207nobodyさん
02/11/22 16:38ID:???このスレタイのようにいわゆる初心者ならば
どれを使っても変わらないだろう。
0208nobodyさん
02/11/22 16:44ID:???echo print "test data\n";
してみ。
echo echo "test data\n";
も試してみれ。
if(!print("stdout check OK!")) die();
0209nobodyさん
02/11/22 18:28ID:???0210version
02/11/22 21:56ID:+Mj4l0eAどうすればよいか分かりません。
Red Hat Linux 7.2にPHP4.2.3をソースからコンパイルして
インストールしました。それで、本を買って、さぁ勉強しよう
と思ったら、その本がPHP4.2.2の本だったので、
同じバージョンにさせたいのです。
この場合ってどうすればよいのでしょうか?インストールされた
ファイルを探し出して、全部削除とかしてから4.2.2をインストール
するのですか?教えてください。
0211PHP ◆DQN/AO/IPw
02/11/23 00:15ID:???/* echo の方が早いね */
function getmicrotime(){
list($usec, $sec) = explode(" ",microtime());
return ((float)$usec + (float)$sec);
}
$str = "De man cyaan seh dat, aya.\n";
$start = getmicrotime();
echo "<span style=\"display: none\">";
$i = 0;
while ($i < 50000) {
echo $str;
$i++;
}
echo "</span>";
echo "echo: <b>". (getmicrotime() - $start) ."</b><br>\n";
$start = getmicrotime();
echo "<span style=\"display: none\">";
$i = 0;
while ($i < 50000) {
print $str;
$i++;
}
echo "</span>";
echo "print: <b>". (getmicrotime() - $start) ."</b><br>\n";
/* ローカルでテストしてね*/
?>
0212マニュアル嫁 君
02/11/23 00:22ID:eY1CU9cS0213nobodyさん
02/11/23 13:54ID:???echoのほうが良さそうなのでecho使うようにします。
0214nobodyさん
02/11/23 16:53ID:dkREGMIEPHP では入力された値は直接変数に格納されます。これはPOSTデータも
GETデータも、Cookie データも、FORMも同じです。
その変数は連想配列です。
$HTTP_POST_VARS
$HTTP_GET_VARS
$HTTP_COOKIE_VARS
0215nobodyさん
02/11/23 18:44ID:???0216nobodyさん
02/11/23 20:33ID:UbdTqBExこれから触ってみようと思うのですが
個人でPHP学ぼうと思ったらWEBサーバーが必要なんでしょ?
みんなレンタルサーバーとか使ってんの?
それともインターネットのプロバイダがPHPサポートしてんですか?
スタンドアローンでうごかしてるとか・・・
0217nobodyさん
02/11/23 20:53ID:???初心者スレだから答えてあげると、
・apacheをインストール
・PHPをインストール
これでローカルで動かせる。
具体的な設定方法は検索すればわかるでしょう。
0218216
02/11/23 21:02ID:UbdTqBExやっぱりそうですか
実は私もServletをスタンドアローンで動かしてる・・・
0219nobodyさん
02/11/23 21:03ID:u57L3WN30220nobodyさん
02/11/23 21:40ID:???そのまんまでしょ。
意味がわからないならCGIとは何かを勉強する必要がある。
mod_phpとかmod_perlも一緒に調べるとよくわかると思う。
0221nobodyさん
02/11/23 22:09ID:dkREGMIE0222nobodyさん
02/11/23 22:10ID:???0223nobodyさん
02/11/23 22:27ID:???http://jp.php.net/manual/ja/
0224nobodyさん
02/11/23 23:13ID:???また、完全CGI(HTMLへの送受信をしない?)として使えますよね。
何が言いたいんだ?
普通は
HTML+php (掲示板などへの書き込み)→php鯖で処理してその結果を→HTML+phpに表示
postメソッドなどの通信
post/getで通信 →php鯖で処理してその結果を →post/get?で通信
0225nobodyさん
02/11/23 23:19ID:???0226nobodyさん
02/11/24 00:10ID:???0227nobodyさん
02/11/24 00:20ID:???php.iniの設定が書いてるWebサイトキボンヌなのです
0228nobodyさん
02/11/24 00:34ID:???0229nobodyさん
02/11/24 00:43ID:???グローバルレジスターくらいいじれりゃ十分やけど。。
0231nobodyさん
02/11/24 00:55ID:???0232nobodyさん
02/11/24 02:32ID:???0233nobodyさん
02/11/24 09:20ID:???0234nobodyさん
02/11/24 13:28ID:???無くても別に困らないんだけど、気になったので・・・
0235nobodyさん
02/11/25 00:32ID:???困らないんだったらマニュアルみ。
http://jp.php.net/manual/ja/
0236nobodyさん
02/11/25 05:45ID:???いつのまにオーバーロードをサポートしてたんだ・・・・?
つかサンクス>>235 & マニュアル嫁>>オレ
エセOOつかえねーと思ってたが、PHP5も楽しみだな
■ このスレッドは過去ログ倉庫に格納されています