【PHP】初心者コーナー 3 Released【スローモード】
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
03/06/11 06:24ID:???ファイル MySQL PostgreSQL 正規表現でも なんでもいってみ
でもな、アホな質問であっても詳しく質問しろよ。 ネタはおもしろく書けよ。
前スレ http://pc2.2ch.net/test/read.cgi/php/1048442813/l50
■PHPの普通の質問はあっちな、【PHP】質問スレッド Part8
http://pc2.2ch.net/test/read.cgi/php/1050249148/l50
■PHPへ移行したいPerl信者はあっちな、【待望】PerlユーザのためのPHP入門
http://pc2.2ch.net/test/read.cgi/php/1046326634/l50
■マニュアル嫁ってうるさいのがいるからちょっとは嫁な、
http://www.php.net/manual/ja/
■おまえ初心者なら入門本くらいかっとけな、PHP関連の書籍(但しPHP出版系お断り)
http://pc2.2ch.net/test/read.cgi/php/985315574/l50
■これはなズープスと読むらしいがあっちな、XOOPS
http://pc2.2ch.net/test/read.cgi/php/1031736248/l50
でもな、ここで書きたかったらここで書き。 あとは関連な、>>2
0102nobodyさん
03/06/19 22:14ID:???まずform.htmlで
<form name="form1" method="post" action="confirm.php">
<p> 名前<br>
<input name="name" type="text" size="100">
</p>
のようなフォームを作り、confirm.phpで
<?php echo $_POST["name"] ?><br>
として表示しようとしているのですが、何故かなにも表示されません。
PHPが動いていることはphpinfo()で確認済みです。
どうもform.htmlからconfirm.phpに変数を渡せていないような気がします。
これはなにか設定の問題なのでしょうか?
ご教示ください。
0103nobodyさん
03/06/19 22:34ID:qf8t/Q9iParse error: parse error, unexpected '=' in /xxxxx/index.php on line 11
「=」はつかえないんでしょうか?
0104nobodyさん
03/06/19 22:34ID:???0105nobodyさん
03/06/19 22:38ID:???http://jp.php.net/manual/ja/function.preg-match.php
0106nobodyさん
03/06/19 22:39ID:???0108nobodyさん
03/06/19 22:50ID:???0109nobodyさん
03/06/19 23:00ID:???0110nobodyさん
03/06/19 23:23ID:???fopenではダメなのですかい?
0113nobodyさん
03/06/19 23:39ID:???ttp://www.php.net/manual/ja/function.fopen.php
0114nobodyさん
03/06/20 00:25ID:???allow_url_fopen
http://www.php.net/manual/ja/features.remote-files.php
0115nobodyさん
03/06/20 14:27ID:LThxuIrX次のページにその並び順のまま渡すには、
どんな方法が考えられますか?
ファイルに書き出すしかないでしょうか…
0118nobodyさん
03/06/21 00:51ID:???>>116-117の補足
shuffle($arr);
$str = rawurlencode(serialize($arr));
GETのとき
echo "<a href=\script.php?shuffled="{$str}\">xxx</a>";
POSTのとき
echo "<input type=\"hidden\" name=\"suffled\" value=\"{$str\}" />";
SESSIONのとき
書くのめんどくさい。rawurlencodeとかserializeとか不要。
0119nobodyさん
03/06/21 11:11ID:k+R30mgd調べてみると、multibyteってのを入れると、日本語化できる
みたいに書いてあるのですが、
逆を言えば、multibyteを入れないと日本語化できないんでしょうか?
またPerlってどうなんでしょうか?
0121nobodyさん
03/06/21 12:23ID:HF7plXmg先日、フリーのPHPチャットプログラムをダウンロードしてきました。
製作者様がおっしゃるにはそのチャットプログラムは、
改造は規約さえ守れば好きにしていいとの事です。
しかし、その公式ページ以外でそのPHPに関する質問は絶対にしないように
とのことで、しかしながら質問のお返事が戴けません。
そしてわたしは、今回初めてPHPを弄った筋金入りの素人です。
そのPHP内に特定の言語をはじくというソースがあるらしいのですが、
どこがなんなのかもうさっぱりです。さんざん自力でいじり、探しましたが、
なにせhtmlも満足にいじれないわたくしにとって腐海のようです。
解決策とかそれ以前に、わたしはどうすれば良いでしょうか。
製作者様のお答えを根気よく待つべきでしょうか。ここで質問しても
大丈夫なものなのでしょうか。自力でPHPを1からミッチリやり込むべきでしょうか。
0122あぼーん
NGNG0123nobodyさん
03/06/21 12:42ID:iHlRBHxT>そのPHP内に特定の言語をはじくというソースがあるらしいのですが、
意味がわからないな。。言語って英語とか?それともPerlはじくとか?(これも意味不明
できればその配布サイト教えてよ。簡単なら同じ機能ついたの作ってやるから。
0124119
03/06/21 12:50ID:k+R30mgd即レスありがとうございます。
じゃあmultibyteは何の役割をするんでしょうか?
0125nobodyさん
03/06/21 13:18ID:HF7plXmgいえ、まさかそこまでして頂く訳には参りません。
その、これを申すとそのプログラムが特定できてしまいそうなのですが、
いわゆる『人工無能』のついたチャットなんです。
『人工無能』とはAと言えばBと答える、というような法則を覚えさせて
疑似会話が出来るものだと聞きました。
その『人工無能』が、特定の言葉、主に著作権関係の言葉と思われるのですが、
それを全て覚えません。
その機能を外すには、どこのソースを消せばいいのか、という話なのです。
お解りになりましたら、どうぞご助言願います。
0127123
03/06/21 13:35ID:KU8WU14M>その機能を外すには、どこのソースを消せばいいのか、という話なのです。
>お解りになりましたら、どうぞご助言願います
PHPならPHPゆいちゃっとのゆいぼっとかなっとは思うけど…、
とりあえず配布サイトのURL出してくれないとわからないです
0128nobodyさん
03/06/21 13:40ID:???スクリプトによって違うので
何とも言えません。
アドバイスは
PHP入門(エーアイ出版)
をかってPHPを勉強しましょう
ということです。
0129123
03/06/21 13:40ID:KU8WU14M0130あぼーん
NGNG0131123
03/06/21 13:51ID:KU8WU14M原因突き止めてるからちょっと待ってね。
0132nobodyさん
03/06/21 13:55ID:???あやふやな質問にいくらレスしても疲れるだけだっつーの。
0133125
03/06/21 14:00ID:HF7plXmgはい…1から入門するのが一番だとは思っております。
ご推薦の書物を探して読んでみます。ありがとうございます。
>123さん
あああッバレてるッ(泣笑
すみません。結局サイトまで明かす事になってしまいました。
ここであのプログラムの事を質問しても、問題はないのでしょうか?
あのちなみに、『ビートルズ』の実験はどちらでなさったのでしょうか…
わたしが躍起になって調べた結果、経済界要人とスポーツ選手は覚えます。
歌手、有名人、米国のアニメキャラクター、映画のタイトルなんかは総崩れです。
ほんとうに、お手を煩らわせてご免なさい。
ありがとうございます。
0134125
03/06/21 14:03ID:HF7plXmg製作者様はわたくしの無理な質問に散々付き合って下さりました方です。
その製作者様が、わたくしの所為でそう言われては申し訳が立ちません。
どうか、その旨ご理解願えませんか。
0135123
03/06/21 14:04ID:KU8WU14Mなんて処理は何処にも無かったよ。多分原因は他に有ると思う。
0136123
03/06/21 14:08ID:KU8WU14M正式には、利用規約違反にはなっちゃうだろうなぁ…。
でもまぁレイさんも忙しいんだろうし、こっちでバグ見つけて報告するのはダメってわけじゃないから、
とりあえず何処が悪いのか探してみるよ。
ちなみにビートルズの実験は自分のサーバーでやってる
0137125
03/06/21 14:15ID:HF7plXmgそうですか!
あの、ズブの素人が素人脳で考えてしたことは、著作権に触れる言葉を
覚えさせた時にも、datファイル内には追加されているのです。
その上で$no_msgが発動していますから、全てのphp内を$no_msgで検索したんです。
$no_msgに関係するソースはどれを外しても動かなくなりますので、
じゃあそういう仕様なのだろうかと……すみませんほんとうに何にも知らなくて……
でも、著作権に関係する言葉だけを覚えないなんていう
器用なバグがあるのでしょうか。
やっぱり規約違反ですね……どうしよう………
0138123
03/06/21 14:16ID:KU8WU14M勝手に引用して悪いけど、
ボットが『ジョン・レノン』は覚えますが、『ビートルズ』『ポール・マッカートニー』を覚えません………(?。
禁止用語か何かでしょうか。
覚えない単語に共通しているもの、それは「ー」。
ためしにやってみるとわかるよ。
それから言うと、実際には「覚えている」
つまり、データファイルには書き込まれているが、それが呼び出されないのが原因らしい。
これ以上はまだわからない
0139123
03/06/21 14:18ID:KU8WU14Mレイさんがこのスレッドを見てらっしゃるかどうかは知らないけど、
原因見つけてバグ報告する事になっても、とりあえずこの事は黙っておくよ。
0140132
03/06/21 14:22ID:???やってて酷い目にあった経験があったものでw
原因は正規表現とか置換とか?
(スク読んでないけど)
マルチバイトのやつじゃなければ、mb_で試してみるとか。
0141125
03/06/21 14:31ID:???…………解りました………!
びっくりしました。そうだったんですね!なるほど!ほんとだ!
だからミッキーマウスもアーノルド・シュワルツネッガーも
オードリー・ヘプバーンもマリリン・モンローもダメだったんですね!
………アレ?だけどタモリもはじかれます。
すみません本当に。もしレイさんがここをご覧になった暁には、
レイさんの取られます処置に従おうと思います。
こんなに人目に触れる場所なので、遠からず彼もご覧になるかと思いますが……
いろいろ手を尽くして下さって、本当にありがとう。
>132さん
いえ、そもわたくしが全ての元凶ですので………
レイさんに黙ってここに書き込みするのに、後ろ暗いのです。
ほんとうにごめんなさい。
うわあ…だんだん自分がネットの契約違反者になっていく……
ネットの契約書を読むたびにそんな違反は普通に使っててしないだろうと
思っていましたが、初めて解りました。うう。
0143あぼーん
NGNG0144123
03/06/21 14:59ID:KU8WU14Mでも私が修正しようとすると、ややこしいやり方になっちゃう(しか知らない)から、
どう修正するかは、レイさんにおまかせするよ。
とりあえずサポ板に書き込みに逝って来まふ
0145125
03/06/21 15:04ID:???何から何までありがとうございました。
ご恩とご好意、忘れません。
これに懲りて、ちっとは自力でプログラムを弄れるようにお勉強いたします。
…とりあえずわたしも理系学生のはしっこですし(泣
123さん、132さん、本当にありがとうございました。
>142さん
心にズキンと響くイイお言葉ですねがんがれ。
ありがとうございます。がんがります。
0146nobodyさん
03/06/21 15:06ID:???0147123
03/06/21 15:40ID:???ほいじゃね。
0148nobodyさん
03/06/21 16:09ID:3yZp62xoというデータがPOSTされてくるので、既存のログファイルに、
POSTされたIDがあればエラー、なければデータ追加するには
どうすればいいでしょうか。
IDは固定長、dat1~3は可変長のデータです。
0149あぼーん
NGNG0150nobodyさん
03/06/21 16:39ID:???どこで悩んでるの?
0152nobodyさん
03/06/21 17:08ID:VyXOk/2cchomp($temp);
print "$tempが入力されました\n";
}
これだとABCDと入力したら ABCDが入力されました、と出て、
while ($temp = <STDIN>) {
$temp2 = chomp($temp);
print "$temp2が入力されました\n";
}
これだとなぜか、1が入力されました、としか出ないのはなぜですか?(´・ω・`)
0153あぼーん
NGNG0155nobodyさん
03/06/21 21:15ID:???Cでいう
do〜while
と同じような働きをする
ものってありますか?
0157あぼーん
NGNG0158あぼーん
NGNG0159nobodyさん
03/06/21 21:59ID:???0160nobodyさん
03/06/21 22:30ID:???0161あぼーん
NGNG0162nobodyさん
03/06/22 02:42ID:???0163nobodyさん
03/06/22 02:49ID:???0164影
03/06/22 07:56ID:???$hoge = file ( "test.log" );
echo "<table border=1>";
for ( $a = 0 ; $a < count($hoge) ; $a++ ){
echo "<tr>";
for ( $b = 0 ; $b < 5 ; $b++ ){
echo "<td>";
echo "$hoge[$a]";
echo "</td>";
}
echo "</tr>";
}
echo "</table>";
と、やってみますたが、見事に失敗しますた(ウトゥ
0165nobodyさん
03/06/22 10:53ID:???どういう内容のtest.logに対して、どう表示したいの?
for( a ){
for( b ){
echo hoge( a );
}
}
になってるから、bの回数分(5回)だけ同じ$hoge[$a]を1行に出力するよ。
0166nobodyさん
03/06/22 13:16ID:v4BkkZfH456
789
10
みたいに表示したいので、半日悩んだ末↓でやったらとりあえず、上手くいったんだけど、
なんかしっくりこない。(echo"$k";が2回あるあたり)
もっとスマートなやり方ありますか?
$k=1;
for ($i=1;$i<=4;$i++) {
if ($k==10) {
echo"$k";
break;
}
for ($j=1;$j<=3;$j++) {
echo "$k";
$k++;
}?><br><?php echo ("\n");
}
0167nobodyさん
03/06/22 13:24ID:???あんた・・・
for($i=1;$i<=10;$i++){
echo $i;
if($i%3==0)echo"<br>\n";
}
0168PHPDQN
03/06/22 13:31ID:???reset($hoge);
echo "<table>\n";
foreach ($hoge as $key->$val) {
if ($key % (NUMCOLS - 1) == 0) {
echo "<tr>\n";
}
echo "<td>".$val."</td>\n";
if ($key % NUMCOLS == 0) {
echo "</tr>\n";
}
}
echo "</table>\n";
0169nobodyさん
03/06/22 13:45ID:???やさしいね。でもそこはかとなく間違ってる。
×foreach ($hoge as $key->$val) {
○foreach ($hoge as $key=>$val) {
×if ($key % (NUMCOLS - 1) == 0) {
○if ($key % NUMCOLS - 1 == 0) {
◎if ($key % NUMCOLS == 1) {
あとecho "</table>\n";の前に
$n = count($hoge) % NUMCOLS;
if ($n > 0) {
for ($i = 0; $i < $n; $i++) {
echo "<td></td>\n";
}
echo "</tr>\n";
}
かな。
0171166
03/06/22 14:04ID:???ありがと
こんな簡単に出来るのか
>>168-169
これはテーブルで表示できるのかな
おれのレベルじゃまだ理解できない・・・
ちょと試してみます
0172nobodyさん
03/06/22 15:44ID:TMm6ngKF普通にリロードできるようにするにはどうやるの?
0175nobodyさん
03/06/22 16:23ID:???172じゃなくて 173だった。
0177影
03/06/22 21:01ID:???サンクスコ
<table border=1>
<td>ほげ1
</td>
</tr>
<tr>
<td>ほげ2
</td>
<td>ほげ3
</td>
<td>ほげ4
</td>
<td>ほげ5
</td>
<td>ほげ6
</td>
</tr>
<tr>
<td>ほげ7
</td>
<td>ほげ8
</td>
<td> </td>
<td> </td>
<td> </td>
</tr>
</table>
てな具合に、最初の行が上手く動作してくれないんだけど、原因が見当つかない
0178PHPDQN
03/06/22 22:40ID:???×if ($key % (NUMCOLS - 1) == 0) {
○if ($key % NUMCOLS - 1 == 0) {
◎if ($key % NUMCOLS == 1) {
$key == 0 の時にもTRUEになるためには一番上が必要でした
0179影
03/06/23 04:05ID:???foreach ($hoge as $key=>$val) {
if ($key == 0) {
echo "<tr>"."\n";
}elseif ($key % NUMCOLS == 1) {
echo "<tr>"."\n";
}
とか、やってもダメですた・・・(ウトゥ
<table border=1>
<tr>
<td>ほげ1
</td>
</tr>
<tr>
<td>ほげ2〜
最初の<tr>が出現したのみ。
1行目だけなんで・・・(つД`)
0180
03/06/23 04:06ID:vjy3Tk6shttp://strangeworld-honten.com/cgi-bin/bbs.cgi
0181nobodyさん
03/06/23 04:12ID:???0182あぼーん
NGNG0183PHPDQN
03/06/23 04:23ID:???foreach ($hoge as $key=>$val) {
if ($key % (NUMCOLS - 1) == 0) {
echo "<tr>"."\n";
} elseif ($key % NUMCOLS == 1) {
echo "<tr>"."\n";
}
0184あぼーん
NGNG0185影
03/06/23 08:30ID:???背中に手が届きそうで届かない!
漏れにプログラムは向いてないんか!?
>>183
それだと、$key が 8 になった時も
if ($key % (NUMCOLS - 1) == 0) にマッチして<tr>が出てくるべさ。
するとテーブルが崩れてしまうべさ。
昨日>>168見た時は、サパーリだったけど、今は何をどうしたらいいかが
解ってきたような気がする・・・
後は、何とか自力で・・・出来たらいいなぁ〜(´¬`)
ところで、今回は定数に5を代入してるけど、これ変数じゃだめぽ?
あっ、NUMCOLS-1 とかしてるから変数じゃマズイか・・・
yata-でけた〜!!!!!!
0186影
03/06/23 08:32ID:???reset($hoge);
echo "<table border=1>"."\n";
foreach ($hoge as $key=>$val) {
if ($key == 0) {
echo "<tr>"."\n";
} elseif ($key % NUMCOLS == 0) {
echo "<tr>"."\n";
}
echo "<td>".$val."</td>"."\n";
if ($key % NUMCOLS == 4) {
echo "</tr>"."\n";
}
}
$n = count($hoge) % NUMCOLS;
if ($n > 0) {
for ($i = 0; $i < NUMCOLS-$n; $i++) {
echo "<td> </td>"."\n";
}
echo "</tr>"."\n";
}
echo "</table>"."\n";
0188影
03/06/23 12:41ID:???$key % NUMCOLS == 1
だと、$key が、1,6,11・・・の時にマッチしてしまい、出したい所に<tr>が出ない。
なのでやっぱりここは
$key % NUMCOLS == 0
if ($key % NUMCOLS == 4)
の部分は、5列って事しか考えていなかった為、ちょい修正して
if ($key % NUMCOLS == NUMCOLS-1)
>>169が書いてくれた空セル追加は
for ($i = 0; $i < $n; $i++)
だと、例えば余剰が4の時は、4つ空セルを作ってしまう。
空セルは列の数から余剰を引いた分だけ欲しいので、
for ($i = 0; $i < NUMCOLS-$n; $i++)
こんな厨な漏れに付き合って下さった PHPDQN 様、ありがとうございました!
0189影
03/06/23 12:43ID:???$filename = "test.log";
$hoge = file ($filename);
define("NUMCOLS",5); // 列の数
reset($hoge);
echo "<table border=1>"."\n";
foreach ($hoge as $key=>$val) {
if ($key == 0 || $key % NUMCOLS == 0) {
echo "<tr>"."\n";
}
echo "<td>".$val."</td>"."\n";
if ($key % NUMCOLS == (NUMCOLS-1)) {
echo "</tr>"."\n";
}
}
$n = count($hoge) % NUMCOLS;
if ($n > 0) {
for ($i = 0; $i < NUMCOLS-$n; $i++) {
echo "<td> </td>"."\n";
}
echo "</tr>"."\n";
}
echo "</table>"."\n";
0190nobodyさん
03/06/23 16:28ID:???$c += $c % 5
for ($i = 0, $j = 0, $td = '', $tr = ''; $i < $c; $i++, $j++) {
$v = isset($hoge[$i]) ? $hoge[$i] : " ";
$td .= sprintf("<td>%s</td>", $v);
if ($j == 4) {
$tr .= sprintf("<tr>%s</tr>", $td);
$j = -1;$td = '';
}
}
printf("<table>$s</table>", $tr);
0191nobodyさん
03/06/23 17:00ID:ghLrcRD3ヒアドキュメントに関して教えて欲しいのですが、
ヒアドキュメント内に、式、というか関数を書き、その結果を
使いたいのですが、うまくいきません。
$buf = <<<EOD;
a = {$db->query($_POST['a'])},
b = ### 以下同じように...
EOD;
のような感じに書き、print $buf; で
a = 値, b = 値 となるようにしたいのですが、
Parse error: parse error, expecting `'}'' in ...
となってしまいます。ヒアドキュメントではなくて、
$buf .= "a = ".$db_con->quote($_POST['a']).",";
と続けていくしかないでしょうか?
0192影
03/06/23 19:16ID:???↑この行ってセミコロンいるんですか?
0193191
03/06/23 19:22ID:ghLrcRD3すみません。手コピーした時にミスりました。
セミコロンいらないです。
書き写しをミスっただけなので、セミコロンは本質的な
問題じゃありません。すみませんです。
0194影
03/06/23 19:33ID:???a → $a
, → ;
今の漏れにはこれくらいしかミスがハケーンできず。
あとは、偉い人よろ。
0195nobodyさん
03/06/23 20:41ID:???$buf = <<<EOD
EOD;
~ このセミコロンはだめだと思うが?
EOD
;
こうだろ。
$buf = <<<EOD;
EOD
でも良いとおもうが
0196nobodyさん
03/06/23 20:49ID:???つーかそれ以前にヒアドキュメント内には関数を書けんわけだが。
「以下同じように」なことをしたいんならwhile、for、foreachのどれかでしょ。
0198191
03/06/23 21:05ID:???ども。書けない事がわかったのでヒアドキュメントを使うのを
やめられます(^^;
>>194, 197
いえいえ。アクションを起してもらえた事がうれしいので、
感謝しています。ありがとう。
0200nobodyさん
03/06/24 00:57ID:???0201nobodyさん
03/06/24 03:00ID:/ljDW6SS返信機能も付けたい・・・↓
ttp://blue.ribbon.to/~goonet/pppbbs.php
どうしたらいいですか?
■ このスレッドは過去ログ倉庫に格納されています