【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
0611608
03/08/05 11:53ID:V6DdtSg7<table>使わないと全体的に左に寄ってしまいますよね。
バランスが悪いので何か対処法はありませんでしょうか?
0613nobodyさん
03/08/05 12:38ID:???よく見りゃつっこみどころ満載の「HTML」だ。
0614あぼーん
NGNG0615あぼーん
NGNG0616nobodyさん
03/08/05 13:16ID:???function convert_code (&$val,&$key,$opts){
$val = mb_convert_encoding($val,$opts[0], $opts[1]);
}
array_walk ($array, 'convert_code', array('EUC-JP', 'SJIS'));
可変引数は渡せないから第3引数にmixed型を渡すように
なっている。
だから配列もしくはオブジェクトなら渡せる。
0617nobodyさん
03/08/05 16:11ID:???CSSを使用すれば余白の制御など細かく出来る。
CSSが大変そうなら <blockquote> タグあたりでどうかね?
0618nobodyさん
03/08/05 17:37ID:woPpy0rJ前略
mysql_query(insert into T1(f1,f2,...) values('$1','$2'...));
mysql_query(insert into T2(fA,fB,...) values('$A','$B'...));
mysql_query(insert into T3(fa,fb,...) values('$a','$b'...));
といったように、一つのphpファイルに連続して複数のテーブルに入力
しようとしても、最初のクエリのみしか受け入れてもらえません。
フォームからの変数は問題なく受け取っており、エラーになるわけでも
ありません。
どなたか、原因と対処を御教示下さい。 m(_ _)m
0619618
03/08/05 17:42ID:woPpy0rJ0621618
03/08/05 20:07ID:HahDoJ1D$result1 = mysql_query("insert into T1(f1,f2,...) values('$1','$2'...)");
$result2 = mysql_query("insert into T2(fA,fB,...) values('$A','$B'...)");
$result3 = mysql_query("insert into T3(fa,fb,...) values('$a','$b'...)");
こんな感じで記述してあります。618は筆足らずでした。。
0622あぼーん
NGNG0623あぼーん
NGNG0624あぼーん
NGNG0625nobodyさん
03/08/05 21:38ID:???mysql_query()を呼んだ後は、返り値がTRUE(非ゼロ)またはFALSEのどちらかを確認して、
もし返り値がFALSEならmysql_errno()とmysql_error()を確認しよう。
さもなくば「エラーが出てない」とは言えない。
0626618
03/08/05 22:25ID:HahDoJ1D感謝!!
早速確認してみます。 ・・・でも、localhostで動作確認したときは
問題なく全入力出来たのに、、、
どういう可能性が考えられるのでしょう?
0627nobodyさん
03/08/05 23:04ID:???ありがとうございました。マニュアル眺めてるだけでは、なかなかわからんもんです。
0628nobodyさん
03/08/06 09:32ID:TaNZWYB4仕様?
0630あぼーん
NGNG0631あぼーん
NGNG0632nobodyさん
03/08/06 12:52ID:9CpMMik0popenでquota呼んだら
>Disk quotas for user xxxx (uid xxxx): none
しか来ないんだけど。
telnetだとusageとかgraceとか出るのにー
何か手ないすか?
0633あぼーん
NGNG0634nobodyさん
03/08/06 13:31ID:???伏字にしているのはエスパー募集だからですか?
0635nobodyさん
03/08/06 15:15ID:???とりあえずシェルから quota 呼ぶのと PHP(HTTPデーモン経由)から quota 呼ぶのとで
ユーザーが違ってると言ってみる
0637nobodyさん
03/08/06 18:46ID:wRB10Bh6日本語と英数が混じってると最後が・になったりして
おかしくなる場合があります。どうすれば上手くできるんでしょうか。
使ってるサーバーがmb関数使えないサーバーなんですけどできますかね。
0638nobodyさん
03/08/06 20:10ID:+64gfyUC0639nobodyさん
03/08/06 20:21ID:???漢字コード変換
http://www.spencernetwork.org/
0640nobodyさん
03/08/06 20:52ID:???文字コードが一定なら正規表現で1字ずつ数えれば良かろう。
([\x00-\x7F]|[\x8E\xA1-\xFE][\xA1-\xFE]|\x8F[\xA1-\xFE]{2})
とかね。似たような関数をperlから移植する手もある↓
ttp://www2u.biglobe.ne.jp/~MAS/perl/waza/strcut.html
0641nobodyさん
03/08/07 15:46ID:oxPy+Rmw「ID:ジャンル名:所属ID」
という再帰テーブルを作りました。
この場合、直下にあるデータ一覧は所属IDをIDで検索すればすぐ出ますが、
トップからのパスはジャンル>所属しているジャンルID>さらに上のID…>
トップと検索して配列にセット、それを反転してトップ>ジャンル>その下の
ジャンルと整形しています。
この場合何度もSELECT文を出さなければなりませんが、もう少し効率的に
やる方法はないですか?
0643404.HDML ◆StMXML.EXE
03/08/08 01:59ID:???取得する方法は有りますか?
それとも、リモートファイルの内容を一時ファイルとして保存したものをfilesize
関数で読み出すべきでしょうか?
0644nobodyさん
03/08/08 02:17ID:???相手がHTTPで、且つそのヘッダでContent-Lengthが出力されてれば、
そこから取得することは可能。他のプロトコルは、やはり一度ナメるしかないんじゃないかな。
0645404.HDML ◆StMXML.EXE
03/08/08 02:30ID:???リモートからContent-Lengthが返って来ない場合は取得不可なのですね。
有難うございます。
後、うっかり「HTTPでオープン」って書くの忘れてました。すみません。
0646404.HDML ◆StMXML.EXE
03/08/08 03:15ID:???fread関数からデータを読みこみ、それをstrlen関数を使ってサイズを測る、、
という方法を試したら、何故か8192バイト以上が読みこめなかったので、
fgets関数をEOFを検出するまで回し、その過程で取得したデータを一本に
繋げてstrlen関数で読むという方法で何とかなりました。
0647
03/08/08 03:27ID:0z0bK8pF0648nobodyさん
03/08/08 03:33ID:???サーバーが停止している場合はローカル上のファイルを
includeするようにしたいのですが、
どうすればいいのでしょうか?
fopenか何かでリモートに繋ぎ、ダメだったらローカルを読む、と。
0651nobodyさん
03/08/08 09:56ID:LraV0Dkuありがとうございました。
別の質問です。
MYSQLでAutoIncrementのフィールドがあるとき、INSERTしたあと
現在のその数を取得するには再びSELECTするしかないのでしょうか?
登録IDを作りたいと思っていて、PHP側でキーを生成してPrimary設定の
フィールドにINSERTするよりは綺麗な連番になるかと思ったんですが、
保存後にIDが何番になったか再取得しないと表示できないのです、、、
0654nobodyさん
03/08/08 13:18ID:LraV0Dkuではどうやって再取得したらよいでしょうか。
今回の場合はそこまでクリティカルではないので問題ではないですが。
mysql_affected_rowsを利用するか、mysql_insert_idでしょうか。
前者の場合は再取得前に次の値がセットされればダメですし、
後者はいまいち使い方が分からない。。。
0655nobodyさん
03/08/08 13:28ID:LraV0Dku$info = mysql_fetch_array(mysql_query("show table status from DB_USER like 'TABLE_NAME'",$MyLink));
$inserted_id=$info[Auto_increment] - 1;
という方法もありますが、これでもチャットレベルではダメかも。
0656nobodyさん
03/08/08 14:17ID:???http://www.php.net/manual/ja/function.mysql-insert-id.php
マニュアルのとおり、単純に mysql_query した次の行で $foo = mysql_insert_id;
と書けば $foo にIDが取れる寸法のはず。
link識別子を使い分ける場合は明示的に指定する必要がある
0657656
03/08/08 14:17ID:???0658nobodyさん
03/08/08 18:42ID:???コードがSJISになってるファイルアップロードページで処理したら
ファイル名に上に出てきたみたいに「ソ」とか「構」とか入ってる時
$_FILES に格納されるファイル名がその文字以降になっちまったよ。
とりあえずアップロードページのコードをEUCに強制的に変換して
逃げたけどSJIS逝ってよしだな。
0659nobodyさん
03/08/08 19:01ID:???別のマニュアルでは分かりにくかったですけど、これで何となく分かりました。
>AUTO_INCREMENTEDカラム用に生成されたIDを返します。
これを見ると、モロに求めていた機能のようですね。よかった。
0660404.HDML ◆StMXML.EXE
03/08/08 19:05ID:???目的は、リモートファイルの内容&サイズを取得する事なので、
本体も一緒に貰わないとイカンのです。
0661nobodyさん
03/08/09 10:16ID:i34+tz6Yその飛んできた送信ボタンの名前を取得することって可能なんでしょうか?
またどのようにするのでしょうか?
0663nobodyさん
03/08/09 10:40ID:???<form method=post>
<input type=submit name=hogehoge value=booboo>
<input type=submit name=aaaaaaaa value=booboo>
<input type=submit name=bbbbbbbb value=booboo>
</form>
<?phpinfo(32);?>
0664nobodyさん
03/08/09 10:54ID:i34+tz6Yその通りなんですが
回答の意味が分からなかったのでこっちで教えていただこうと
思ったんです。すみませんでした。
>>663
ありがとうございます。
しかし質問が悪かったみたいで知りたいことはちょっと違いまして
例えば商品が複数ならんであるページで
それぞれ商品のカゴに入れるというボタンを押したとき
そのボタンの名前を取得してそのボタン名+price みたいな名前の
パラメータの値と個数をかけた値を足していく というような感じに
したいのです。
長くなって申し訳有りません。
0665nobodyさん
03/08/09 12:44ID:???$_POST['xx']の表記がいまいちわかりません。
やりたいのはこんな感じです↓
function check($yyyy,$mm,$dd){
$yyyy=trim(mb_convert_kana($_POST['$yyyy']),"sn");
$mm =trim(mb_convert_kana($_POST['$mm']),"sn");
$dd =trim(mb_convert_kana($_POST['$dd']),"sn");
if (!checkdate($mm,$dd,$yyyy)){
(以下略)
0666nobodyさん
03/08/09 12:49ID:???あなたの脳内では、ボタン名というのはnameの事?それともvalueの事?
「ボタン名+price」というのはどこに表示したいの?それともhiddenにしてfromに忍ばせたいの?
どうしてボタンの名前の取得が必要なの?
fromを商品毎に用意してそれぞれにsubmitとhiddenで値を定めれば良いんじゃないの?
どうしても全体を1つのfromにまとめたいの?
0668nobodyさん
03/08/09 17:42ID:???test.csv
a,b,123
c,d,456
を
<table><tbody><tr>
<td>a</td><td>b</td><td>123</tr>
<td>c</td><td>d</td><td>456</tr>
</tr></tbody></table>
のように表示することは可能でしょうか?
よろしくお願いします。
0670nobodyさん
03/08/09 18:57ID:???買った本に載ってなかったんで(正直ショックだった
何か参考になるサイト等がありましたらお願いします。
0671nobodyさん
03/08/09 19:22ID:???$a=file("test.csv");
echo "<table><tbody>\n";
foreach($a as $b){
$b=rtrim($b);
echo "<tr>";
$c=explode(",",$b);
foreach($c as $d){
echo "<td>$d</td>";
}
echo "</tr>\n";
}
echo "</tbody></table>";
0672nobodyさん
03/08/09 19:39ID:???0673nobodyさん
03/08/09 20:31ID:i34+tz6Yなんてある配列の数を1つ減らしたりしたいのですが
どのようにしたらよいのでしょうか?
0674nobodyさん
03/08/09 20:42ID:stysPTCZ物凄くでかいオッパイをぷるんぷるんに揺らしながらハゲオヤジにバックから突かれます。
最後のオナシーンではなんととうもろこし挿入!
ブツブツで気持ちいいんでしょうね。
無料ムービー観てね。
http://www.pinkfriend.com/
0676nobodyさん
03/08/09 21:10ID:4ZC+Pkmahttp://endou.kir.jp/marimo/link.html
0677直リン
03/08/09 21:13ID:V17SBkWV0678nobodyさん
03/08/10 00:16ID:9fsvpXwnif(isset($x)) と if(!$x) はどっちがいいんでしょうか?何か違いがあるんですか?
0680の
03/08/10 00:19ID:iKMsAzncerror_reporting(E_ALL);
とかして動かしてみな。
0682nobodyさん
03/08/10 07:14ID:fzrQOeyO何度も行き来させる場合、
セッション変数にデータを入れて持たせるのと、
ページごとにMySQLから読ませるのと、
どっちが負荷が軽いですか?
0683nobodyさん
03/08/10 08:11ID:???あんまりイクナイですか?
ページごとにあるwebサイトからそのぐらいのデータをダウンロード
するのをさけたいのです
0684nobodyさん
03/08/10 23:48ID:???パスワード有無の判別だけでも出来れば解凍時にパスワード入力を
施すようにして、あとはunzipを呼び出すなんて事も出来そうなんですが。
さーぱーりわかりません。
0685nobodyさん
03/08/11 00:23ID:???1060417366 -> yyyy/mm/dd hh:mm:ss
みたいな。
0686nobodyさん
03/08/11 00:38ID:???菅さんとこのあぷろだが暗号zipを判別した筈。perlだけどロジックをぱくればよろしい。
http://sugachan.dip.jp/download/uploader.php
>>685
http://jp.php.net/manual/ja/function.date.php
0687nobodyさん
03/08/11 00:52ID:???マニュアルの日付の項をちょっとでも読んだのならいくらでも出てくるのだが?
http://jp.php.net/manual/ja/ref.datetime.php
0688nobodyさん
03/08/11 02:56ID:MrZa7J+S正規表現に関することで悩みが…。
<?php
if (preg_match ("/[ぁ-ん]{5}/", "あいうえお")) {
print "A match was found.";
} else {
print "A match was not found.";
}
?>
っていうソースのファイルを開いたんですわ。
そしたら
Warning: Compilation failed: range out of order in character class at offset 4 in d:\public\root\c.php on line 2
A match was not found.
って表示が出てくるんですよ。
これなら 大丈夫なんですけどね…。
<?php
if (preg_match ("/[a-z]{5}/", "abcde")) {
print "A match was found.";
} else {
print "A match was not found.";
}
?>
日本語だとうまくいかないようなんですが、なんでなんでしょうか?
pregは非対応だから。mb_eregでやれ。
0691nobodyさん
03/08/11 06:45ID:ugZ5Rko0http://endou.kir.jp/yuminet/link.html
http://endou.kir.jp/marimo/link.html
0692nobodyさん
03/08/11 07:45ID:vd5Ibrol#!/usr/bin/perl
# CGIヘッダの出力
print "Content-type: text/html\n\n";
while($HP1 > 0) and ($HP2 > 0){
srand1;
srand2;
}
# Player1
$HP1 = 400 - $kougeki1;
$KIK1 = 60;
$PAN1 = 20;
$DF1 = 10;
# Player2
$HP2 = 300 - $kougeki2;
$KIK2 = 100;
$PAN2 = 40;
$DF2 = 0;
# Player1
$kougeki1 = srand;
# Player2
$kougeki2 = srand2;
0693nobodyさん
03/08/11 07:46ID:vd5Ibrolif($mode == 1){
$offense = \%you;
$defense = \%my;
}elsif($mode == 2){
$offense = \%my;
$defense = \%you;
}
if( int(rand(2)) ){
#punch
$damage =
$offense->{'$PAN1'} - $defense->{'$DF2'};
if(!$rand = int(rand(5))){
#half
$damage = int($damage / 999);
}elsif($rand < 3){
#miss
$damage = "";
}
}else{
#kick
$damage =
$offense->{'$KIK1'} - $defense->{'$DF2'};
}
0694nobodyさん
03/08/11 07:46ID:vd5Ibrolif($mode == 1){
$offense = \%you;
$defense = \%my;
}elsif($mode == 2){
$offense = \%my;
$defense = \%you;
}
if( int(rand(2)) ){
#punch
$damage =
$offense->{'$PAN2'} - $defense->{'$DF1'};
if(!$rand = int(rand(5))){
#half
$damage = int($damage / 999);
}elsif($rand < 3){
#miss
$damage = "";
}
}else{
#kick
$damage =
$offense->{'$KIK2'} - $defense->{'$DF1'};
}
($damage < 0) and ($damage = 0);
$defense->{'HP1'} -= $damage;
($damage < 0) and ($damage = 0);
$defense->{'HP2'} -= $damage;
0695nobodyさん
03/08/11 07:47ID:vd5Ibrolprint "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01//EN\">\n";
print "<html>\n";
print "<head><title>対戦バトル</title></head>\n";
print "<body>
<p>Player1:体力は$HP1です</p>
<p>Player2:体力は$HP2です</p>
<p>Player1は<big>$kougeki1</big>のダメージを与えた。</p>
<p>Player1は<big>$kougeki1</big>のダメージを受けて混乱した。
<p>Player1は<big>$kougeki1</big>のダメージで野原でクソをし始めた。
<p>Player2は<big>>$kougeki2</big>のダメージを与えた。</p>
<p>Player2は<big>>$kougeki2</big>のダメージを受けて裸踊りを始めた。
<p>Player2は<big>>$kougeki2</big>のダメージで光浦なみの女にレイプし始めた。</p></p></body>\n";
print "</html>";
0696nobodyさん
03/08/11 07:50ID:vd5Ibrolパンチとキックが出る
パンチは5分の3で命中
5分の2はミス
命中すると5分の1のは攻撃力が半減
さらに相手がキックをすると、パンチ力が半減
キックはふつうに当たる
HP0になった方が死亡
0697_
03/08/11 08:08ID:???0698_
03/08/11 08:16ID:???0700nobodyさん
03/08/11 11:58ID:vd5Ibrol0701673
03/08/11 12:26ID:UQrY/a3dありがとうございます。
しかし、$HTTP_SESSION_VARS["a"]--としても
count($HTTP_SESSION_VARS["a"])の数は減っていないみたいなんですが
何かおかしいのでしょうか?
0702nobodyさん
03/08/11 13:11ID:???>675 のは配列の要素が持っている数値を減らす方法。
>673 は配列の要素を削りたいんだろ?なら↓の関数でどう?
http://www.php.net/manual/ja/function.array-splice.php
0703あぼーん
03/08/11 13:12ID:???0704あぼーん
03/08/11 13:13ID:???0705688
03/08/11 15:31ID:bEOLhIPG<?php
if (mb_ereg("/[ぁ-ん]{5}/", "あいうえお")) {
print "A match was found.";
} else {
print "A match was not found.";
}
?>
結果が A match was not found.
なんですけど、まだ何かおかしいところあるんでしょうか?
0707nobodyさん
03/08/11 17:48ID:+bwnIYmo一応サーバーはKTplanを使っています。
Linuxサーバーのようです。PHP Version 4.2.2
サンプルの本を使いながらメールフォームを試してるのですが、
「PHPでWebアプリケーションを作ろう」という1年ほど前に買った本では
文字コードEUC、改行LFで保存しています。
これは、formmail.html,formmail.php,formmail_lib.php
という、入力ページ、プログラム本体、ライブラリの3つのファイルと
jcode.php,jcode_mini.php
という、日本語処理のファイルをあげています。
これは問題なく動作しましたし、届いたメールも文字化けはしていませんでした。
ただ、メールの内容を確認するというページが無いので違うのを試しました。
「PHPによるWebアプリケーションサンプル」という本で
サンプルを試したところ、サンプルCDには、
Winユーザー向けの script_sjis用と
Linuxユーザー向けの script_eucという
2つがありました。
で、KTplanのサーバーはLinuxだし、上に書いたメールフォームは
EUCで保存して問題なかったので、Linux用のを使いました。
すると、届いたメールの内容が文字化けしていました。
試してみようと思い、Win用のsjis保存のを使ってみたら
問題なく文字化けしていませんでした。
この違いはどう考えればいいのでしょうか?
先に試した本のやつは、日本語変換用のファイルを使うので
そうなのかなと思いますが、次の本のやつは
メールを受け取る環境に合わせてsjisとEUC保存を使い分けるのでしょうか?
0708nobodyさん
03/08/11 17:53ID:0RwRz5Kmhttp://endou.kir.jp/akira/linkvp.html
0709_
03/08/11 18:09ID:???0710_
03/08/11 18:21ID:???■ このスレッドは過去ログ倉庫に格納されています