トップページphp
853コメント275KB

【PHP】初心者コーナー 3 Released【スローモード】

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん03/06/11 06:24ID:???
PHPに関するアホな質問はここで、マターリやろな。
ファイル 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 
0002nobodyさん03/06/11 06:24ID:???
■ 本家
 http://www.php.net/
■ 日本 PHP ユーザ会
 http://www.php.gr.jp/
■ PHP マニュアル
 http://www.php.net/manual/ja/
■ PEAR マニュアル
 http://pear.php.net/manual/ja/

■【待望】PerlユーザのためのPHP入門
 http://pc2.2ch.net/test/read.cgi/php/1046326634/l50
■PHP-users ML ヲチ
 http://pc2.2ch.net/test/read.cgi/php/1031734100/l50
■【PHP】Smarty【Template】
 http://pc2.2ch.net/test/read.cgi/php/1047225437/l50
■ PHP アップグレード報告スレッド
 http://pc2.2ch.net/test/read.cgi/php/987259309/l50
■ PHP + MySQL
 http://pc2.2ch.net/test/read.cgi/php/983250751/l50
■ PHP + PostgreSQL
 http://pc2.2ch.net/test/read.cgi/php/983128806/l50
■ PHP 関連の書籍 (但し PHP 出版系お断り)
 http://pc2.2ch.net/test/read.cgi/php/985315574/l50
■ perlスクリプト⇒phpスクリプト移植要望スレ
 http://pc2.2ch.net/test/read.cgi/php/1035700861/l50
■ YomiサーチPHP化プロジェクト
 http://pc2.2ch.net/test/read.cgi/php/1044371877/l50
■ せっかくだからPHPで掲示板作ってみませんか?
 http://pc2.2ch.net/test/read.cgi/php/1035700861/l50
0003nobodyさん03/06/11 06:27ID:kzWk23HI
よっしゃ、3ゲット
0004nobodyさん03/06/11 06:31ID:???
う・ん・こ♪
0005nobodyさん03/06/11 06:32ID:???
4 げっちゅー
0006nobodyさん03/06/11 06:32ID:???
うんこかぶった
0007nobodyさん03/06/11 13:44ID:lWApjllN
phpでmysqlのテーブルの削除・コピーをおこなう命令を教えてください。
0008nobodyさん03/06/11 13:53ID:???
>>7
PHPに関しては、このあたりのページをブックマークしておくと便利だよ。
http://www.php.net/manual/ja/ref.mysql.php

MySQLに関しては、
http://www.mysql.gr.jp/jpdoc/4.0/manual.ja_toc.html
0009nobodyさん03/06/11 13:55ID:???
MySQLのマニュアルの見にくさは異常
0010nobodyさん03/06/11 22:32ID:???
クラスに詳しいサイトないですかね?
英語でもいいんで・・
どなたかタノム
0011nobodyさん03/06/12 00:25ID:???
>9
確かに(見難さには)同意するが、それはPHPのマニュアルに
慣れすぎてる部分が多分にあるからかと。
あとmysql.comの方は結構使えるで。
0012nobodyさん03/06/12 23:40ID:FX+eijnO
質問です。
ttp://www.komonet.ne.jp/script/f_mail2/komomail.htm
ttp://www.komonet.ne.jp/script/f_mail2/komomail.phps(PHPソース)
上記のメールフォームを改造してチェックボックスを配置したいのですが、
HTML側のソースは、
<input type="checkbox" name="abc[]" value="hoge01">hoge01
<input type="checkbox" name="abc[]" value="hoge02">hoge02
<input type="checkbox" name="abc[]" value="hoge03">hoge03
<input type="checkbox" name="abc[]" value="hoge04">hoge04
を追加し、PHP側のソースに
for( $i=0; $i<count($abc); $i++ ) {
print $abc[$i] . "<br>\n";
}
print "<input type=\"hidden\" name=\"sabc\" value=\"$abc\">\n";
を追加しまして動作させたところ、
確認ページでは正常に表示されたのですが、ソースを見ると
<input type="hidden" name="sabc" value="Array">
とvalueの値がどのチェックボックスを選択しても「Array」になってしまい、
このまま送信してもメールにも「Array」と表示されてしまいました。
この「Array」の部分を「hoge01」「hoge01,hoge04」
のように表示させるにはどうすればよいのでしょうか。
宜しくお願いします。
0013nobodyさん03/06/13 00:03ID:???
PHPソースみじけ
value=\"$abc\"ここはArayだかだ$abc[$i]だとおもうど、
00141203/06/13 00:20ID:???
>>13
それも試してみたのですが、
value=""
となり、何も表示されなくなってしまいました…

書き忘れましたが、
function SendMessage()内には
globalに $sabc を、それと
$msg .= "選択肢 = $sabc\n";
を追加してあります
0015nobodyさん03/06/13 00:37ID:???
書いたものをみせないのかい?
0016nobodyさん03/06/13 00:42ID:???
for( ) {
}
print "value=\"$abc\">\n";

こうなってるから。
00171203/06/13 01:19ID:???
>>15
ttp://www.komonet.ne.jp/script/f_mail2/komomail.phps
のソースに>>12>>14を追記しただけなので全文の必要は無いかと
勝手に判断してしまいました…

>>16
それは…
for(){
}
内にprint "value=\"$abc\">\n"; を入れなければならない、
ということでしょうか?
0018nobodyさん03/06/13 01:30ID:???
まず配列を$abcなんて呼び出すのがおかしい
必ずインデックスをつけて呼び出さなければならない。($abe[$i])

あなたのソースの一番下の行を$abc[$i]としても
$iのなかに何も値が入っていないので、
おかしなことになります。
ちゃんと$iのなかに数字を入れましょう
00191603/06/13 01:52ID:???
読み間違えてた。スマソ。
> この「Array」の部分を「hoge01」「hoge01,hoge04」
ってことなら、
value=\"".implode(",",$abc)."\" みたいにして、
配列を文字列に変換しなきゃいけない。
00201203/06/13 02:19ID:???
>>18
インデックスというのは
$abc[0] = hoge01
$abc[1] = hoge02
$abc[2] = hoge03
$abc[3] = hoge04
というやつですよね?

>>19
おぉ!出来ました!implode…配列要素を文字列により連結する、
というヤツですね?これで全ての問題が解消されました。
>>13さん、>>15さん、>>16=>>19さん、>>18さん、
どうも有難うございました。
PHP勉強し始めてまだ日が浅いのですがもっと努力します。
0021nobodyさん03/06/13 02:21ID:???
$abc = array("さる","いぬ","ひつじ","うま","じゃこうねこ");
for($i=0;$i<count($abc);$i++){
print "<input type='checkbox' name='sabc' value='".$abc[$i]."'>".$abc[$i]."<br>\n";
}
こういうことなのか? PHP初心者なのか?
0022nobodyさん03/06/13 02:22ID:???
あでで
0023nobodyさん03/06/14 00:13ID:oYY8Bt5l

$hensu が a か b か c か d か
と言うのを書きたいんですけどうまく出来ません。
どうやったらいいんでしょうか。

ちなみに下記のように書きました。

$hensu = a;

if($hensu == (a||b||c||d)){
echo "あってます";
} else {
echo "違います";
}
0024nobodyさん03/06/14 00:50ID:???
>>23
$hoge = array("a","b","c","d");

if (in_array($hoge,$hensu)) {
 echo "あってます";
} else {
 echo "違います";
}
0025nobodyさん03/06/14 01:14ID:???
>23

if ($hensu == 'a' || $hensu == 'b' || ...) {
 yes;
} else {
 no;
}

if (preg_match("/^[a-d]$/", $hensu)) {
 yes;
} else {
 no;
}
0026nobodyさん03/06/14 01:33ID:???
>>24 >>25
ちゃんと動かせました。
ありがとうございます。
勉強になりました。
0027nobodyさん03/06/14 08:37ID:p4ucyWfS
リンクをクリックするたびに違うページへ飛ばしたいんですが

srand((double)microtime()*1000000);
$link=round(rand(1,5));
echo"<a href=\"http://www.*****.com/php?id=$link>;リンク</a>\"";

これだとページをリロードしなければリンク先が変わりません
どうやったらいいんでしょうか?
0028nobodyさん03/06/14 08:40ID:???
3行目間違えました・・・
echo"<a href=\"http://www.*****.com/php?id=$link\">リンク</a>";
0029あぼーんNGNG
あぼーん
0030nobodyさん03/06/14 08:49ID:???
>>27
ttp://www.*****.com/php に手を加えられるのなら、
その中でrand()すればいいのでは?
リンクのページ -> .com/php -> リンク先
0031nobodyさん03/06/14 09:04ID:???
>>30
ttp://www.*****.com/phpは自分のページじゃないのでできません
0032nobodyさん03/06/14 09:05ID:???
>>27
リロードせずにリンク先を変える方法があれば俺も知りたい。
JavaScriptでもつかったら?
0033nobodyさん03/06/14 09:24ID:???
>>32
JavaScriptでやってみたんですが携帯からアクセスすると機種によっては表示できない物があったので
0034nobodyさん03/06/14 11:32ID:???
1ページ目 : リンクページ
2ページ目 : rand()でジャンプ先を決めてheader(Location:)で実際にジャンプ

1ページ目のリンク文字(<a>〜</a>の間の文字)は固定になるけど、どう?
0035nobodyさん03/06/14 16:45ID:???
>srand((double)microtime()*1000000);

最近のバージョンだと不要だよ。
0036nobodyさん03/06/14 21:31ID:???
配列、というかimplodeを多用するとブラウザが落ちる、なんてこと無いですよね?
>>12を真似て更にチェックを増やした(チェック項目じゃなくて種類)ら
途中まで表示されて止まっちゃった(応答無し)んですけど
0037nobodyさん03/06/14 21:39ID:???
>>36
エラーじゃないんか?
0038nobodyさん03/06/14 21:43ID:???
なぜ12を真似るのか?
0039nobodyさん03/06/15 01:25ID:???
>>38
非常に重要な疑問だ
0040nobodyさん03/06/15 14:32ID:???
>>37
解決しますた
HTMLの書き方がおかしかったみたいです
>>38
前からメール送信フォームのスクリプトを探してたんですけど
チェックボックス付きのって不思議なくらい少ないんですよ
ラジオボタン付きのは多いのに。
こんなCGI探してますスレで聞こうと思っていた時に
12でそういう話題が出てたんでこりゃ僥倖、というわけです
0041nobodyさん03/06/16 19:26ID:???
ファイル編集で質問なのですが、
ファイルのn行目だけを消去というような処理は
どうすれば良いのでしょうか。
0042nobodyさん03/06/16 21:57ID:???
forとかで回して、
n行目だけ飛ばすとか?
0043nobodyさん03/06/16 22:35ID:???
>>41
edが入ってれば・・・

ed {ファイル名} <<EOT
行数d
wq
EOT

こんな感じのことをやらせると簡単?
# 複数行あるときは、行数は大きい順にdコマンドせいよ!

言ってることがわからないときは無視していいよ・・・
0044nobodyさん03/06/16 23:16ID:???
>>43
行ってることはよくわかるけど,無視
0045nobodyさん03/06/16 23:50ID:ULUKCUBQ
[[ と ]] でかこまれている文字列を抽出する正規表現を教えていただけませんか。
対象文字列が1つだけならば問題はないのですが、
複数ある場合に正しく認識しないのです。
0046nobodyさん03/06/17 00:06ID:???
>>41
オーソドックスに1行ごとファイルを読んで、対象行について処理。
消して詰めるんだったらスキップすれば良いし、
空行にしたいなら空行に入れ替えればよい。
処理用のテンポラリは配列を使ってメモリー上でやってもいいし、
PHPの一時作業ファイルの機能を使っても良い。別ファイルに吐くなら
直接そこに書き込んだ方が二度手間にはならないけど。

つかもちぃと、自分のやりたいことを具体的に書けるように汁。
0047nobodyさん03/06/17 00:16ID:???
>>45
/\[\[[^(\]\])]*\]\]/
0048nobodyさん03/06/17 03:07ID:jU4Lgx5s
>>47

$content=ereg_replace("(\[\[[^(\]\])]*\]\])","<a href=\"index.php?action=view&title=\\1\">\\1</a>",$content);
こうしてみたのですが、うまく動きません。
どうしたらよいのでしょう。
最初は
$content=ereg_replace("(\[\[.+\]\])","<a href=\"index.php?action=view&title=\\1\">\\1</a>",$content);
でした。
0049nobodyさん03/06/17 04:08ID:???
preg_replaceじゃないの?
0050あぼーんNGNG
あぼーん
0051nobodyさん03/06/17 11:30ID:???
>正しく認識しないのです
>うまく動きません。

これだけじゃね。
0052nobodyさん03/06/17 15:44ID:???
PHPってVBみたいなツールないですか?
0053nobodyさん03/06/17 17:12ID:???
>>52
http://www.zend.co.jp/aboutphp/
0054nobodyさん03/06/17 17:39ID:???
>>53
意外と安いですね。20まんくらいするのかと思ってたYO!
0055nobodyさん03/06/17 23:07ID:0jiXtget
ディレクトリのサイズを取得するいい方法はありますか。
ディレクトリの中のファイル一個づつ足していかないとだめなんでしょうか。
0056nobodyさん03/06/17 23:33ID:???
>>55
そうですけど,
duとか使えば?
0057nobodyさん03/06/17 23:56ID:???
45ですが。
>>47さん
>>49さん
ありがとうございました。
0058nobodyさん03/06/18 00:59ID:z2IuQj0n
PHPで画像をUPしたいんですがサーバ側で
画像の大きさを判別できるのでしょうか?
200×300とか
調べたんですけど関数がないような
ということはC言語で関数を作る?
だれかわかりませんか?
0059nobodyさん03/06/18 01:04ID:???
ほんとに調べたのかよこの知障
0060nobodyさん03/06/18 01:14ID:???
まぁまぁ初心者スレなんで生温かく見守れ

http://www.php.net/manual/ja/function.getimagesize.php
マニュアルにまんまあるぞ。このRTFM!
0061nobodyさん03/06/18 01:19ID:???
>>60
やさしいのか、やさしくないのか「RTFM」なんて。。。
0062nobodyさん03/06/18 01:40ID:???
やさすい
0063nobodyさん03/06/18 01:57ID:ozrEi3ht
60>>さん
ありがとうございました
59>>
回線切って首を吊れ
0064nobodyさん03/06/18 10:14ID:???
>>63
逆切れカコワルイ
0065nobodyさん03/06/18 11:17ID:Y4tmU7Uq
>>64氏が釣られている気がしないでもない今日この頃ですが、
皆様におかれましては、いかがお過ごしでしょうか?

と、まぁ〜、んな事はどーでもいいので、質問させて下さい。
配列の中の要素の数を取得する事って出来ますか?
$hoge[0] = hoge0
$hoge[1] = hoge1
$hoge[2] = hoge2
って、配列があるとしたら、全部で3つじゃないですか?
その3ってのを取得したいんです。
0066nobodyさん03/06/18 11:18ID:???
>>65
ネタにしてもつまらない。
0067あぼーんNGNG
あぼーん
00686503/06/18 11:40ID:???
【自己解決】
count() ってゆー便利な関数があるんですね。
>>66氏の気分を害してしまい、ずびばぜんでじだ(T_T)
0069nobodyさん03/06/18 11:40ID:???
>>65
count()
0070nobodyさん03/06/18 16:47ID:???
国際化されていないphpで日本語扱う方法ってありますか?
JCode.php見つけたんですけどいまいち上手く動作しないのです。
0071nobodyさん03/06/18 17:50ID:???
扱う、と言っても扱い方はいっぱいある
00727003/06/18 18:38ID:???
送られてきたデータの文字コードをEUCに統一してmySQLに保存するんです。
要は、普通の掲示板などで行われている処理なのですが。
0073nobodyさん03/06/18 22:02ID:???
>>65

scalar()
0074nobodyさん03/06/18 22:09ID:???
>>72
じゃあ、普通にjcode.phpつかえば。
jcode.phpだけど、
>JCode.php見つけたんですけどいまいち上手く動作しないのです。
こういう書き方するとバカかと思われるよ。
00756503/06/19 03:14ID:2RPLMQCv
>>66氏、>>73氏 レスどうもです。

別の質問なのですが、

title1,value1
title2,value2
title3,value3

というcsvファイルを、file()で読み込んで $lines に格納した後、
列ごとの要素を配列に入れたいのですが、

list($title,$value)=explode(",",$lines[$i]);

と、やったら上手くいきません。

マニュアル読むとlist()は、「配列と同様の形式で、複数の変数への代入を行います」
と、あるので上記だと $title や $value は変数で配列ではないという事ですよね?
列ごとの要素を配列として扱うには、どうすればよいでしょうか?
00767003/06/19 03:27ID:???
>>74
jcode.phpで文字コードを自動認識させると認識を誤ることがあるのです。
回避する方法はありますか?
0077nobodyさん03/06/19 03:59ID:???
自動だかだ。
なんでeuc指定しないの?
00787003/06/19 04:01ID:???
変換後はeucにするんです。
ただ、ブラウザが送出する文字列は指定できないこともありますので、
変換前文字列を自動認識にしているんです。
すると、ときどき化けることがあるわけで。
0079nobodyさん03/06/19 04:35ID:???
なるね。 ときどき化けるファイルのエンコードはJIS ?
これを上手い事、条件つけて変換するとか。
00807003/06/19 04:52ID:???
化けているのはおそらくshift-JISかと。
どういう条件をつけたらよいのでしょう。
0081nobodyさん03/06/19 04:57ID:Xa9Oiy3t
>>75
とりあえず
$lines = file('hoge.csv');
$title = array();
$value = array();
for ($i=0;$i<count($lines);$i++) {
 list($title[$i],$value[$i])=explode(",",$lines[$i]);
}
かなあ?

$lines = array_map('SplitCSV', file('hoge.csv'));
function SplitCSV($line) {
 $a = explode(',', $line);
 return array('title'=>$a[0], 'value'=>$a[1], 'value2'=>$a[2]);
}
みたいに多次元配列に入れたほうがデータを使い回しやすいし、
ファイルを全部読み込む必要がないならfgetcsvを使うのが良いだろうし。
方法はいろいろありますyo。

>>78
jcode.phpsは最新版(1.34)ですよね?
いちおう http://www.spencernetwork.org/ を張っときます。
PHPがセーフモードでないなら、exec()でnkfを使うとか
mbstringのDSOを調達してdl('mbstring.so');するとか? (w
00827003/06/19 05:17ID:???
>>81
jcode.phpsは最新版です。
で、後の方法ですが、強引ですねえ。。。

文字化けの状況はここと一緒かと。ちょっと内容微妙だけど。
http://www.google.co.jp/search?q=cache:W9edWQoBLUMJ:www.geocities.co.jp/CollegeLife-Labo/9015/discussion/0301-0350/log00000305.html+%E5%8A%B9%E5%8D%A0&hl=ja&ie=UTF-8
なんか、根本的に間違っている気がしてきました。
0083nobodyさん03/06/19 05:46ID:???
sage忘れてた・・・。
>>82
すごく強引です。半分ネタのつもりで書きました。ごめん。
ところで、文字列は保存する直前(処理したあと)変換してませんか?
それならスクリプトの冒頭で
$str = serialize($_POST);
$str = JcodeConvert($str, 0, 1);
$_POST = unserialize($str);
って感じであらかじめ変換してやるといいかも。
個別に変換するんじゃなくて、一つの長い文字列として扱うことで
判定ミス軽減を狙ってます。うまくいくかわかんないけど。

とりあえず、そのリンク先が根本的に間違っているのは疑いの余地が無いですね。
0084nobodyさん03/06/19 05:54ID:???
おっと、たしか大抵の国際化されてないレン鯖のPHPって4.0.6だったような。
上の$_POSTは$HTTP_POST_VARSもしくは$HTTP_GET_VARSと読み替えてくだされ。
0085nobodyさん03/06/19 09:25ID:???
>>78
チェック用にHIDDENで"美乳"とか入れらんないの?
その掲示板の入力フォーム。
0086nobodyさん03/06/19 09:37ID:???
>>85
> チェック用にHIDDENで"美乳"
あ,おれと同じことしてる…
00877003/06/19 13:22ID:???
>>85
「美乳」。。。
なんか、もうちょっと長いので無難なのありませんでしたっけ?
00887003/06/19 13:24ID:???
ググッたらすぐに出てきました。
「雀の往来」ですね。
>>83さんのアドバイスとあわせてやってみます。
0089nobodyさん03/06/19 14:58ID:???
うひょー、、こんなのあったのか<美乳・雀の往来
しらんかたよ汗
0090nobodyさん03/06/19 16:54ID:BuZyfKvG
$hash = array('key1'=>'val2','key2'=>'val'2);
$key = 'key';
$line = 'abcd $key{key1} efgh $key{key2} ijkl';
以上のデータを使って$lineを
abc val2 efgh val2 ijkl
と成るように置換したいのですが、以下だとうまく動きません。
$line = preg_replace('/\$'.$key.'\{(.*?)\}/',$hash["\\1"],$line);
どうしたらうまく動かせるのでしょうか。教えてください。

ちなみにperlだと
$line =~ s/\$$key\{(.+?)\}/$hash{$1}/g;
0091あぼーんNGNG
あぼーん
0092nobodyさん03/06/19 16:59ID:3FZVSEpw
>>90
つか、それ以前に''(シングルクォート)じゃあ、変数が
展開されねーべさ。
0093nobodyさん03/06/19 17:13ID:???
>>92
傍目に見たらダブルクォートに見える罠
0094nobodyさん03/06/19 17:19ID:???
"
''
009592 03/06/19 17:20ID:???
うーっぷす、すまねえ。
「'」(しんぐるくぉ〜と)
と書き直してみるテスト。
0096nobodyさん03/06/19 17:22ID:???
$hash["\\1"] -> $hasn[$1] でどう?
$hash[$1] のかわりに md5($1)とか、オリジナルのハッシュ関数($1)とかでもいいかも。
00979003/06/19 17:24ID:BuZyfKvG
>>92
ちょっとまぎわらしいコードを書いてしまってすいません。
$lineでしたら、展開されないように''にしています。

$line = 'abcd $CODE{1} efgh $CODE{2} ijkl';
$key = 'CODE';
$hash = array(1=>'111',2=>'222');
$line = preg_replace('/\$'.$key.'\{(.*?)\}/',$hash["\\1"],$line);
で$lineを
abcd 111 efgh 222 ijkl
にしたいのですがpreg_replaceの所で、つまずいています。
0098nobodyさん03/06/19 17:44ID:???
>> 70

実用的なものとしては、“漢字コードはEUC”というのがある。

ttp://www.valhalla.gr.jp/coffin/essay/2001/august.html#12


>> 90

$line = preg_replace_callback('/\$'.$key.'\{(.*?)\}/', create_function('$a', 'return $GLOBALS["hash"][$a[1]];'), $line);

もっといい方法があるかも。
0099nobodyさん03/06/19 18:05ID:j1VyygA0
PHPとTomcatを連携しようと考えています。
可能でしょうか?
0100あぼーんNGNG
あぼーん
0101nobodyさん03/06/19 21:54ID:???
この
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/Q9i
ereg関数でパターン文字列に「=」を入れたらこのようなエラーが出ました
Parse error: parse error, unexpected '=' in /xxxxx/index.php on line 11
「=」はつかえないんでしょうか?
0104nobodyさん03/06/19 22:34ID:???
$_POST[name] $_POST['name'] $_POST["name"] $POST[qq|name|qq] なあほな。
0105nobodyさん03/06/19 22:38ID:???
preg_matchじゃだめ?
http://jp.php.net/manual/ja/function.preg-match.php
0106nobodyさん03/06/19 22:39ID:???
\= とかは? うひ。
0107nobodyさん03/06/19 22:45ID:???
>>102
GETだよ。
POSTじゃないよ。
0108nobodyさん03/06/19 22:50ID:???
おいPOSTじゃんか。
0109nobodyさん03/06/19 23:00ID:???
URLを入力してそのページのソースを全部取得する関数ってありますか?
0110nobodyさん03/06/19 23:23ID:???
>109
fopenではダメなのですかい?
0111nobodyさん03/06/19 23:24ID:???
>>109
file
0112nobodyさん03/06/19 23:30ID:???
>>110>>111
fopenやfileだとファイルしか開けなくないですか?URL開けないんですが。
0113nobodyさん03/06/19 23:39ID:???
>112
ttp://www.php.net/manual/ja/function.fopen.php
0114nobodyさん03/06/20 00:25ID:???
>>112
allow_url_fopen
http://www.php.net/manual/ja/features.remote-files.php
0115nobodyさん03/06/20 14:27ID:LThxuIrX
shuffle()でランダムに並べ替えた配列を
次のページにその並び順のまま渡すには、
どんな方法が考えられますか?
ファイルに書き出すしかないでしょうか…
0116nobodyさん03/06/20 21:08ID:???
>>115
hidden
session
0117nobodyさん03/06/20 23:11ID:???
>>115
(URLの後ろに続けて)GET渡し
0118nobodyさん03/06/21 00:51ID:???
>>115
>>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
PHPって基本的に多言語をサポートしてるんですよね?
調べてみると、multibyteってのを入れると、日本語化できる
みたいに書いてあるのですが、
逆を言えば、multibyteを入れないと日本語化できないんでしょうか?
またPerlってどうなんでしょうか?
0120nobodyさん03/06/21 11:59ID:???
>>119
Muiltibyteを入れなくても日本語は通ります。
Perlも日本語は通ります
0121nobodyさん03/06/21 12:23ID:HF7plXmg
自分が阿呆な事を言っていると承知済みで、失礼覚悟で質問いたします。
先日、フリーのPHPチャットプログラムをダウンロードしてきました。
製作者様がおっしゃるにはそのチャットプログラムは、
改造は規約さえ守れば好きにしていいとの事です。
しかし、その公式ページ以外でそのPHPに関する質問は絶対にしないように
とのことで、しかしながら質問のお返事が戴けません。
そしてわたしは、今回初めてPHPを弄った筋金入りの素人です。
そのPHP内に特定の言語をはじくというソースがあるらしいのですが、
どこがなんなのかもうさっぱりです。さんざん自力でいじり、探しましたが、
なにせhtmlも満足にいじれないわたくしにとって腐海のようです。
解決策とかそれ以前に、わたしはどうすれば良いでしょうか。
製作者様のお答えを根気よく待つべきでしょうか。ここで質問しても
大丈夫なものなのでしょうか。自力でPHPを1からミッチリやり込むべきでしょうか。
0122あぼーんNGNG
あぼーん
0123nobodyさん03/06/21 12:42ID:iHlRBHxT
>>121
>そのPHP内に特定の言語をはじくというソースがあるらしいのですが、
意味がわからないな。。言語って英語とか?それともPerlはじくとか?(これも意味不明
できればその配布サイト教えてよ。簡単なら同じ機能ついたの作ってやるから。
012411903/06/21 12:50ID:k+R30mgd
>>120
即レスありがとうございます。
じゃあmultibyteは何の役割をするんでしょうか?
0125nobodyさん03/06/21 13:18ID:HF7plXmg
>123
いえ、まさかそこまでして頂く訳には参りません。
その、これを申すとそのプログラムが特定できてしまいそうなのですが、
いわゆる『人工無能』のついたチャットなんです。
『人工無能』とはAと言えばBと答える、というような法則を覚えさせて
疑似会話が出来るものだと聞きました。
その『人工無能』が、特定の言葉、主に著作権関係の言葉と思われるのですが、
それを全て覚えません。
その機能を外すには、どこのソースを消せばいいのか、という話なのです。
お解りになりましたら、どうぞご助言願います。
0126nobodyさん03/06/21 13:20ID:???
>>124
あとはマニュアル嫁
012712303/06/21 13:35ID:KU8WU14M
>>125
>その機能を外すには、どこのソースを消せばいいのか、という話なのです。
>お解りになりましたら、どうぞご助言願います

PHPならPHPゆいちゃっとのゆいぼっとかなっとは思うけど…、
とりあえず配布サイトのURL出してくれないとわからないです
0128nobodyさん03/06/21 13:40ID:???
>>125
スクリプトによって違うので
何とも言えません。
アドバイスは
PHP入門(エーアイ出版)
をかってPHPを勉強しましょう

ということです。
012912303/06/21 13:40ID:KU8WU14M
>>125さんは、「そこに山があるからだ」さんかな?(w
0130あぼーんNGNG
あぼーん
013112303/06/21 13:51ID:KU8WU14M
確かにビートルズ覚えないね。
原因突き止めてるからちょっと待ってね。
0132nobodyさん03/06/21 13:55ID:???
PHPゆいちゃっとの管理人はサポート下手だな。
あやふやな質問にいくらレスしても疲れるだけだっつーの。
013312503/06/21 14:00ID:HF7plXmg
>128さん
はい…1から入門するのが一番だとは思っております。
ご推薦の書物を探して読んでみます。ありがとうございます。

>123さん
あああッバレてるッ(泣笑
すみません。結局サイトまで明かす事になってしまいました。
ここであのプログラムの事を質問しても、問題はないのでしょうか?
あのちなみに、『ビートルズ』の実験はどちらでなさったのでしょうか…

わたしが躍起になって調べた結果、経済界要人とスポーツ選手は覚えます。
歌手、有名人、米国のアニメキャラクター、映画のタイトルなんかは総崩れです。

ほんとうに、お手を煩らわせてご免なさい。
ありがとうございます。
013412503/06/21 14:03ID:HF7plXmg
>132さん
製作者様はわたくしの無理な質問に散々付き合って下さりました方です。
その製作者様が、わたくしの所為でそう言われては申し訳が立ちません。
どうか、その旨ご理解願えませんか。
013512303/06/21 14:04ID:KU8WU14M
スクリプトをざっと読んでみたけど、著作権のあるものは登録できないようにする
なんて処理は何処にも無かったよ。多分原因は他に有ると思う。
013612303/06/21 14:08ID:KU8WU14M
>ここであのプログラムの事を質問しても、問題はないのでしょうか?

正式には、利用規約違反にはなっちゃうだろうなぁ…。
でもまぁレイさんも忙しいんだろうし、こっちでバグ見つけて報告するのはダメってわけじゃないから、
とりあえず何処が悪いのか探してみるよ。
ちなみにビートルズの実験は自分のサーバーでやってる
013712503/06/21 14:15ID:HF7plXmg
>123さん
そうですか!
あの、ズブの素人が素人脳で考えてしたことは、著作権に触れる言葉を
覚えさせた時にも、datファイル内には追加されているのです。
その上で$no_msgが発動していますから、全てのphp内を$no_msgで検索したんです。
$no_msgに関係するソースはどれを外しても動かなくなりますので、
じゃあそういう仕様なのだろうかと……すみませんほんとうに何にも知らなくて……
でも、著作権に関係する言葉だけを覚えないなんていう
器用なバグがあるのでしょうか。

やっぱり規約違反ですね……どうしよう………
013812303/06/21 14:16ID:KU8WU14M
正確な原因は著作権とかの問題じゃないみたい。
勝手に引用して悪いけど、

ボットが『ジョン・レノン』は覚えますが、『ビートルズ』『ポール・マッカートニー』を覚えません………(?。
禁止用語か何かでしょうか。

覚えない単語に共通しているもの、それは「ー」。
ためしにやってみるとわかるよ。

それから言うと、実際には「覚えている」
つまり、データファイルには書き込まれているが、それが呼び出されないのが原因らしい。
これ以上はまだわからない
013912303/06/21 14:18ID:KU8WU14M
>やっぱり規約違反ですね……どうしよう………

レイさんがこのスレッドを見てらっしゃるかどうかは知らないけど、
原因見つけてバグ報告する事になっても、とりあえずこの事は黙っておくよ。
014013203/06/21 14:22ID:???
ゴメンネ。昔プログラミングとは関係のない所でユーザーサポート
やってて酷い目にあった経験があったものでw

原因は正規表現とか置換とか?
(スク読んでないけど)
マルチバイトのやつじゃなければ、mb_で試してみるとか。
014112503/06/21 14:31ID:???
>123さん
…………解りました………!
びっくりしました。そうだったんですね!なるほど!ほんとだ!
だからミッキーマウスもアーノルド・シュワルツネッガーも
オードリー・ヘプバーンもマリリン・モンローもダメだったんですね!

………アレ?だけどタモリもはじかれます。

すみません本当に。もしレイさんがここをご覧になった暁には、
レイさんの取られます処置に従おうと思います。
こんなに人目に触れる場所なので、遠からず彼もご覧になるかと思いますが……
いろいろ手を尽くして下さって、本当にありがとう。

>132さん
いえ、そもわたくしが全ての元凶ですので………
レイさんに黙ってここに書き込みするのに、後ろ暗いのです。
ほんとうにごめんなさい。

うわあ…だんだん自分がネットの契約違反者になっていく……
ネットの契約書を読むたびにそんな違反は普通に使っててしないだろうと
思っていましたが、初めて解りました。うう。
0142nobodyさん03/06/21 14:36ID:???
>>141
ガンガレ
0143あぼーんNGNG
あぼーん
014412303/06/21 14:59ID:KU8WU14M
まぁ原因はわかった・・
でも私が修正しようとすると、ややこしいやり方になっちゃう(しか知らない)から、
どう修正するかは、レイさんにおまかせするよ。
とりあえずサポ板に書き込みに逝って来まふ
014512503/06/21 15:04ID:???
>123さん
何から何までありがとうございました。
ご恩とご好意、忘れません。
これに懲りて、ちっとは自力でプログラムを弄れるようにお勉強いたします。
…とりあえずわたしも理系学生のはしっこですし(泣

123さん、132さん、本当にありがとうございました。

>142さん
心にズキンと響くイイお言葉ですねがんがれ。
ありがとうございます。がんがります。
0146nobodyさん03/06/21 15:06ID:???
やっと雑談終わったか・・・
014712303/06/21 15:40ID:???
書いてる途中に家事頼まれて遅くなった。
ほいじゃね。
0148nobodyさん03/06/21 16:09ID:3yZp62xo
ID,dat1,dat2,dat3

というデータがPOSTされてくるので、既存のログファイルに、
POSTされたIDがあればエラー、なければデータ追加するには
どうすればいいでしょうか。
IDは固定長、dat1~3は可変長のデータです。

0149あぼーんNGNG
あぼーん
0150nobodyさん03/06/21 16:39ID:???
ログファイルを自力で検索。
どこで悩んでるの?
0151nobodyさん03/06/21 16:41ID:???
>>148
eregつかえば?
0152nobodyさん03/06/21 17:08ID:VyXOk/2c
while ($temp = <STDIN>) {
chomp($temp);
print "$tempが入力されました\n";
}

これだとABCDと入力したら ABCDが入力されました、と出て、

while ($temp = <STDIN>) {
$temp2 = chomp($temp);
print "$temp2が入力されました\n";
}

これだとなぜか、1が入力されました、としか出ないのはなぜですか?(´・ω・`)
0153あぼーんNGNG
あぼーん
0154nobodyさん03/06/21 17:09ID:???
>>152
うあ、誤爆スマン 。・゚・(ノД`)・゚・。
0155nobodyさん03/06/21 21:15ID:???
phpに
Cでいう
do〜while
と同じような働きをする
ものってありますか?
0156404.HDML ◆StMXML.EXE 03/06/21 21:21ID:???
>>155
ズバリそのものが有る悪寒。C自体は知らないけど、同名の関数が。
0157あぼーんNGNG
あぼーん
0158あぼーんNGNG
あぼーん
0159nobodyさん03/06/21 21:59ID:???
PHPマヌアル嫁↓
0160nobodyさん03/06/21 22:30ID:???
え?俺?
0161あぼーんNGNG
あぼーん
0162nobodyさん03/06/22 02:42ID:???
PHPマヌアル嫁↑
0163nobodyさん03/06/22 02:49ID:???
PHPマヌアル嫁←
016403/06/22 07:56ID:???
配列の中身を5列のテーブルで表示するにはどうやったらいいでつか?

$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:???
>>164
どういう内容のtest.logに対して、どう表示したいの?
for( a ){
 for( b ){
  echo hoge( a );
 }
}
になってるから、bの回数分(5回)だけ同じ$hoge[$a]を1行に出力するよ。
0166nobodyさん03/06/22 13:16ID:v4BkkZfH
123
456
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:???
>>168
あんた・・・
for($i=1;$i<=10;$i++){
echo $i;
if($i%3==0)echo"<br>\n";
}
0168PHPDQN03/06/22 13:31ID:???
define("NUMCOLS",5); // 列の数
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:???
>>168
やさしいね。でもそこはかとなく間違ってる。
×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";
}
かな。 
0170PHPDQN03/06/22 13:59ID:???
>>169
おお,ケヤレスミスすまそ

空セルもちゃんと作るのは丁寧ですね。
見習います
017116603/06/22 14:04ID:???
>>167
ありがと
こんな簡単に出来るのか

>>168-169
これはテーブルで表示できるのかな
おれのレベルじゃまだ理解できない・・・
ちょと試してみます

0172nobodyさん03/06/22 15:44ID:TMm6ngKF
チャットに書き込んだ後にリロードすると[再試行]が出てくるんだけど
普通にリロードできるようにするにはどうやるの?
0173nobodyさん03/06/22 16:11ID:???
>>172
オレのところのチャットだと問題なかったよ。
そっちの端末の環境の所為じゃないの?
0174nobodyさん03/06/22 16:22ID:???
POSTだろうから、GETにしてみるよし。

>>172
いや、、なんというか。。ぽんしち?(藁
0175nobodyさん03/06/22 16:23ID:???

172じゃなくて 173だった。
0176nobodyさん03/06/22 19:07ID:???
>>172
書きこんだ後リダイレクトする
017703/06/22 21:01ID:???
>>168-169
サンクスコ

<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>

てな具合に、最初の行が上手く動作してくれないんだけど、原因が見当つかない
0178PHPDQN03/06/22 22:40ID:???
>>169
×if ($key % (NUMCOLS - 1) == 0) {
○if ($key % NUMCOLS - 1 == 0) {
◎if ($key % NUMCOLS == 1) {
$key == 0 の時にもTRUEになるためには一番上が必要でした
017903/06/23 04:05ID:???
>>169
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:vjy3Tk6s
すごいねここ
http://strangeworld-honten.com/cgi-bin/bbs.cgi
0181nobodyさん03/06/23 04:12ID:???
ブラウザークラッシュ!!
0182あぼーんNGNG
あぼーん
0183PHPDQN03/06/23 04:23ID:???
>>179
foreach ($hoge as $key=>$val) {
if ($key % (NUMCOLS - 1) == 0) {
echo "<tr>"."\n";
} elseif ($key % NUMCOLS == 1) {
echo "<tr>"."\n";
}
0184あぼーんNGNG
あぼーん
018503/06/23 08:30ID:???
あ゛〜(`□´)
背中に手が届きそうで届かない!
漏れにプログラムは向いてないんか!?

>>183
それだと、$key が 8 になった時も
if ($key % (NUMCOLS - 1) == 0) にマッチして<tr>が出てくるべさ。
するとテーブルが崩れてしまうべさ。
昨日>>168見た時は、サパーリだったけど、今は何をどうしたらいいかが
解ってきたような気がする・・・

後は、何とか自力で・・・出来たらいいなぁ〜(´¬`)
ところで、今回は定数に5を代入してるけど、これ変数じゃだめぽ?
あっ、NUMCOLS-1 とかしてるから変数じゃマズイか・・・

yata-でけた〜!!!!!!
018603/06/23 08:32ID:???
define("NUMCOLS",5); // 列の数
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";
0187PHPDQN03/06/23 11:27ID:???
>>185
そうだね
じゃあ
if ($key == 0 || $key % NUMCOLS == 1) {
018803/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 様、ありがとうございました!
018903/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 = count($hoge);
$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
php 4.2.3 を使っています。
ヒアドキュメントに関して教えて欲しいのですが、
ヒアドキュメント内に、式、というか関数を書き、その結果を
使いたいのですが、うまくいきません。

$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']).",";

と続けていくしかないでしょうか?
019203/06/23 19:16ID:???
$buf = <<<EOD;
↑この行ってセミコロンいるんですか?
019319103/06/23 19:22ID:ghLrcRD3
>> 192
すみません。手コピーした時にミスりました。
セミコロンいらないです。

書き写しをミスっただけなので、セミコロンは本質的な
問題じゃありません。すみませんです。
019403/06/23 19:33ID:???
a = {$db->query($_POST['a'])},
a → $a
, → ;

今の漏れにはこれくらいしかミスがハケーンできず。
あとは、偉い人よろ。
0195nobodyさん03/06/23 20:41ID:???
>>191

$buf = <<<EOD
EOD;
~ このセミコロンはだめだと思うが?
EOD
;
こうだろ。

$buf = <<<EOD;
EOD
でも良いとおもうが
0196nobodyさん03/06/23 20:49ID:???
セミコロンの位置に関しては>>192が正解。
つーかそれ以前にヒアドキュメント内には関数を書けんわけだが。
「以下同じように」なことをしたいんならwhile、for、foreachのどれかでしょ。
019703/06/23 20:58ID:???
>>191
スマソ、漏れの発言(>>194)は全部忘れて。
019819103/06/23 21:05ID:???
>>196 ヒアドキュメント内には関数を書けんわけだが。
ども。書けない事がわかったのでヒアドキュメントを使うのを
やめられます(^^;

>>194, 197
いえいえ。アクションを起してもらえた事がうれしいので、
感謝しています。ありがとう。
0199nobodyさん03/06/23 23:30ID:???
>>198
echo やprintの中でもかけないよ
当たり前だけど
0200nobodyさん03/06/24 00:57ID:???
200
0201nobodyさん03/06/24 03:00ID:/ljDW6SS
ゲストブックは作れるけど、
返信機能も付けたい・・・↓
ttp://blue.ribbon.to/~goonet/pppbbs.php
どうしたらいいですか?
0202nobodyさん03/06/24 03:21ID:???
保守
アホな質問であっても詳しく質問しろよ。 ネタはおもしろく書けよ。
0203nobodyさん03/06/24 12:56ID:bE/a8saZ
$before = array('aaa','AAA','bbb','BBB');
$after = array('aaa'=>'AAA','bbb'=>'BBB');
上の配列を下配列に変換するにはどうしたら良いでしょうか。

クラスの中でコールバックする時にクラス内の関数を指定するには
どうしたらよいですか?
class::function,$this->functionともにダメでした。
0204PHPDQN03/06/24 19:27ID:???
>>203
> $before = array('aaa','AAA','bbb','BBB');
> $after = array('aaa'=>'AAA','bbb'=>'BBB');
> 上の配列を下配列に変換するにはどうしたら良いでしょうか。

$i = 1;
foreach ($before as $key=>$val) {
if ($i % 2 == 1) {
$hoge = $val;
} else {
$after[$hoge] = $val;
}
$i ++;
}
> クラスの中でコールバックする時にクラス内の関数を指定するには
> どうしたらよいですか?
> class::function,$this->functionともにダメでした。

class::function()
$this->function()
0205nobodyさん03/06/25 11:50ID:???
>>203
function arrayToHash ($array) {
 if (!is_array($array)) return false;
 $hash = array();
 $m = count($array);
  for ($n=0;$n<$m;$n++) {
   if ($n % 2) {
    $hash[$array[($n-1)]] = $array[$n];
   } else {
    $hash[$array[$n]] = "";
   }
 }
 return $hash;
}
こんなかんじかな?なんとなくだけどもっと良い方法が在るかも

クラス内でのコールバック関数を使うんだったら、create_function()を使うか
array($this,'method_name')でソメッドを指定してやること
ttp://jp.php.net/manual/ja/function.preg-replace-callback.php
を見れば参考になるよ(Notesのところもね)
0206nobodyさん03/06/25 12:13ID:TNz4QTlp
関数内でグローバル変数にリファレンスを代入したときの挙動がよく分からないのですが、
$a=array(1,2,3);
$b;
hoge();
piyo();
function hoge(){
  global $a,$b;
  $b = &$a;
  var_dump($b);
}
function piyo(){
  global $a,$b;
  var_dump($b);
}
でpiyoのdumpがNULLなのはなぜですか?
0207nobodyさん03/06/25 15:15ID:RiMKFAt2
sessionについて学んでおります。
サンプルソースより、多々のサイトを閲覧し意味を求めているのですが、
解釈があっているかどうか・・・

session_name('2ch_session');
セッション名ですよね?

session_cache_limiter('nocache');
ページをキャッシュをさせるかどうかの意味だと思うのですが、
public、nocache、privateの違いがいまいちわかりません。

session_cache_expire(30);
limiterでキャッシュする場合、30分とかという
時間の長さですよね

session_start();
ここからセッションが始まる



何冊か本を購入したのですが、sessionのやり方は書いてあっても、
サンプルスクリプトなどにsession_cache_limiter();
などど唐突に書いてあり、意味の解説がなされてありませんので、
自分ながらに解釈してみました。どこが間違っているでしょうか?
0208nobodyさん03/06/25 16:10ID:???
なんでマニュアル読もうとしないのだろうか?
実はマニュアルは存在しない、私の想像の産物に過ぎないのであろうか・・・
この理不尽な質問にもそう考えるとすべての辻褄が合う。
0209nobodyさん03/06/25 16:36ID:???
>>208
そんな事、たらたら書くんだったら教えてあげ。
http://jp.php.net/manual/ja/ref.session.php

おい、207これでわかるか?分かんなかったらまた質問し。
0210nobodyさん03/06/25 16:39ID:+bFcwMX4
>>208
マニュアルのまんまの参考書って多いよね。
マニュアルのほうが分かりやすいし、最新、タダなのにねぇ。感謝>doc.group

>なんでマニュアル読もうとしないのだろうか?
考えられる理由は、マニュアルのトップページ見ても
1) XCIIIセッション処理関数(session)
に辿り着く前に面倒になる
2) search for [ ] in the [function list]
の英語が分からない
3) 2)の submit ボタン が 分かりづらい

4) manual の 存在に気づいてない
& このスレの最初すら読んでない
& 基礎からやるのはダルイ

ぐらいかな。
0211ereg質問者03/06/25 17:12ID:???
eregについて調べているのですが、
本を見ただけではわからないので質問させて下さい。
現在あるソースを見ながら何をしているのかを調べているのですが、
eregを使っている部分で分からなくなってしまうので
解説してもらえないでしょうか?
具体的には以下のようなコードが書かれています。
------------------------------------------------
ereg( "([0-9]{1,2}) (.+)", $ini_file, $regs ) )
ereg( "\*", $regs[2])
ereg_replace( "\*", "", $regs[2] )
ereg_replace( "\*", "(.*)", $regs[2] )
ereg("\"[EGOPS]{2,3}T ".$ini[$ii][1]."(.*) HTTP", $file, $regs)
ereg( $param[$ss], $log_url )

eregの部分だけなので繋がりがなく分かりずらいと思いますが
よろしくお願いします。
0212nobodyさん03/06/25 17:20ID:???
>206
3行目で $b に値が設定されていないから。アホか。
しかしスコープ間でリファレンスを受け渡しする際の挙動制御は確かにややこしいと思う。

http://www.php.net/manual/ja/language.variables.scope.php
http://www.php.net/manual/ja/language.references.spot.php#references.global
と、01-Aug-2001 05:07 の補足。
( http://www.php.net/manual/ja/migration4.variables.php )
( http://www.php.net/manual/ja/language.references.unset.php )

>208
ある程度phpに習熟しているのにマニュアルを読まない者が何割か残り続けるところからすると、
マニュアルを読むのにはいくつか「慣れ」が必要なポイントがあると思う。
慣れれば利用は易いが、慣れることができなかった場合はその先もずっと読まない。
マニュアルはphpに残った最後の敷居か。
0213あぼーんNGNG
あぼーん
0214nobodyさん03/06/25 17:37ID:???
関数内でのグローバル変数に対する値の変更はその関数内でしか有効にならないのですか?
0215nobodyさん03/06/25 17:39ID:+bFcwMX4
>[EGOPS]{2,3}T
ふいてしまったじゃないか!
021621203/06/25 18:04ID:???
>214
ユーザ定義関数の内から直接グローバルスコープの変数にはアクセスできないが、
global宣言をしていれば、グローバルスコープでも変更が反映される。
global宣言は分かると思うけど、関数内(ローカルスコープ)の変数に
グローバルスコープの変数へのリファレンスを渡すもの。
( マニュアルいわく、global $a; は $a =& $GLOBALS['a']; と同義 )

同じように、ローカルスコープで作られた変数はグローバルスコープからは変更できない。
この場合はstatic宣言をすると、グローバルスコープへ関数内の変数を持ち出すことが出来る。

ただ、>206の人がはまってるように、ローカルスコープ(関数内)で作られたリファレンスは
static宣言してもグローバルスコープへは持ち出せない。関数処理が終われば消滅。

そのような感じ。
0217nobodyさん03/06/25 18:26ID:???
このスレ212は漏れなんだが
まあ間々あることか、、
0218あぼーんNGNG
あぼーん
0219あぼーんNGNG
あぼーん
0220nobodyさん03/06/25 19:40ID:???
ヒアドキュメントの中で定数の値を出力する方法を
教えて頂けませんか?
0221nobodyさん03/06/25 21:09ID:???
>>220
定数なら直に書けば?
0222nobodyさん03/06/26 02:14ID:ZsWdiO4a
mb_convert_kanaを使うと????となってしまうんだけど、なんで??
0223nobodyさん03/06/26 02:21ID:???
>>221
あんたプログラムで定数を使ったことないのか?
0224nobodyさん03/06/27 01:13ID:???
>>222
変換できなかったから
022520703/06/27 02:26ID:GX1Z4uke
皆様のおっしゃるとおりです。
マニュアルを熟知しました。
その上で質問です。

セッション変数にデータを追加する際、
session_start();
session_register("user_id");
$user_id = "giko";
をヘッダに使用すると、別のページでも、user_idに格納された
データを使うことができますが、

本に書いてあったのは、
session_start();
$user_id = "giko";
$_SESSION["user_id"] = "user_id";
とあり、
$_SESSIONは4.1.0から追加された配列です。とあります。
                     ~~~~~
$_SESSIONで、PHPマニュアルで探したのですが、ちょっと見つけることができませんでした。

ということは、少量の変数を用いる際は、上の例で、
配列を使いたいときは、下の例でいいということなんでしょうね・・・

なんか、まだ自信がないのですが、
推奨とかありますか?
0226とも03/06/27 02:34ID:8zlvqcC5
みてね〜♪
http://www1.free-city.net/home/s-rf9/page005.html
0227nobodyさん03/06/27 02:49ID:???
ブラウザークラッシュ”
022820703/06/27 02:58ID:???
>>225
自己レスです。


http://jp.php.net/manual/ja/ref.session.php
に普通に乗っていました。
グローバル変数として扱えるのですね。

検索の仕方が悪かったようで。

すいませんでした。
0229nobodyさん03/06/27 05:44ID:???
いわゆる「パン屑リスト」のうまい処理のしかた求む。
0230あぼーんNGNG
あぼーん
0231あぼーんNGNG
あぼーん
0232あぼーんNGNG
あぼーん
0233nobodyさん03/06/27 11:18ID:oE4Jdn/I
ファイル一覧のソート方法を教えてください。
単純に、ファイル名(日付になっています)に並べたいです。

以下の方法で一覧を表示したときに何順にならんでいるのでしょうか。
当方の確認した環境では、全く順不同でした…

while ( $filename = ReadDir( $handlerDir ) ) {
if ( $filename != '.' && $filename != '..' ) {
print $filename;
}
}

よろしくです。
0234あぼーんNGNG
あぼーん
0235nobodyさん03/06/27 11:48ID:9q2Y1uRy
>>233
#いったん配列に入れて
if ( $filename != '.' && $filename != '..' ) {
$files[] = $filename;
}
#ソートする
sort($files);
#ポインタを先頭に
reset($sort);
#表示
foreach($files as $filename) {
print $filename."<br>\n";
}
0236nobodyさん03/06/27 13:37ID:oE4Jdn/I
>>235
ありがとうございます。
大変参考になりました。
0237あぼーんNGNG
あぼーん
0238あぼーんNGNG
あぼーん
0239あぼーんNGNG
あぼーん
0240nobodyさん03/06/27 23:59ID:???
ブラクラ注意
0241nobodyさん03/06/28 08:30ID:WrETl/ge
mkdirでフォルダを作ってそのフォルダを開きたいんですけど、
Warning: SAFE MODE Restriction in effect. The script whose uid is 〜
というエラーが出てしまいます。
FTPで最初からフォルダを作っておくとちゃんと出来ます。
どうすればよいんでしょうか。
0242nobodyさん03/06/28 09:31ID:???
>>241
safe modeをoffにする。
0243nobodyさん03/06/28 10:05ID:???
define は処理の途中で使ってもOKですか?
0244nobodyさん03/06/28 10:58ID:???
初心者はやってもいないのに「〜はできますか?」って聞いてくる。
まずはやってみれ。もちろんローカルで。
0245nobodyさん03/06/28 12:09ID:???
>>244
知ったか君はは試したこともなくてどうなるか自分も解らないのに「試してみろ」って言ってくる。
お前もまずはやってみれ。後学のために。もちろんローカルで。
0246!24403/06/28 12:56ID:???
自分で試したほうがはやいことをいつレスが付くかわからん掲示板で
訊くって言う発想がよくワカランなぁ。
余計にマンドクサくね?

>>245
>自分も解らないのに
ってのは分かんないじゃん
>>243が何にも試してないんだろうなって臭いはプンプンするが。

そもそもマヌアルにはdefine()の使いどころの注意書きは見当たらないけど、
心配しだす動機は何なんだろ
テスト環境用意してないのかな?
いちいちマヌアルに書いてない事まで心配しだしたらコーディング進まねーYO!

俺は安全な環境で誤動作上等って感じでコード書きまくってからテストしてる。
やっちゃダメな事はローカルで実体験しまくった方が身によく付くYO

#まだPHP弄りだしたばかりで、PHPで定数使ったことねぇんだけど
#適当なソースにdefine()とその定数をechoする行追加してみたけど
#何の問題もなさそうだたーよ
0247nobodyさん03/06/28 13:03ID:Fh1b8anl
>>246
>>224よ、お前が歯を食いしばって釣りを無視しているにもかかわらず、何か豪勢なのが釣れてるんだが・・・
024824603/06/28 13:06ID:???
俺なりのマジレスしてみたんだがなぁ
何か無粋なやっちゃな
釣りとか釣られたとかくだらねー
024924303/06/28 14:17ID:???
>>246
ありがとうございます。
define は処理を始める前に羅列するような先入観があり、
文法的に変なような気がしていましたので。
025022103/06/28 16:28ID:???
>>223
いやー>>220が頓珍漢な事を言ってるから
こちらも頓珍漢な答えで茶化したわけだが
何故無理してまでヒアドキュメント使おうとするのかわからん
まぁたしかにタチ悪かったねスマン
0251nobodyさん03/06/28 16:49ID:???
>>246=>>248=>>250
025224603/06/28 17:47ID:???
>>251
>>250と結びつける意味がワカラン
ますますくだらねー
ただでさえジメジメしてうっとおしい時期なんだからさ
そういうジメジメしたカキコはやめようや

>>249
定数とかは分かりやすい場所に書いたほうが良いよ
ファイルの前の方とか、定数だけ書いたファイルをインクルードするとか
散在してると後で見つけにくくなるから

後、繰り返しになるけど、コードの落とし穴とかは(テスト環境で)実体験しといた方が楽だよ
ちょっとした疑問程度なら自ら動かしてみてくらはい
見聞きしただけでバグ無しコード書けるくらいに頭の回転がはやい人なら別だろうけど
0253nobodyさん03/06/28 18:47ID:???
>>252
まぁ、ネームスペースとかに興味がない人はそう思うんでしょうな。
0254nobodyさん03/06/29 01:35ID:???
PHPって定数にネームスペースの概念ってあったっけ?
列挙型とか。
0255nobodyさん03/06/29 14:32ID:rZczdmH2
質問!
フォームから入力したテキストに[\](バックスラッシュ)が
入ってしまうんです.
調べて[magic_quotes_gpc]の値を[ini_set]でOFFにすればいいと
いうのがわかったのですがこれでも回避されませんでした.
しかたなしに[stripslashes]で回避しているのですが
もっと根本的に直せないでしょうか?
ちなみに[magic_quotes_runtime][magic_quotes_sybase]の
値も全てOFFです.
0256PHPDQN03/06/29 14:39ID:???
>>255
SJIS?
025725503/06/29 15:52ID:rZczdmH2
デフォルトでは[Shift-JIS]の出力だったので
ini_set('mbstring.http_output', "EUC-JP");
を実行して[EUC-JP]に変換しています.
この辺が怪しいですか?
0258nobodyさん03/06/29 17:08ID:???
>>257
stripslashes
0259nobodyさん03/06/29 17:10ID:???
>>255
再起動した?
026025503/06/29 17:21ID:rZczdmH2
[ini_set]でやってるので再起動なしに反映されてます.
[stripslashes]で回避はできますができれば根本から
直したいです.
0261nobodyさん03/06/29 17:49ID:???
おいらのまぬあるが古いのかな?
ini_setでmagic_quote_gpcは設定できないように書いてあるようにみえる。
0262nobodyさん03/06/29 20:30ID:???
>>261
合ってるよ(一応PHP4.3.2のソースでも確認)
http://jp.php.net/manual/ja/ref.info.php#ini.magic-quotes-gpc
で、PHP_INI_PERDIRとPHP_INI_SYSTEMなので
http://jp.php.net/manual/ja/function.ini-set.php
の説明どおり、スクリプトの中のini_set()では変更できない。
0263nobodyさん03/06/29 22:53ID:???
http://jp.php.net/ini_set
261あってるね。
026425503/06/30 00:28ID:8Khs5mrJ
ありがとうございます.m(_ _)m
書き忘れてましたがPHP4.1.2です.
再起動しないとだめなんですね…
でも
ini_set('magic_quotes_gpc', 0);
phpinfo();
をやるとちぇんとLocal ValueではOFFに
なってるんですがこれはあくまで設定値ということなんですね…
ありがとうございました.
026525503/06/30 00:32ID:8Khs5mrJ
ついでに利かせてもらうと
レンタルサーバの場合などみなさん
どうしているんでしょうか?
いちいち[stripslashes]の処理をさせてるんでしょうか?
0266nobodyさん03/06/30 00:48ID:???
まぁ、ケースバイケースだけど
俺はこんな感じのことをしてます。
---------
if (get_magic_quotes_gpc() == 1) {
  switch ($_SERVER["REQUEST_METHOD"]) {
    case "POST":
      while (list($key, $val) = each($_POST)) {
        if (! is_array($val)) {
          $_POST[$key] = stripslashes($val);
        }
      }
      break;

    case "GET":
      while (list($key, $val) = each($_GET)) {
        if (! is_array($val)) {
          $_GET[$key] = stripslashes($val);
        }
      }
      break;
  }
}
0267nobodyさん03/06/30 01:50ID:???
$_GET = array_map('stripslashes', $_GET);
$_POST = array_map('stripslashes', $_POST);
$_COOKIE = array_map('stripslashes', $_COOKIE);
これ最強。
0268nobodyさん03/06/30 01:56ID:???
念のため、再帰的に変換するのもあり。
$_GET = array_map('r_stripslashes', $_GET);

function r_stripslashes($value) {
if (is_string($value)) {
$value = stripslashes($value);
} elseif (is_array($value)) {
$value = array_map('r_stripslashes', $value);
}
return $value;
}
026926603/06/30 02:48ID:???
なるほど・・・勉強になりますた
0270nobodyさん03/06/30 04:09ID:8KMUcild
文字列の中にあるスペース削除ってどうやるの?
0271あぼーんNGNG
あぼーん
0272nobodyさん03/06/30 04:36ID:???
>>270
str_replace
0273nobodyさん03/06/30 05:11ID:OSudLwdS
認証システムを作っているんだけど、
アカウント名に、半角英数小文字のみ
abcdefghijklmnopqrstuvwxyz0123456789_-
だけにしたいのです。

フォームから上記以外の文字を入力された場合、
駄目!って言いたいんだけど、
正規表現は難しそうなので、

if ( mb_convert_kana($account,"akh") != $account ) { echo "駄目!!"; }
で行こうと思ったんだけど、
全角の漢字とか、スペースを入力されてしまいそう・・・
記号もたくさん入力されそう・・・

なんかいい方法ありますか?
0274nobodyさん03/06/30 06:52ID:???
>>273
ちょっと分からなくても正規表現やっておくといいと思うよ。

$a がフォームから受け取った文字
ereg("^[a-z0-9_-]+$", $a)

これで期待通りの結果が得られると思うけど、意味は自分で調べるとよろし。


それよりお前ら、PHP5.0.0 Beta1なんてのが表舞台に出てきましたよ。
0275nobodyさん03/06/30 10:12ID:aQ17FmN/
登録された内容をメールで送信しようとしています。
EUCで書かれたファイルで作成するので

$line = mb_convert_encoding($line,"ISO-2022-JP","EUC-JP");
$subject = mb_convert_encoding($subject,"ISO-2022-JP","EUC-JP");
mail($mail,$subject,$line,"From: hoge@yahoo.co.jp\r\nReply-To: hoge@yahoo.co.jp");
としています。

送られてきたメールを見るとタイトルは文字化けしているのですが、
メッセージの方は問題無く表示されています。
なにが問題なのでしょう。
027625503/06/30 10:31ID:JZyVHkmB
>> 266-268

ありがとうございます!
m(_ _)m
べんきょうになりますな.
0277nobodyさん03/06/30 10:34ID:???
>>275
subjectをエンコードする
またはmb_send_mail()を使う
027827503/06/30 11:00ID:???
ありがとうございます。
mail()の個所をmb_send_mail()と変更しただけで、
mb_send_mail()を使用しましたが、
届いたメールは件名はあるがメッセージ自体が無い状態で届いてしまいました。

これもまたなぜなんでしょう。
0279nobodyさん03/06/30 11:26ID:???
>>278
メッセージのないメールを送ったとしか考えられない
028027503/06/30 11:35ID:???
mailではうまく行くんですよ。
操作自体も同じですし。
028127303/06/30 11:42ID:???
>>274
正規表現めんどくさそうだけど、今日一日やってみます。
ありがとやんす〜

5.0.0Beta1期待!
0282nobodyさん03/06/30 12:26ID:???
>>275
$subject = mb_convert_encoding($subject,"SJIS","EUC");
$subject = '=?ISO-2022-JP?B?'.base64_encode($subject).'?=';
してから、mail関数で送信してみ
028327503/06/30 13:12ID:???
>>282
うまく行きました。
今からどういう処理なのか勉強したいと思います。
ありがとうございました。
0284nobodyさん03/06/30 16:01ID:???
数百行あるテキストファイルから指定した行だけ抜き出すにはどうしたらいいでしょうか?
fileで読み込むと全行読み込むから効率が悪いと思うのです。
0285あぼーんNGNG
あぼーん
0286nobodyさん03/06/30 17:43ID:???
ブラクラ注意
0287PHPDQN03/06/30 19:17ID:???
>>270
preg_replace("/\s/","",$hoge);
0288あぼーんNGNG
あぼーん
0289nobodyさん03/06/30 22:15ID:???
ブラクラ注意
0290nobodyさん03/07/01 11:51ID:???
ブラブラチンコ
0291nobodyさん03/07/01 19:25ID:???
>>284
n行目のファイル先頭からのオフセットを一覧にしたインデックスを作ったらどうか。
0292nobodyさん03/07/01 21:20ID:???
すみません
Shift-JISのファイルをEUCに変換できますか?
↓みたいなやつ作ったんですけど、データファイルがShift-JISだったんで読み込めない(汗

<?php
$data = file ("$file");
print $data;
?>
0293nobodyさん03/07/01 22:15ID:???
>>292

mb_convert_encoding(文字列,出力文字コード,入力文字コード)
で文字列ごとに変換しないとだめなのかも

PHPはじめて10日くらいなので詳しくは知りませんが
0294nobodyさん03/07/01 22:21ID:???
>>293
10日にしては上出来だ。
0295nobodyさん03/07/01 22:26ID:???
フォームから文字を入力して結果を表示する単純なものなんですけど、
"送信"を押しても何も表示されません。

どこが悪いのか・・・
<FORM action="<?php echo($_SERVER["PHP_SELF"]) ?>" method="POST">
なまえ:<INPUT type="text" name="yourname"><br>
<input type="submit" name="SUBMIT" value="送信"> <input type="reset" name="reset" value="リセット">
</FORM>
<?php
if ($SUBMIT != "" ) {
   echo ($yourname);
   }
?>
0296nobodyさん03/07/01 22:31ID:???
>>295
>if ($SUBMIT != "" ) {

新しい本を読みましょう。と。
029729503/07/01 22:52ID:???
>>296
ありがとうございます

>>295はPHP入門という本を参考にしてます
一番やさしそうだったんで買ったんですけど、たしかに内容古いかも

$_REQUESTを使うのかな?
もうちょっと試してみます
0298nobodyさん03/07/01 23:12ID:???
>>297
$HTTP_POST_VARS["SUBMIT"]
0299nobodyさん03/07/01 23:26ID:???
$_POST
0300nobodyさん03/07/01 23:37ID:???
>>297
内容古いのはぜんぜん問題ないよ。とにかく書けよ。
030129503/07/02 00:07ID:???
if ($_REQUEST["SUBMIT"] != "" ) {
  echo ($_REQUEST["yourname"]);
}
でようやく出来ました
ありがとうございましたー
0302nobodyさん03/07/02 00:14ID:???
>>301
あ〜あ・・・
0303nobodyさん03/07/02 01:52ID:???
>>301
まちがっちゃーいないんだけど
$_REQUESTはGETとPOST、COOKIE、FILESを区別しないから
セキュリティーホールになりやすい。
つーかなんで>>299の優しさをふいにするかなあ。
$_POST['SUBMIT'],$_POST['yourname']にしる!
0304nobodyさん03/07/02 06:21ID:???
>>300
>内容古いのはぜんぜん問題ないよ。とにかく書けよ。

ばっちり問題が出てるんだが。アホか?
0305nobodyさん03/07/02 06:21ID:???
>>303
>>298は無視か。死ね。
0306あぼーんNGNG
あぼーん
0307nobodyさん03/07/02 07:06ID:???
>>305
ごめんごめん。でも...それ...古いし。
4.1以降でも非推奨だしPHP5では使えんでしょ?(憶測
スルーしたのは素直に悪かったと思ふ。
0308nobodyさん03/07/02 08:22ID:???
な、なんだってーー!!!!
PHP5では使えなくなるのか・・・
0309nobodyさん03/07/02 15:03ID:iDV7N0wg
eregでマッチした数を得るにはどうしたらよいんでしょうか?
031030903/07/02 15:14ID:???
すんません。出来ました。
0311あぼーんNGNG
あぼーん
0312nobodyさん03/07/02 15:39ID:???
ブラクラ注意
0313K03/07/02 15:55ID:+4nJpvGg
CGIを使ったHPとそうでないHPはどこが違うんですか?
0314あぼーんNGNG
あぼーん
0315あぼーんNGNG
あぼーん
0316nobodyさん03/07/02 20:54ID:???
ブラクラ注意
031730103/07/02 21:24ID:???
>>303
あわわ・・・

ttp://search.net-newbie.com/php/language.variables.predefined.html
↑にもユーザ入力機構によりスクリプトに入力される全ての変数で、 このため、信頼することができません
ってありました。

以後、気をつけます。
0318404.HDML ◆StMXML.EXE 03/07/03 03:55ID:???
>>309

if(ereg(一致条件,評価する変数,$hoge)){ # 眠いので勘弁して
die(count($hoge));
}

一致条件にマッチした箇所が配列として$hogeに入るので、
後は$hogeをcount()関数で数える、という事を思いついた。。
0319nobodyさん03/07/03 04:03ID:???
>>309
preg_match_allならそのままできるんだが
0320nobodyさん03/07/04 00:29ID:WD3uwLUp
linux(赤帽7.3)+PHP4.1を使用しています。

PHPから、linuxの認証を使い回すことは可能でしょうか?
また、その際、パスワードの変更なども可能でしょうか?
0321nobodyさん03/07/04 06:27ID:???
>>320
激しくセキュリティホールな予感。

passwdにSUIDとか立てたら・・・・って立ってるのか。可能っぽいよ。
0322nobodyさん03/07/04 09:14ID:DNjraE66
イメージ関数で画像の減色って出来ますか?
リサイズは出来たんですけど、減色の方法がわかりません・・。
0323nobodyさん03/07/04 14:36ID:???
User-Agentを取得してMysqlのデータベースに蓄積しています。
$headers=getallheaders();
$ua = $headers['User-Agent'];
としています。
"Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)"が欲しいのですが
"Mozilla/4.0"
までしかデータベースに入りません。どうすれば良いのでしょうか。
ローカルで試しています。PHP 4.3.2 Apache/1.3.24
ご教授願います。
0324nobodyさん03/07/04 16:03ID:ykyCw+EL
FlashとPHPで変数をやりとりしたいのですが
PHPからFlashに送るためには
どういう風にスクリプトを書けばいいんでしょう?
Flash側はsendAndLoadなどで送られてきた
データを受け取ることはわかっているのですが
PHPからどう出力すれぱいいのかわかりません。
(例えばecho ($hoge)などで出力するわけじゃないですよね…)

あともうひとつFlashからPHPに変数を送る際に
返り値もなにも受け取らず、ターゲットウインドウもなし
ただ単純に変数を送るだけってことはできるんでしょうか?
sendで送信後に送り先の「〜.php」が開いてしまいます。
↑板違いなFlash含んでて申し訳ないです。
0325nobodyさん03/07/04 16:22ID:???
PHP+MySQLで掲示板とか作って配布しようと思ってるんですが、テーブルのLOCKって必要ですか?
0326nobodyさん03/07/04 16:27ID:???
>>323
フィールドのタイプとか文字数とかどんなクエリで取り出してるとか教えてくれないの?
0327nobodyさん03/07/04 21:18ID:???
Perlから移植したいのですが

$in{'FROM'} =~ s/◆/◇/g;
  if ($in{'FROM'} =~ /#(.+)/){
     my $key = $1;
     my $salt = substr($key."H.", 1, 2);
     $salt =~ s/[^\.-z]/\./g;
     $salt =~ tr/:;<=>?@[\\]^_`/ABCDEFGabcdef/;
     $trip = ' ◆</b>' . substr(crypt($key, $salt), -8) . '<b>';


はどうすればよいでしょうか?

$salt =~ tr/:;<=>?@[\\]^_`/ABCDEFGabcdef/;

でつまってしまいました。厨な質問で申し訳ないですがよろしくお願いします
0328nobodyさん03/07/04 21:32ID:???
>>325
読むだけならどうでも良いけど書くなら必須。
0329nobodyさん03/07/04 21:33ID:???
>>327
$salt = strtr($salt,":;<=>?@[\\]^_`","ABCDEFGabcdef");
0330nobodyさん03/07/04 22:14ID:???
ありがとうございます。いい掲示板つくれそうっす
0331nobodyさん03/07/04 22:15ID:2pHtYtXT
ここはphpBBに関する質問は宜しいのでしょうか。
駄目ならすいませんが誘導ください。

phpBBをインストールし、Global Announcement Modというものを新しくインストールしたのですが、なにも項目も追加されてませんし、「重要」トピックなどで投稿しても全てのフォーラムに反映しません。
コレはどうすれば宜しいのでしょうか?
宜しくお願いします
0332名無し03/07/04 22:26ID:P/UD1L9m
ファイルが存在しなければ作成したいだけなのですが、
エラーが出てしまいます。下記の記述で間違っている個所があるのでしょうか?
$file="file.dat";
if(!file_exists($file)){
$fp = @fopen($file,"w") || die("error");
flock($fp,LOCK_EX);
$print="aaa";
fputs($fp,$print);
flock($fp,LOCK_UN);
fclose($fp);
}
ホントに初歩的な質問ですみません。。。
ご回答お願いします。




033332503/07/04 22:31ID:???
>>328
わかりました。WRITEロックかけます
有難うございました
0334nobodyさん03/07/04 23:11ID:???
>332

>$fp = @fopen($file,"w") || die("error");

var_dump($fp); してみてください。
これだと、たぶん $fp がリソースではなくbool型になってる。
正しくは $fp = @fopen($file,"w") or die("error");
こうすれば = が処理される前に $fp が評価されるはず。
演算子の優先順位の項目を参照のこと。

質問するときはどこでどんなエラーが出てるのかちゃんと書けって
いつも言ってるだろこのバカチンが !!
0335nobodyさん03/07/04 23:13ID:???
訂正。
評価されるのは $fp に入る前の fopen(); の結果ね。
0336nobodyさん03/07/04 23:29ID:???
>>325
MySQLの場合、単行updateなら不要。
マニュアルのlockの項を参照。
0337nobodyさん03/07/04 23:31ID:???
fopenの前に@をつけるとどういう意味になるの?
0338nobodyさん03/07/04 23:49ID:???
@foo();
This will supress the injection of error messages into the data stream output to the web client.
0339nobodyさん03/07/05 00:34ID:???
エラーが出たならそれをコピペ汁↓
034033603/07/05 00:42ID:???
あ、勿論DB操作するスクリプトが並列に動いてるなら、
対象行がdelete掛けられた場合の処理(逃げ)は必要だよ
0341nobodyさん03/07/05 04:20ID:???
supressってなんだろう・・・
0342nobodyさん03/07/05 08:20ID:???
>正しくは $fp = @fopen($file,"w") or die("error");
>こうすれば = が処理される前に $fp が評価されるはず。

ダメじゃん・・・。
0343nobodyさん03/07/05 09:26ID:???
>>341
×supress
○suppress
0344nobodyさん03/07/05 10:06ID:???
>>332
$fp = @fopen($file,"w");
if ($fp) {
#処理
}else {
die ("error");
}
0345nobodyさん03/07/05 10:36ID:???
>>343
ありがとう。ようやくexciteで翻訳できた。
0346nobodyさん03/07/05 22:14ID:???
>>342 ->-> >>335で。
034732303/07/06 13:15ID:???
>>326
フィールドのタイプはtext、文字数は設定なし、取り出してるクエリは
SELECT *
FROM `テーブル名`
です。
よろしくお願いいたします。
0348あぼーんNGNG
あぼーん
0349nobodyさん03/07/06 18:42ID:???
>>348
一刻も早く消されることを願う。
0350あぼーんNGNG
あぼーん
0351nobodyさん03/07/06 19:48ID:???
>>347
どうやってテーブルに入れてるの?
「入ってない」んだったら取り出すよりも入れるほうが問題かも
035232303/07/06 20:28ID:kEFDIfkp
>>351
レスありがとうございます。
print "<input type=\"hidden\" name=\"ip\" value=$ip>\n";
print "<input type=\"hidden\" name=\"ua\" value=$ua>\n";
のような形でフォームから普通に配列に入れてテーブルに追加しているつもりだったのですが
DWMXを使ってしまったのでよく解らなくなりました。下記のあたりはどうすればよいのでしょうか。
function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "")
{
$theValue = (!get_magic_quotes_gpc()) ? addslashes($theValue) : $theValue;
switch ($theType) {
case "text":
$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
break;
case "long":
case "int":
$theValue = ($theValue != "") ? intval($theValue) : "NULL";
break;
case "double":
$theValue = ($theValue != "") ? "'" . doubleval($theValue) . "'" : "NULL";
break;
case "date":
$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
break;
case "defined":
$theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
break;
}
return $theValue;
}
0353あぼーんNGNG
あぼーん
0354nobodyさん03/07/06 23:11ID:???
>>352

横レス 失礼

もしかして パワープラント 使ってました?
いや theXXX か゜懐かしかったもので。
0355名無し03/07/07 16:56ID:+XnYDKVb
>>334 失礼いたしました(´∀`ι
ようやく解決しました。「or」に直し、if文をなくすとOKでした。
ありがとうございました。
PS.>>337 @fopen=>の@は、エラー抑止させるという機能です。
0356あぼーんNGNG
あぼーん
0357nobodyさん03/07/07 18:33ID:???
flock関数が環境依存なので、ディレクトリ操作でロックしようかと思うのですが、
調べたところあんまり評判がよくないような気がします。

他にクールなファイルロックの手段ってありますか?
0358nobodyさん03/07/07 18:37ID:???
ちなみにこのスレを参考にしました。
【Perl】ファイルロック(排他処理)について語ろう
http://pc2.2ch.net/test/read.cgi/php/1024795138/
0359nobodyさん03/07/07 21:58ID:???
Apache/PHP さわり初めて3日。
Windows2000Professional sp3
Apache2.0.46
PHP 4.3.2
Firebird 1.5RC3
でPHPソース EUC-JP
データベース EUCJ_0208
magic_quotes_gpc off
mbstring.language = Japanese
mbstring.internal_encoding = EUC-JP
mbstring.http_input = auto
mbstring.http_output = EUC-JP
mbstring.encoding_translation = On
mbstring.detect_order = auto
mbstring.substitute_character = none;
mbstring.func_overload = 0
;mbstring.script_encoding = SJIS
でquery結果を Print するとデータベースから取り出した
漢字の 井(0x88,0xE4) が 遺・(0x88,0xE2,0xE1) に
なるんだが、どこがまずいのかさっぱりわからん…
へるぷみー
0360nobodyさん03/07/08 02:21ID:???
全部;閉じて試してみ。
036135903/07/08 09:14ID:???
う〜ん、設定全部閉じてもかわらんです。
どうもデータベースの取り出し結果が必ず SJIS になってるような…。
ソース  DB   
EUCJ   EUCJ  文字化け
EUCJ   SJIS   文字化け
SJIS   SJIS   ○
SJIS    EUCJ   ○
出力設定の変更では何も変化なし。
0362nobodyさん03/07/08 12:11ID:jypS6q60
copy関数でファイルのアップロードをしているのですが、
msi形式のファイルをアップロードするとコピーされません。
他の形式のファイルでは問題なくアップロードできるのですが、
何か問題があるのでしょうか?
0363nobodyさん03/07/08 12:58ID:???
拡張子や 実際のファイルの中身で copyの挙動は変わらないと思うから、
他の原因を探ってみては?

・ファイルサイズ
・自分でmsiを拒否ってた。
・ブラウザで存在確認しただけだった。
・そもそもmsiの中の人など居なかった等々
0364nobodyさん03/07/08 13:18ID:jypS6q60
>>363
いや、拡張子でなくバイナリ的にmsiが何か拒否られてるみたいなんです。
ためしにpdfファイルを拡張子msiに変えて試したら正常にコピーされました。
逆にmsiファイルをpdfに変えてもダメ。他のmsiファイルで試してもダメ。

LAN内の端末なので実際にファイルがコピーされてないことも確認してます。
0365nobodyさん03/07/08 13:30ID:syho/6wx
窓を開けばのランキングのリンクってどうやって張るの?
036632303/07/08 14:24ID:???
なんとなく解決しました。
フォームから入力するのをやめたらできました。
0367nobodyさん03/07/08 19:13ID:???
今、携帯対応版の掲示板をと考えています。
そこで、PHP4.3.2にGD2.0.15のGIFサポート版を
リンクしてコンパイルしようとするのですが、PHPのmakeで
エラーがでてしまいます。どなたか、実践された方居られませんか?

GDの ./configure
./configure \
--with-png=/usr/local --with-freetype=/usr/local --with-jpeg=/usr/local --with-xpm=/usr/X11R6

PHPの ./configure
./configure \
--enable-zend-multibyte --enable-mbstring --enable-zend-multibyte --enable-calendar --with-imap=/usr/local/lib \
--with-mysql=/usr/local/mysql --with-apxs=/usr/local/apache/bin/apxs --enable-exif \
--with-gd=/usr/local --with-zlib-dir=/usr/local/include \
--with-png-dir=/usr/local --with-jpeg-dir=/usr/local --with-freetype-dir=/usr/local --with-xpm-dir=/usr/X11R6 --with-zlib-dir=/usr/local

そのままでは make中
ext/gd/gd.c に undefined reference なエラーが発生するので
展開したGDの gd.* gd_gd.* gd_io.*を ext/gd/ にコピーしてmakeすると
main/internal_functions_cli.c に undefined reference to `gd_module_entry'
なエラーがでてしまいます。どうやら ext/gd/php_gd.h の
extern zend_module_entry gd_module_entry; あたりかなとは思うのですが、
ここで力尽きてしまいました。どなたかご存知の方居られましたら
ご教授ください。なおOSはFreeBSD4.3です。

長文失礼しました。

GIFサポートはこれで、どうやらLZW系のライセンスはクリアしているらしいのですが
ttp://www.rime.com.au/gd/
0368nobodyさん03/07/10 09:27ID:???
GIFライセンスって切れたんじゃなかったの?
0369nobodyさん03/07/10 11:44ID:???
>>368
切れたには切れた。米UNISYSだけね。
日UNISYSでは、来年の6月19日まで。
0370nobodyさん03/07/11 01:11ID:jNV68Tt5
0371あぼーんNGNG
あぼーん
0372nobodyさん03/07/11 01:37ID:jNV68Tt5
shift-jisでかいちゃダメなんですか?
eucで書くと何も表示されません。
エンコード変えて表示させてもF5すると、またエンコード切り替わって、
何も表示されなくなってしまいます。

超初心者です。教えてください。
0373あぼーんNGNG
あぼーん
0374nobodyさん03/07/11 04:52ID:???
>>372
PHPマヌアルには「SJISでは書かない方がいい」みたいな事が書いてある。
それから、文字化けについては吐き出したHTMLのソースを見れ。
037537203/07/11 08:16ID:???
>>374
僕が持ってる本にはSJISで書いてあるんですよ。
SJISだとちゃんと表示されます。
0376nobodyさん03/07/11 09:57ID:???
HTTPヘッダーやらPHP内で使用してるcodingやらHTMLのMETAでの指定やらサーバにUpする際のエンコード指定やら
考えるべきは沢山あるな。

で、本にはSJISで書いてあるってどういうこと?
つーか書名キボンヌ。
037737203/07/12 03:12ID:???
すいません。よく見たら、EUCで書いてありました。
付いているCD-ROMがSJISとEUCに分かれていて、
僕がSJISを参照しているだけでした。

一応、本の名前は「そのまま使えるPHPサンプル100選」 技術評論社
です。

申し訳ないついでにもう一つ質問なんですけど、PHPは半角スペース
は意味がないんですか?サーバー系のはあるだなんだ〜ってこと
聞いたことがあるんですけど。あー馬鹿っぽい質問だな〜
0378nobodyさん03/07/12 03:40ID:???
"mona" . "giko" -> "monagiko" のように文字連結する時や、
$mona = "";
$hanyan = "";
の「=」の位置を揃えたいとかなら 半角スペースの個数は関係ないよ。

p r i nt みたいに、PHP本体の解釈を妨げるような半角スペースの挿入は有害。

PHPが出力したHTMLの半角の話ならWeb制作板にカエレ!!
037937203/07/12 05:57ID:???
ありがとう。

ここにいさせてください。
0380nobodyさん03/07/12 07:34ID:???
初歩的な質問かもしれませんが、
ttp://www....../hoge.php?hoge=1
などするのはかっこ悪いので、
ttp://www....../hoge.php?hoge
というURLで処理を行いたいのですが可能でしょうか。
実際には、この=の先には特に意味は持たしません。

ページが長いので、?hogeの部分で判断できれば、
そのリストだけ表示するようにしようと思っています。
よろしくお願いします。
038136803/07/12 07:38ID:???
>>369
thanx
そっか来年か・・・またイロイロ復活するんだろうなぁ。
0382nobodyさん03/07/12 09:10ID:tmgiXdLP
>>380
$_SERVER["QUERY_STRING"]

$_SERVER["argv[0]"]
にhogeが入る。
argvは一般にコマンドライン用だからWebで使うならQUERY_STRINGの方かな
0383nobodyさん03/07/12 09:13ID:???
>argvは一般にコマンドライン用だからWebで使うならQUERY_STRINGの方かな

argv:コマンドライン引数
QUERY_STRING:環境変数

そもそも使い道が全然違うと思われ。
0384nobodyさん03/07/12 12:49ID:qK/j+nNB
Wwindows98+Apache1.3.27環境は改行コードがCRLFですが差分取得
をする際に意図する結果が得れません。PHPで\nにしていてもテキス
トに記録するとCRが追加されているみたいで
Range: Bytes=**-
で既得分のバイト数を渡して1文字b熾ヤって来ない緒態を期待してb澆R
の個瑞舶ェだけゴミが封ヤってきます。bQch型スクなbで専用ブラウャUでエ
ラ=[になります。ャeキストに記録bキる改行コードb\r\nにしてもャ_メでし
bス。何かよい対緒法はないでしb蛯、か。お願いbオます
0385nobodyさん03/07/12 12:53ID:???
>>384
PHPの前に読点について学んでくれ。
0386nobodyさん03/07/12 14:35ID:???
ブラウザがCookieをOnかOffにしているかを
知りたいんですがどういった命令がありますでしょうか?
0387nobodyさん03/07/12 15:20ID:???
1ページ目でcookieをあげる。2ページ目であげたcookieかどうかチェックする。
どの言語でも定型のやりかただと思うよ。
038838003/07/12 20:21ID:???
>>382-383
ありがとう。
0389nobodyさん03/07/12 23:50ID:???
Windows版では、fopen()のパラメータで
バイナリー指定(rbとかwbとか、そんな感じ)
があるので、それ付けてバイナリーとして
扱って見れ

あと詳しく書くのはよろしいが、折れみたいに
PDAで読み書きしてる椰子もおるんで、
適当に文切ってな
0390nobodyさん03/07/13 09:07ID:???
Wwindows98+Apache1.3.27環境は改行コードがCRLFですが差分取得
をする際に意図する結果が得れません。PHPで\nにしていてもテキス
トに記録するとCRが追加されているみたいで
Range: Bytes=**-
で既得分のバイト数を渡して1文字も返って来ない状態を期待してもCR
の個数分だけゴミが返ってきます。2ch型スクなんで専用ブラウザでエ
ラーになります。テキストに記録する改行コードを\r\nにしてもダメでし
た。何かよい対処法はないでしょうか。お願いします
Wwindows98+Apache1.3.27環境は改行コードがCRLFですが差分取得
をする際に意図する結果が得れません。PHPで\nにしていてもテキス
トに記録するとCRが追加されているみたいで
Range: Bytes=**-
で既得分のバイト数を渡して1文字も返って来ない状態を期待してもCR
の個数分だけゴミが返ってきます。2ch型スクなんで専用ブラウザでエ
ラーになります。テキストに記録する改行コードを\r\nにしてもダメでし
た。何かよい対処法はないでしょうか。お願いします
0391nobodyさん03/07/13 18:53ID:8ZbS77HL
本当に初歩的な質問で申し訳ないのですが
以下のような index.html と test.php があって
index.htmlのリンクをクリックしても何も表示されないのですが
何か宣言が足りないのでしょうか?

[index.html]
<html>
<body>
<a href="./test.php?mode=home">home</a>
</body>
</html>

[test.php]
<?php
print("$mode");
?>
0392nobodyさん03/07/13 19:09ID:???
>>391
参考にした資料が古いと思われ。
print($_GET['mode']);
でいけますよ。

ここの「警告」を読まれることをおすすめする。
http://jp.php.net/manual/ja/language.variables.predefined.php

あとprintは括弧がいらなかったりechoでも同じだったりするけど
そこら辺は好きなように書いてよかです。
039339103/07/13 19:15ID:???
>>392
ありがとうございました。
まさかバージョン違いだったとは・・・
0394あぼーんNGNG
あぼーん
0395nobodyさん03/07/13 22:32ID:???
install.txtどおりにやったのですが、インストールでいきなりこけてます。
解決のヒントをよろしくお願いします。

OS:
WindowsXPPro(sp1a)

Webサーバ:
Apache1.3.27(Windows版)
インストール先C:\Program Files\Apache Group\Apache

PHP(zip):
PHP 4.3.2(Windows版)
インストール先C:\Program Files\php

症状:
phpファイルを実行しようとすると、ダウンロードダイアログが表示されて、プログラムを実行できない。

関係ありそうなこと:
(1)php4ts.dllはphp4apache.dllと同じフォルダ(C:\Program Files\php\sapi)にいれた。
(2)php.ini-distをphp.iniにリネームし、C:\WINDOWSにいれた。
php.iniのなかで、doc_rootをC:\Program Files\Apache Group\Apache\htdocsに設定。
(3)httpd.confには、
LoadModule php4_module "c:/Program Files/php/sapi/php4apache.dll"
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
を追加しています。
0396nobodyさん03/07/13 23:26ID:???
>>395
php4ts.dllはpathの通ってるところに放り込むこと。
つか、install.txtちゃんと読んでるようなんで、
そこにはNT系の場合のやり方が書いてあったでそ
デフォでWindowsインストールしてるのなら、
c:\windows\system32ディレクトリ

0397404.HDML ◆StMXML.EXE 03/07/13 23:28ID:???
>>395
>(1)php4ts.dllはphp4apache.dllと同じフォルダ(C:\Program Files\php\sapi)にいれた。

"php4ts.dll"は、"C:/WINDOWS/system32"フォルダ内に収めて下さい。
後、Apache1なら"AddModule"宣言を忘れていませんか?
039837203/07/14 04:19ID:???
>>397
"AddModule"宣言ってなんですか?
0399nobodyさん03/07/14 04:24ID:???
>>398
ネタなのか釣りなのか騙りなのか分からないけど、
このあたりをブックマックしておいて悩んだ時や暇な時に見ておくとよい。
http://japache.infoscience.co.jp/
040039503/07/14 10:43ID:???
お返事ありがとうございます。・・・いまだにハローワールドできません。(苦笑)
>>396
install.txtによると、
So where does php4ts.dll has to be to be properly loaded ?
php4ts.dll is searched in the following order:

1) in the directory where apache.exe is start from
2) in the directory where php4apache.dll is loaded from
3) in your %SYSTEMROOT%\System32, %SYSTEMROOT%\system and
%SYSTEMROOT% directory.
Note: %SYSTEMROOT%\System32 only applies to Windows NT/2000/XP)
4) in your whole %PATH%

で上の設定は2)にしたつもりです。ちなみにc:\WINDOWS\system32にphp4ts.dllをいれても同じ症状でした。
というより、2)の設定で、php4ts.dllの名前をphp4ts.dll.oldなどに変えると、php4apache.dllが読み込めない
とのエラーがでたので、php4ts.dllの読み込みはできていたのではないでしょうか?

>>397
httpd.confにAddModule宣言
AddModule mod_php4.c
を入れると、
[warn] module mod_php4.c is already added,skipping
とでたのでAddModule宣言はコメントアウトしています。
0401nobodyさん03/07/14 10:43ID:???
今までずっと疑問だったんですけど
何故PHPのマニュアルって色んなサイトで掲載されているの?
Googleで検索すると同じ(内容)マニュアルばっかり引っかかって悲しい。
0402nobodyさん03/07/14 12:43ID:???
>>401
そうやってヒットさせて自サイトのアクセスを増やすため。
しかし掲載しているマニュアルが古いと頃したくなる
0403404.HDML ◆StMXML.EXE 03/07/14 13:48ID:???
>>400
ぅぃ。試しにアナタとほぼ同環境であろうWindowsXP Pro SP1使って
Apache/1.3.27とPHP/4.3.2をインスコしてみたんだが、、

何の問題無くphpinfo()内容が表示出来たぞ?
php.iniに関しては、php.ini-distをリネームしただけで内容の編集すら
していない。一体、どうなってやがる?

ちなみに、俺が設置したパスは以下の通り。

Apache/1.3.27(msi Package) → C:/
# Cドライブ直下

ActivePerl/5.8.0(msi Package) → C:/usr
# これは必要無いけど

PHP/4.3.2(ZIP Package) → C:/usr/local
# Linuxっぽく(Linuxなら、"/usr/local/lib"だけど)

php.ini → C:/WINDOWS
php4ts.dll → C:/WINDOWS/system32

原則的に、>>397で書いた事以外はしていましぇん。
0404nobodyさん03/07/14 15:00ID:???
PHPでテキストカウンタを作ってHTML内に
<?include(counter.php);?>
で挿入しましたが数字がでません。index.htmlをindex.phpに
書き換えたところ、数字がちゃんと表示されました。
これはなぜなんですか?

検索エンジンに登録することを考えるとindex.htmlをindex.phpに
書きかえると面倒なのであまりそうしたくありません。
0405nobodyさん03/07/14 15:52ID:???
VineLinux2.6でphp4.3.2使ってるんですが、
使いたいオプションが初回インストールで入れていなかったので
後から追加しよう、と思いやっているのですがphpinfo()のほうが全く変化なしっ! 実際にインスコもされていない模様。
./configure clean して、その後下記の./configureしてもアカン。

こういうもんなんでしょうか?
オプションの後入れは無理ですか?(´・ω・`)

参考(下の行が追加したオプション
./configure --with-apxs=/usr/sbin/apxs --enable-mbstring --enable-mbregex
--with-gd --with-jpeg-dir=/usr/lib/ --with-zlib-dir=/usr/lib

>>404
あなたの使っているWebサーバで *.html はphpが動かない仕様になってるからですよ〜
confや.htaccessいじれば*.htmlでphp動かせますよ。
0406nobodyさん03/07/14 16:53ID:???
>>405
make installした?
Apacheのrestartは?
040740503/07/14 17:15ID:???
>>406
レスありがとうっす。
ええ、もちろん make intall や restart 、これでもダメだったのでOS再起動までしてました。

で、たった今解決してしまいますた。
$ make clean
makeにcleanなんて存在するのを初めて知りました。。(恥
make cleanしたあとはなんてことなく、上手くいきました・・・
040839503/07/14 20:12ID:???
>>403
うお。わざわざインスコしてくれたんですか?
どうもすみません。

とりあえず、あとで原因追求するためにhttpd.confとphp.iniのバックアップをとった後、
インストールディレクトリを変えて、>>397の要領でPHPとApacheの再インストールしてみます。
ついでにApache2でも試してみます。

Apache+PHP+PostgreSQLで幸せになれると思ったんですが、あふぉには険しい道のりらしい。
ウィンドウズにこだわらんと素直にPC-UNIXしたほうがいいんかな。

お騒がせしました。
0409よん ◆StMXML.EXE 03/07/14 22:37ID:???
>>408
つーか何故、WindowsにApache入れてPHP入れる事位に失敗してるのかよく理解
出来ないのだけれども。フォルダに必要ファイルを放り込むだけじゃないの。
httpd.confだって、数箇所書き加えるだけなんだし。

httpd.conf(前略)

#LoadModule headers_module modules/mod_headers.so
#LoadModule usertrack_module modules/mod_usertrack.so
#LoadModule unique_id_module modules/mod_unique_id.so
LoadModule php4_module C:/usr/local/php/sapi/php4apache.dll

(中略)

#AddModule mod_unique_id.c
AddModule mod_so.c
AddModule mod_setenvif.c
AddModule mod_php4.c

(中略)

AddType application/x-tar .tgz
AddType image/x-icon .ico
AddType application/x-httpd-php php phtml
AddType application/x-httpd-php-source phps

(後略)
0410nobodyさん03/07/15 00:16ID:???
>>confや.htaccessいじれば*.htmlでphp動かせますよ。

どうすれば良いのか教えていただけませんか。
参考になるページとかでも良いんでお願いします。

0411nobodyさん03/07/15 02:13ID:???
>>408
またApacheの口が変わった関係があるのかと思ったけど、
Apache/1.3.27 ○PHP4.2.3、○PHP4.3.2、○PHP4.3.3RC1
Apache/2.0.47 ×PHP4.2.3、○PHP4.3.2、○PHP4.3.3RC1
#PHP4.2.3が×なのは正常。

条件
・WindowsXP Pro SP1
・php4ts.dllはそれぞれのバージョン同梱のものを、それぞれのsapiディレクトリに
・php.iniは読み込ませない。
・httpd.confはapacheインストール直後のものに以下の2行を加えたのみ
 AddType application/x-httpd-php .php .phtml
 LoadModule php4_module "c:/usr/php4/sapi/php4apache.dll"
上記を、CGIやshtmlのAddHandlerの下あたりに追記。
#実際にはphpのバージョンごとにphp423とかphp432に変えたり、
#Apache2はphp4apache2.dllを指定してます。

AddModule mod_php4.cは指定しないが、同じバージョンの付属のhttpd.confでも
公開時期の違いで記述に差(ClearModuleListの位置だったか、有無だったかな)があって
指定しないと駄目な場合もあった。[warn] module mod_php4.c is already added,skipping
となってるのなら、指定しないでOK。

apacheのインストールディレクトリ化のhtdocsに<? phpinfo(); ?>のスクリプトを
放り込んで、動作するか、正しい値が取れるかで確認。

ところで、httpd.confでは"C:/Program Files/Apache Group"のように
括ればスペース付きのディレクトリもOKだが、php.iniもそうだっけ?
(ディレクティブにもよるかも) あと\と/が必ずしも同義にならない
ディレクティブもあったような気がする。
0412404.HDML ◆StMXML.EXE 03/07/15 02:16ID:???
>>405
どこぞのサイトで「一度インスコしたPHPを再設定する為に再インスコする場
合、元有るファイル群を根刮ぎ消しとかないと設定が反映されてない」みたい
な内容のメモを見た事が有る気がするけど。。実際はドウナンダロウ。

って、解決済だったのか。。(・∀・∀・)

>>410
具体的には以下の一文を".htaccess"に書き加えたりします。
以下では、".php",".phtml","html"の拡張子でPHPを動作させます。

AddType application/x-httpd-php php phtml html

但し、アナタが利用しているウェブサーバで".htaccess"による設定変更を
許可していれば、の話でっせ。
0413404.HDML ◆StMXML.EXE 03/07/15 02:25ID:???
>>411
>AddModule mod_php4.cは指定しないが、同じバージョンの付属のhttpd.confでも
>公開時期の違いで記述に差(ClearModuleListの位置だったか、有無だったかな)があって
>指定しないと駄目な場合もあった。[warn] module mod_php4.c is already added,skipping
>となってるのなら、指定しないでOK。

これは知らなかった。公開時期の違いって具体的には、いつといつの違い?
俺が試したのは、昨日そのうちにダウソしたもの(Apache/1.3.27)なんだけど。
0414nobodyさん03/07/15 03:26ID:???
>>412
がんばって勉強してみます。

読み方はエイチティーアクセスと読むんでしょうか。
0415nobodyさん03/07/15 03:29ID:???
続けてすみません。
.htaccessはセキュリティ上置かない、と言うサーバがありましたが
セキュリティ弱いんですね。
0416404.HDML ◆StMXML.EXE 03/07/15 06:23ID:???
>>414-415
>読み方はエイチティーアクセスと読むんでしょうか。

その通り。

>.htaccessはセキュリティ上置かない、と言うサーバがありましたが
>セキュリティ弱いんですね。

そりゃユーザ任意で好き勝手な設定されたらサーバ管理しづらいからね。
但し、ウェブサーバ管理者の設定によって".htaccess"で変更できる内容を
細かく制限できるので、一概に「セキュリティが云々」というのも、只の
怠け文句の様にしか聞こえんわな。

ああ、そうそう。".htaccess"は、"Apache(アパッチ)"というウェブサーバにて利用できる、
ディレクトリ毎の設定ファイルの事です。
ウェブサーバとしてApacheを採用していない所では使えませんよ。
0417山崎 渉03/07/15 11:06ID:???

 __∧_∧_
 |(  ^^ )| <寝るぽ(^^)
 |\⌒⌒⌒\
 \ |⌒⌒⌒~|         山崎渉
   ~ ̄ ̄ ̄ ̄
0418nobodyさん03/07/15 11:10ID:1Nim6t2Z
掲示板を作成しています。htmlspecialcharsでhtmlを無効にしているのですが、
一部のタグを使用できるように独自タグを実装し、
[code][/code]を<pre></pre>タグに置き換えています。改行は<br>に置き換えしています。

問題は<pre>タグ内の改行文字も<br>に置き換えているので、見た目上は問題ないのですが、
コピペすると、改行のない1行としてペーストされてしまうのです。
<pre>タグ内の改行が\nならきちんと改行されてコピーできるのを確認しました。

[code]〜[/code]で囲まれた文字内の改行文字だけを"~"などの
特殊な(使わなそうな)文字に置き換える方法はないでしょうか?
表示時に"~"を\nに置き換えたいと思っています。
情報不足でしたら、ご指摘ください。

windows2k apache 1.3.27 php4.2.3の環境で作業しています。
よろしくお願いします。
0419nobodyさん03/07/15 11:12ID:DBSRX3iv
ローカルでPHPをテストしたいんですが
Apacheをインストールしないとだめですか?
0420nobodyさん03/07/15 11:31ID:???
age
0421nobodyさん03/07/15 12:33ID:VrVVC0RB

function error($msg){
echo $msg;
exit;
}

を入れると

Fatal error: Cannot redeclare error() になる…

因みに別の設定ファイルにおいて require してます
0422nobodyさん03/07/15 12:36ID:dUuUFsTq
メールフォームを作ってそこからメールが送られてくるとリナックスサーバに
メール内容を残したいのですがどうすればいいんでしょうか・・・助けてください。
0423nobodyさん03/07/15 12:52ID:???
誰か>>422の文章の訳を助けてください
0424nobodyさん03/07/15 12:57ID:???
メールフォームからリナックスサーバへメールを送信するんじゃねーの?
で、クライアントがサーバのメールを読んで削除してしまうのを
残したいってことか?
0425nobodyさん03/07/15 14:13ID:VrVVC0RB
>>421
requireでなくしたら治った…なんだったんだ
0426nobodyさん03/07/15 14:23ID:dUuUFsTq
>424
だいたいそんな感じなのですが
htmlでメールフォームを作り、送信を押すとリナックスサーバにメールを
送るということなのですが、やり方がわからなくて・・・
メールアドレスに送るのは簡単にできましたが・・・。
よろしくお願いします。
0427nobodyさん03/07/15 14:30ID:???
自動生成したテキストファイルをある操作でパーミッションを変えて
追記できないようにしました。ですが次回そのファイルにアクセスしよ
うとした時にパーミッションを変えた情報はどこにも残していないので
書き込みモードで開くとpermission deniedのエラーになります。

if(!($fp = fopen(***,**))){ error_trap()}
してもエラー処理は続行されますがエラー文は返ってきます。
これを回避するにはどうすればよいでしょうか?
パーッション情報を得て回避させるか完璧なエラー回避の構文に
するかだとは思うんですが具体的な知識がないので困ってます。
ググっても良い解決策は見当たりませんでした。
よろしくお願いします
042842703/07/15 14:43ID:???
ちなみにデバッグの度にphp.iniを書きかえるのは避けたいです
0429nobodyさん03/07/15 15:12ID:???
>>427
書き込む前にパーミッションを変更したらええやん。
0430nobodyさん03/07/15 15:43ID:???
>>427
is_writable("file")で書き込み可能か調べればいい
043142703/07/15 17:21ID:ptJK4UDQ
>>430
おお!そんな手もあるんですね。ありがとうございます。
応急処置でstat(filename)でやってみましたがそちらに切り替えて
みます
0432nobodyさん03/07/15 17:51ID:???
インストールできません

Windows 2000
php 5.0.1b1-win32.zip
apache 2.0.47

手順どおりphpのファイルを展開。
apache起動時にcannnot load c:/php/sapi/php4apache2.dllが
ロードできませんとのエラーメッセージ。
ファイルはあるけど、ロードできないです。
043342703/07/15 17:54ID:ptJK4UDQ
>>430
成功です。ありがとうございました
0434nobodyさん03/07/15 17:56ID:???
>>432
PHP5を入れたいのにphp4apache2.dllを組み込もうとしてるの?
もしPHP4の間違いならすでに動かしている方のhttp.confの一部を
見せてもらうとか
0435nobodyさん03/07/15 17:58ID:???
>>422
>>426
何がやりたいのか?
そもそもメールフォームからのメールの送信は出来ているのか?
そのメールをサーバに置いて何かしたいという事なのか?
0436nobodyさん03/07/15 18:02ID:???
>>434
Download sectionで一番上にあったから5をとったけど
4のがいいのか。

変えてみます。
043739503/07/15 18:19ID:???
原因がわかりました。

httpd.confの
LoadModule php4_module C:/usr/local/php/sapi/php4apache.dll
をいれる位置が問題だったみたいです。
最初は176行目あたりに

# Example:
# LoadModule foo_module modules/mod_foo.so
LoadModule php4_module C:/usr/local/php/sapi/php4apache.dll

としていたのですが、>>411を参考にして、CGIやshtmlのAddHandlerの下あたり848行目に追記したところ
うまくいきました。なんか納得いきませんが。

ちなみに、Apache2ではこのような問題は発生せずすんなりでした。謎。
0438nobodyさん03/07/15 19:04ID:???
>>434
バージョンsageたら上手く逝った。
産休
0439nobodyさん03/07/15 19:19ID:???
PHP5は大規模商用サイトに向いているかもしれんが構造化に関する
部分以外はまだ何が変わったか調べる手間がもったいないと思う。
PHP4.3をいじくり回してみてある程度飲み込めてからでいいんじゃない
すか?
0440nobodyさん03/07/15 19:21ID:ptJK4UDQ
PHPコンパイラがホスイ
0441nobodyさん03/07/15 23:07ID:???
$line =~ s/^(..)(...)//;
正規表現してください,お願いします。
0442nobodyさん03/07/16 00:27ID:???
また見にきたらスレ違いでした。
すみませんです・・・
0443nobodyさん03/07/16 00:40ID:4pRAgQGC
少し板違いかもしれませんが、ここぐらいしか思い当たらなかったので・・

あるデータベース(何故か不明)のテーブルを書き出したtxtファイルがあり、
それをPosrgres+PHPのシステムに移してほしいと頼まれました。
(手元にはそのtxtファイルしかなく、元のデータベースは既に無いらしい・・)
が、あるフィールドがtextareaだったらしく、途中で改行が入っているのです。
id   name   abc(textarea)   tel
1  あああ  あああああ  11111
2  いいい  いいいいい  22222
3  ううう  うう   −−−(ここで改行)
\ううう  33333     −−−(改行の続き)
4  えええ  えええええ  44444
といった感じです。

Excelにインポートして少し配置を変えてからエクスポート、それから
COPYコマンドで入れ直すつもりだったのですが、途中の改行が邪魔をして
(上の例だと、「¥ううう」が、あたかもidのように居座っています)
困っています。しかもレコードは5000件ほどあり、手で直すわけにも・・・

どうにか上手くExcelでいじれる形まで持っていけないでしょうか?
お願いします。
044441503/07/16 00:48ID:???
>>416
どうもありがとう。
少しづつですがわかってきている状態です。
ちなみに僕が使っているとことはファイル設定が出来るそうです。

PHPどころかプログラム初心者なのでめちゃ苦労している状態です。
そもそも、PHPを始めたのはDBを作りたかったからです。
それ以外にもPHPが優れているところはどこなのでしょうか?
皆さんがなぜPHPをやり始めたのか聞かせてもらえませんか。
に比べてそれ以外に
044541503/07/16 00:50ID:???
ごめんなさい。

>>に比べてそれ以外に
↑これいりませんねw
0446nobodyさん03/07/16 00:51ID:???
>>443
データもってきたアホにやらせれば?


ってのは冗談で
本来の行末のフィールドに絶対改行が入らないなら、
一行ずつ取っていってフィールド数がたらんかったら
次の行を追加するようなスクリプト作れば?
0447nobodyさん03/07/16 00:52ID:???
>>443
改行を取り除くっていうかデータを整形するスクリプト
書けばいいんちがう?PerlでもPHPででも。
044844703/07/16 00:54ID:???
かぶった。スマソ。
0449nobodyさん03/07/16 01:32ID:APFwOkck
>>443
というよりタブ空文でも改行でもデータを拾うようにして4フィールど
毎に1つ目のフィールドが数字である事をチェックして真なら改行。
これでよいはず。前述でも同じ結果が得れたらなんでもいいだろうけど
0450nobodyさん03/07/16 01:38ID:???
>>449

ほげほげ
1
1

ってデータが入ってたらどうすんだべさ?
0451404(・∀・∀・)HDML ◆StMXML.EXE 03/07/16 01:42ID:???
>>444
俺の場合、PerlよりハイカラなイメージがPHPに有ったからというだけの理由。
ちなみに今でもド素人の部類に入ると思います。Perlの勉強すらすっとばして
いきなりPHPから始めちゃった訳ですから。
そもそも、自前でアクセス解析スクリプト程度のものを作れればいいかなー、
程度の目標だったんで上達する事も無く。
今借りてるレンタルサーバがSQLに対応してくれていないせいも有って、データ
ベース系を勉強する機会も興味も沸かないし。
0452nobodyさん03/07/16 01:48ID:APFwOkck
>>450
データ4個周期を基本にチェックしてるわけだし。よほどいいかげんな
DB処理でないかぎりIDとデータが混同される事はないでしょ。
0453nobodyさん03/07/16 02:07ID:???
>>452

id  name  abc  tel
1  あああ  あああ(改行)
1(改行)
1  090-xxxx-xxxx(改行)
2  あああ  あああ  090-xxxx-xxxx(改行)

ってのを
split /\t|\n/

ってやるとややこしくなんね?

違うやり方をいってるならスマソ。
045441503/07/16 02:55ID:???
>>451
そうなんですかw
僕の方は幸い、なんでも出来そうな環境が整っています。



DBまでの道のりは長そうなので、まず何Pかカウンターを作ってみました。
で、次なんですけど、何をやろうか迷っています。皆さんの参考を教えてください。

まだ、面白いと思える段階ですw
0455nobodyさん03/07/16 09:14ID:APFwOkck
>>453
まず1行分と予測する生データを4つバッファリングして5つ目のデータ
を参照。5つ目がIDデータだと判断できたら1行分を修正済みを格納す
る配列へ代入。もし5つ目がIDデータでないなら4つ目とくっつける。
で、6つ目をチェック。以下同様。
根本的に異常なデータが混じっていない限りきっちり修正出きると思う。
処理はややこしいかもしれないが確実。無条件な状況判断ではどこか
でおかしな処理をしやすいから串だんごみたいにして1本ずつ丁寧に
修正してやるとよいかも。
2ch互換スクの故障データの修正で体験した
0456nobodyさん03/07/16 16:45ID:IyV1t1TM
Cの__LINE__みたいなマクロって存在しますか?(現在のスクリプト内の行No)
自作のエラー用の関数で、何処で起きたか表示させたいのです
045741803/07/16 17:05ID:???
418です。
力業っぽいですが、解決しましたのでお知らせします。

#<pre class="code">〜</pre>に置き換え後、
$msg = str_replace("\n", "<br />", $msg);
$array = split("pre", $msg);
for($i = 0; $i<count($array); $i++){
if(strstr($array[$i], "class=\"code\"")) $array[$i] = str_replace("<br />","~~", $array[$i]);
}
$msg = join("pre", $array);

表示処理で
$msg = str_replace("~~","\n", $msg);


ありがとうございました。
0458nobodyさん03/07/16 21:11ID:???
変数を明示的に宣言しないと使えないようにする(エラーがでるようにする)ことは出来ないのでしょうか?
(C言語で言うところの int i; のように)
タイプミスで一文字違っただけで数時間も悩むのはもうイヤ!
0459nobodyさん03/07/17 01:05ID:???
>>458
つこてるバージョンによっても違うが、
error-reportのレベルをNOTICEも出力するようにすると出ない?
error_reporting(E_ALL)とか。
http://jp.php.net/manual/ja/function.error-reporting.php

あとは折れは"$文字列"の正規表現で、ファイルあたりの出現回数を
カウントしたりしてる。変数名に固有のプリフィクスつけて管理してるので。
0460nobodyさん03/07/17 06:00ID:???
>>459
get_defined_varsでいいんじゃないの?
0461nobodyさん03/07/18 07:11ID:???
WindowsCE向けのphpはありませんか?
もし存在するならどこにあるか教えてください。
0462nobodyさん03/07/18 10:22ID:???
>>461
Perlなら聞いた事があるが…
0463nobodyさん03/07/18 23:43ID:Uzp0kmuO
PHPの事全く分かりません。
Mac OS ] 10.2.6ですが、
PHPのバージョンてどこをみれば分かるのですか。
0464あぼーんNGNG
あぼーん
0465nobodyさん03/07/19 00:27ID:???
>>464
ナイスタイミング
0466nobodyさん03/07/19 01:26ID:???
>>462
うーん、Perl@CGIなら僕も聞いたことあるのですが、、、残念です。
046703/07/19 07:32ID:???
>>463
phpinfo見れ
0468nobodyさん03/07/19 12:46ID:???
>>463
CGI/CLIなら、php -v
関数:phpversion()
定義済み定数:PHP_VERSION
0469nobodyさん03/07/22 10:50ID:???
ジャンプさせるために
header("Location: http://hogehoge.com");
をつかってみたのですが、これだとリファラが残ってしまいます。

ソケット関数使わずにリファラを消すにはどうしたらいいですか?
0470nobodyさん03/07/22 20:45ID:???
>>469
困って問題があるのか?

不特定多数を別のサイトに送り込んでカウンタを無駄に上げたりするような用途位のような気がするんだが。困るのは。
0471nobodyさん03/07/23 02:19ID:???
それだったらソケット使ってます。
てか、もう一つページを挟めばいいかな。
適当にがんがって見ます。
0472PHP初心者03/07/23 21:32ID:8eneuWCZ
上でもGETやPOSTについてでてますが、
↓は上のフォームに記述して送信した文字列を下のフォームに表示する、
というものですが、

<body>
<form method="GET" action="form.php">
<p><input type="text" name="text1" size="40"> <input type="submit"
value="送信します" name="b"></p>
<p><input type="text" name="text2" size="40" value="<?php echo $_GET['text1'] ?>"></p>
</form>
</body>

実行すると、

<b>Notice</b>: Undefined index: text1 in <b>C:\Apache Group\Apache\htdocs\samples\form.php</b> on line <b>11</b><br />

というエラーが出ます。どこがおかしいのか、わからなくて困ってます。PHPは4.3.2を使ってます。
よろしくお願いします。
0473nobodyさん03/07/23 21:34ID:???
>>472
取りあえずどこが11行目か解るソース出せやボケ。
0474あぼーんNGNG
あぼーん
0475nobodyさん03/07/23 21:37ID:???
>>473
<p><input type="text" name="text2" size="40" value="<?php echo $_GET['text1'] ?>"></p>

ここが11行目です。
0476nobodyさん03/07/23 21:38ID:???
>>475
セミコロン忘れてるぞ。
0477nobodyさん03/07/23 22:13ID:???
だめだこりゃ
0478nobodyさん03/07/24 00:06ID:???
>>472
そのフォームはtext1を送信するのか受信するのかハッキリしろや
0479nobodyさん03/07/24 08:32ID:???
マニュアルっていつの間にUTF-8になったの ?
namazuで検索したいのでEUC版が欲しいのですが・・・
0480nobodyさん03/07/24 09:41ID:???
PHPを勉強したいんですけど、どの本がいいですかね?
0481nobodyさん03/07/24 10:03ID:???
<?=$a?>の方が短くてすき
0482nobodyさん03/07/24 10:37ID:???
>>472
とりあずNotice出したくないんなら変数を宣言しろ。
if(!isset($_GET[text1])) {$_GET[text1]="";}
if(!isset($_GET[text2])) {$_GET[text2]="";}
048348203/07/24 11:06ID:???
確認したらだめだった
if(!isset($_GET['text1'])) {$_GET['text1']="";}
if(!isset($_GET['text2'])) {$_GET['text2']="";}
こうだね。
0484nobodyさん03/07/24 11:14ID:???
if(!isset($_GET['text1'])) $_GET['text1'] = "";
if(!isset($_GET['text2'])) $_GET['text2'] = "";

むしろこうじゃ無いのかと。

@$_GET['text1'];
@$_GET['text2'];

でもいいけどね。
048547203/07/24 23:31ID:???
>>482-484
@$_GET['text1'];
で解決しました。どうもありがとうございました。
0486nobodyさん03/07/25 03:55ID:???
include についての疑問です。
includeは常時、ファイルをincludeして監視状態なのでしょうか?
ということは、大規模になると、遅くなる原因になるのかなと思いまして。

たとえば、config.phpが、
//config.php
$hoge = "2ch";
$moge = "3ch";



-------------------------
この時、

include "config.php";
echo $hoge;

それとも、
if($hituyou){include"config.php";}
echo $hoge;

こんな感じ。
大規模の時に下の方が負担は軽減される。
と妄想してるんですが、本当はどうなんでしょうか?
0487nobodyさん03/07/25 04:05ID:???
>>486
includeはその時点で全て読み込まれるんじゃ・・・
そのincludeファイルが必要になった時点で読み込めばいいと思うけど。

そんなに遅くなる原因にはならないと思うけど。
0488nobodyさん03/07/25 09:51ID:wJ5ItSln
質問させてください。
phpでgzip圧縮通信がしたくて、php.iniファイルの設定で、

output_handler = ob_gzhandler

としたのですが、これで正しく圧縮通信ができるのでしょうか?
もしできているのなら、それをどうやって確認すればいいでしょうか?
環境はRedHat9.0 Apache2 PHP 4.3です。
0489nobodyさん03/07/25 10:53ID:TM9efvfm
質問です、宜しくおねがいします。
phpのバージョンを4.2.3から4.3.2にアップグレードさせようと考えています。マニュアル、FAQ等でその方法を調べてみたのですが、探し方が悪いのでしょうかイマイチ明快な答えが見つかりません。
一応以下に示す方法を実行しよようと考えているのですが何か安易な気がしてなりません。お気付きの点がありましたらご指摘ください。

私的には、3. でmake clean して前のヴァージョンの makeファイルを削除するのがミソかなと思っているのですが…。
これでは前のヴァージョンをアンインストールすることにならないような気もします。そもそも前のヴァージョンを削除する必要があるのかどうかすら分かりません。
勉強不足で申し訳ありませんが、皆様宜しくお願いします。(昨夜一度質問してみたのですが、どこの板に書いたか見失ってしまいました…)

環境:RedHatLinux7.1+apache1.3.27+php4.2.3

1.まずhttpdを停止する。
$ su
# /etc/init.rd/httpd stop

2.php4.2.3のソースファイルが展開されているディレクトリに移動する。
# cd /usr/local/src/php-4.2.3

3. make clean でmakeファイルを削除する。
# make clean

4.php4.3.2のソースファイルが展開されているディレクトリに移動する。
# cd /usr/local/src/php-4.3.2

5. ./configure を実行する。
# './configure' '--enable-mbstring' '--enable-mbregex' '--enable-zend-multibyte' '--with-pgsql' '--with-apxs=/usr/sbin/apxs' '--without-gd' '--with-zlib' '--with-openssl' '--enable-versioning'

6.make 、make install を実行する。
# make
# make install

7.httpd を起動する。
# /etc/ini.rd/httpd start
0490あぼーんNGNG
あぼーん
0491nobodyさん03/07/25 11:16ID:???
>>489
俺、make cleanやってねーよ。でも動いてるけど。
どうなんだろうね? 試してみたら?
0492あぼーんNGNG
あぼーん
0493nobodyさん03/07/25 11:31ID:???
make clean 必要無いよ
make clean が何をやっているのか考えてみましょう
0494nobodyさん03/07/25 20:46ID:???
index.phpから、count/count.phpを呼び出してカウンタとして使おうとしているのですがうまくいきません。
index.phpからinclude_onceで読むのはうまくいくのですが、
count.phpからこれと同じ場所にあるデータファイルのcount.datを開こうとして

$fp =@fopen( "count.dat", "r") ;

とすると、

Warning: fopen("count.dat", "r") - No such file or directory in *********/count/count.php on line 42

となってしまいます。includeされたファイルの中で別のファイルを開く場合、パスの表記はどのようにすれば良いんでしょうか? 
読み込み元のファイルのディレクトリを基準にするのか、読み込まれたファイルのディレクトリを基準にするのかが分かりません。

と言うより後者ならこれでうまくいくと思うのですが、これだと一つのカウンタで複数ページをカウントさせるのに
面倒な気がするので、もっと良い方法が無いかと探しているのですが…
049548203/07/25 21:19ID:???
>>494
count.datを絶対パスで読み込め
0496 03/07/25 23:54ID:???
↑非常にいい子とイった!
0497nobodyさん03/07/25 23:55ID:OQ729f+c
ズブの初心者なんですが
ネット上によくある、フリーCGIの配布サイトでは時々
「セキュリティホールが見つかったのでバージョンアップしてください」
というようなことが書かれてたりしてますが、
PHPでもセキュリティホールはあるんですか?
あるとしたら、どんなのがまずいんでしょうか

とりあえず、どこかのPHPスレではPHPが「index.php」を吐くのはマズイ、
と書いてありました
フォーム入力を受け付ける、掲示板みたいなものを作る場合、タグを
除去すれば大丈夫ですか?
0498nobodyさん03/07/25 23:57ID:???
>>497
あんめろ
049949403/07/26 00:00ID:???
>>495
分かりました。その方法でやってみます。
ただ思い付きでいろいろ足して分かんなくなってきたので、
一から書直そうと思いますが。ありがとうございました。
0500nobodyさん03/07/26 00:00ID:???
>>498
すいません
おっしゃる意味がわかりません
0501nobodyさん03/07/26 00:00ID:???
>>500
喧嘩売ってんのか?
0502nobodyさん03/07/26 00:02ID:???
>>501
違います
あんめろってなんですか?
0503nobodyさん03/07/26 00:08ID:???
なんとなく気が向いたのでマジレスしてみるテスト。
>>502
PHP自体のセキュリティーホールとヘタレなコーディングによる
セキュリティーホールを混同してない?
「あんめろ」は「あんたには向いてない、やめろ」の意。
(民明書房刊「よくわかるセキュリティホール」より)
0504nobodyさん03/07/26 00:16ID:???
>>503
回答ありがとうです
自分が知りたかったのは、へたれなコーディングによる…の方でした
どんなコーディングがマズイのかな、と思って

「あんめろ」身に沁みました
0505nobodyさん03/07/26 01:21ID:???
>>497
>とりあえず、どこかのPHPスレではPHPが「index.php」を吐くのはマズイ、

なんでマズイの? 俺、吐き出してる。吐き出してる。 
0506あぼーんNGNG
あぼーん
0507あぼーんNGNG
あぼーん
0508nobodyさん03/07/26 03:13ID:83bOjRPY
PHPにファイルのアクセス時間と更新時間を変更するPerlのutimeに
相当するものはない?
てっきりfileutimeみたいな関数があるだろうと思ってマニュアルを
見てみたがどこを探してもない。
どうやって変えるのだ??
0509nobodyさん03/07/26 03:37ID:VZ1x6qD8
>>508
んなこたーない。
"ファイルシステム関数"という章をよく見る。
0510nobodyさん03/07/26 21:05ID:92eVqrLv
2chの掲示板URLみたいに
http://www.hogehoge.com/~hoge/test.php/20030724/2310
↑こんな感じにPHPへデータを渡す方法知りませんか?
0511 ◆AngelH/kMI 03/07/26 21:11ID:???
>>510
test.phpの内容を
<?php
phpinfo(32);
?>
にして結果見てみればわかる。
0512あぼーんNGNG
あぼーん
0513nobodyさん03/07/27 04:37ID:C5x2VQP+
>>509
更新変更はtouch()でやるのは分かったんだが、
最終アクセス変更をするのがやっぱり見当たらない。
0514nobodyさん03/07/27 09:42ID:???
>>513
Windowsなら単にreadしたりファイルサイズ取得関数とか使えば良し。
ファイルのプロパティ見てみ?いつも現在時刻だ。
0515nobodyさん03/07/27 22:48ID:0kmBdvtl
>>514
ファイルの中身を修正する前に、ファイルの時間情報を取得しておいて
処理が終わった後にファイルの時間情報は修正前のままにしておきたい
って場合にどうすればいいのかと。

つまり最終アクセス時間と最終更新時間を過去の時間に設定したい訳ですな。
Perlだとutimeで両方、任意の時間を入れてファイルの時間情報を修正できるけど、
PHPだとtouchで最終更新しか変更できないみたい(見つけられなかった)。

ちなみにPerlからPHPへの移植をやってる過程で出てきて???になった。
やってる移植では更新時間を見て処理に使ってるから、最終アクセスは
なくてもいいけど、なんらかの理由で最終アクセス時間の変更が必要に
なった場合はどうするんだろ?
0516nobodyさん03/07/27 23:33ID:???
touch()の3つ目の引数として最終アクセス時間
(UNIXタイムスタンプ)を指定できます。
しかしなんで公式のマニュアルには載ってないんだろ?
0517nobodyさん03/07/27 23:41ID:???
探した?あるよ。
0518nobodyさん03/07/27 23:53ID:???
あ、ほんとだ。いつもはmanual/ja見てるけどmanual/enにはばっちり載ってますね。
翻訳の遅れがあるみたいなのでこれからは英語版を見るようにします。
051951503/07/28 00:11ID:???
私も確認。Thanks. 本家php netからマニュアルにアクセスすると
自動で日本語版に切り替わるんだな。
touch (PHP 3, PHP 4 )
touch -- Sets access and modification time of file
bool touch ( string filename [, int time [, int atime]])
http://www.zend.com/manual/function.touch.php

日本語訳マニュアルをローカルに置いてそれを参照してたから
見つけられなかったよ。
英語版も随時参照すべしと自分に言い聞かせた次第。
0520nobodyさん03/07/28 00:13ID:???
ぅええ?あるよ。日本語も。
052151503/07/28 00:19ID:???
>>520
今ボチボチ本家見ててあるのに気が付いた。
普段、本家なんぞ見ちゃいないって事がバレバレな私。
0522nobodyさん03/07/28 00:26ID:???
あったでしょ。つっても
最近はけん日本語で検索できて便利よ。
ttp://www.phpoo.net
052351003/07/28 00:38ID:???
>>511
ありがとうございました。
0524nobodyさん03/07/28 15:06ID:???
phpで掲示板を作っているのですが、書き込みで「ソアラ」などとすると
ソ\アラというようにdataファイルに記録されています。
perlでつくった掲示板では普通にソアラと書き込めたんですが。
ローカルでshift-jisで書いております、eucでも試してみたんですがeucで保存すると
表示されないようです。php4.3.2を入れております。
ご助言願えませんか、ソースは下記のような感じでやってみました。
$carname = $_POST['carname'];
$newdata = implode(",", array($bango,$carname,$rap));
$kakikomi = fopen($datfile, "w");
rewind($kakikomi);
fputs($kakikomi, "$newdata\n");
0525nobodyさん03/07/28 15:22ID:???
>>524
国際化非対応だと文字が化けたりするもよん。
PHPはEUCで書く方が安心かと。
S-JISで受けたデータはjcode.phpでEUCにしてから内部で扱う。
んで、書出すときにまたEUC→S-JISに変換、と。

と言う事をどこぞで見たのだが。
052652403/07/28 17:36ID:???
>>525
ありがとうございます。EUCがいいんですね、調べてみます。
素人にとって文字コードは第一関門なんですかね。
0527nobodyさん03/07/28 17:36ID:???
質問です。

HTMLに値を埋め込む時に

<?= hoge ?>

という書き方の出来るサーバーと出来ないサーバーがあります。

www.php.net のマニュアルを見ると asp_tags という設定ディ
レクティブで設定可能なようなのですが、双方のサーバーで
phpinfo() で設定を確認すると両方offになっているのです。

出来るサーバーの方は Apache 1.x 系にPHP4.2.0 で、
出来ない方は Apache 2.x 系にPHP4.2.2です。
php.ini は特に置いてません。

上記の記法の出来る出来ないは asp_tags 以外に何か設定が
あるのでしょうか?
0528nobodyさん03/07/28 18:09ID:???
エエエェェ!!
052952503/07/28 18:30ID:???
>>526
俺も初心者なんで、あまり詳しい事は書けませんけど、色々とチュートリアルを公開しているサイトを見る限りでは
初めからEUCで扱う(無論出力されるHTMLなんかも)か、せめて内部ではEUCとして扱う方がトラブルが少ない様です。
元々UNIX系はEUCだったと思うし、jcode.phpは見た感じそれほど使い方は難しくなさそうなんで、間に噛ませても良いんではないかと。

このスレの前半の方にもそんな話があったので、探してみると役に立つやも。
0530 03/07/28 18:39ID:???
mb関数は使えんのか?

>>527
short_open_tag
0531nobodyさん03/07/28 19:24ID:???
>>524
$carname = strip_slashes($_POST['carname']);
0532nobodyさん03/07/28 19:27ID:hpj2UE6D
PEARとかPHPLIBとかよく聞きますが、PHPのクラスファイルを
ライブラリにする方法を知っていたら、誰か教えてくだすぁい。
0533あぼーんNGNG
あぼーん
0534nobodyさん03/07/28 23:51ID:???
2ch型というかほとんど2chと同じphpの掲示板ってないでしょうか。
自分でつくってるんですが行き詰まりを感じてしまって
0535 03/07/29 00:03ID:???
>>534
http://pc2.2ch.net/test/read.php/php/1055280252/
0536nobodyさん03/07/29 08:38ID:???
>530
THX

short_open_tag でビンゴでした。
マニュアルでも asp_tags のすぐ上に書いてあったし(ウトゥ
0537nobodyさん03/07/29 23:27ID:???
http://techside.net/i_shot_p/vi.cgi
ここの画像投稿BBS、どうやって画像に文字を埋め込んでいるんだろう?
0538 03/07/29 23:52ID:???
>>537
設置者に聞けよ。
GDかなんかじゃないんか?
0539nobodyさん03/07/30 00:48ID:???
文字列中の空白、カッコ、ハイフンを削除したいのですが、もっと上手い方法ありませんでしょうか?

$str="ほ げ(ほ げ)-ほ げ";
$char1=" ";
$char2="(";
$char3=")";
$char4="-";
$char5="";
$str1=str_replace($char1,$char5,$str);
$str2=str_replace($char2,$char5,$str1);
$str3=str_replace($char3,$char5,$str2);
$str4=str_replace($char4,$char5,$str3);
echo "$str4";
0540 03/07/30 01:33ID:???
>>539
preg_replace
0541nobodyさん03/07/30 02:30ID:2CHAOdfR
>>539
マニュアルより
>PHP 4.0.5 以降では、str_replace() への全てのパラメータは
>配列とすることが可能です。

0542あぼーんNGNG
あぼーん
0543nobodyさん03/07/30 03:43ID:+xTBPNpJ
PHP で perl の様な配列のスライスへの代入って出来なかったっけ?
昔、phpのメーリングリストで見たような気がしたんだけど、
googleで調べたら出来ないって書かれたサイトが出てた。
0544nobodyさん03/07/30 11:15ID:???
>perl の様な配列のスライスへの代入
ここを説明しないと。(w
0545nobodyさん03/07/30 12:12ID:???
@hoge{ 'a', 'b' }
こういうことあじぇ?
0546nobodyさん03/07/30 13:50ID:WV3lkWy5
PHP4.3をWinにインストールしてANHTTPD使ってCGIモードで
動かしてます。とりあえず
<?php phpinfo() ?>
は正常に表示されるので動作自体はしてると思うんですが
<? echo "てすと"; ?>
とかやると思いっきり文字化けしてしまいます。
winnt/php.ini へも日本語が使えるように設定はしたんですが
(default_charset = "Shift_JIS"とか)
なんか他に設定すべきところとかありますでしょうか?
0547nobodyさん03/07/30 16:24ID:L2kAsoKq
>>546
mbstringsでググレ
0548nobodyさん03/07/30 17:09ID:???
@hoge{ 'a', 'b' }
ここを説明しないと。(w
0549nobodyさん03/07/30 19:01ID:QNOIDVkY
PHP初心者です。
レッツPHPのちゅーとりあるで紹介されている
一行掲示板をいろいろとこねくりまわしているのですが、
オート・リンクの機能を付けることに躓いています。
ご指導の程、よろしくお願いします。
0550あぼーんNGNG
あぼーん
0551あぼーんNGNG
あぼーん
0552nobodyさん03/07/30 20:55ID:???
>>549
正規表現で文字列を調べて、URI(URL)があれば
それを抜き出して、アンカータグと組み合わせて
置換する。

マニュアルで置換をする正規表現関数を調べて、
それが実際どのように使われているか、レッツPHPさんの
他の配布スクリプトを見て研究してみては?
055353903/07/30 21:11ID:???
>>540-541
ありがとう
やってみます。
0554nobodyさん03/07/30 22:02ID:???
>>552
ご指摘を受けて、
マニュアルを読みましたら、つぎのような部分がありました。

例 3URLをリンクで置換する

$text = ereg_replace("[[:alpha:]]+://[^<>[:space:]]+[[:alnum:]/]",
"<a href=\"\\0\">\\0</a>", $text);

これでうまくいきました。
ありがとうございます。
0555sage03/07/30 23:32ID:EqJM85qg
>>543
できない。
あればあったで便利だし、perlからの移行が楽だが
phpは配列操作の関数が比較的豊富なので
なければないで何とかなる。
0556nobodyさん03/07/31 02:11ID:DkZYq6f/
送られてきた変数を全部表示したいんですけど、
どうやったらよいでしょうか。
0557nobodyさん03/07/31 02:23ID:???
>>556
phpinfo() や foreach($_REQUEST as $value)
0558nobodyさん03/07/31 02:30ID:???
ここはひとつ豪快に var_dump(get_defined_vars());
0559nobodyさん03/07/31 04:20ID:???
phpで2進数の表記はどうすればいいのでしょうか?
0560nobodyさん03/07/31 05:08ID:???
echo '01010101';
0561nobodyさん03/07/31 09:57ID:???
>>559
$num = bindec("10101010");
0562nobodyさん03/07/31 14:45ID:UI9TuZ6S
初心者です。
特定の文字列から特定の文字列までを置換したいんだけど、どうすればいいでしょうか?
hogehoge<REPLACE>2ちゃんねら</REPLACE>hogehoge
       ↓
hogehogeDQNhogehoge
こんな感じで。
0563あぼーんNGNG
あぼーん
0564nobodyさん03/07/31 15:09ID:UI9TuZ6S
562です。
追加質問していいですか?
置換した回数をカウントしたいのですが、str_replaceやereg_replaceでは
全置換されてしまうじゃないですか。
ひとつずつ置換をする関数ってないのでしょうか?

よろしくおねがいします。
0565nobodyさん03/07/31 17:33ID:???
>562
preg_match
preg_match_all
あたりを見てみては?
056656503/07/31 17:42ID:???
補足

正規表現が良くわからず調べてもう〜んと唸るようであれば、泥臭くやるしかないかな。

strpos 等で開始タグの位置を見つけて前後の文字列で置換する文字列をサンドイッチ
して元の変数に格納という一連の処理を開始タグが見つかる限り繰り返せば結果は得
られると思うけど。

ただメモリーへのアクセスが頻繁になるからWebなんかで不特定多数のアクセスがある
ような処理につかうのはおすすめできない・・・。
056703/07/31 17:52ID:Vgd/NQeb
fsockopenでHTTP/1.1接続を試みた場合に、レスポンスボディに、
数KB(?)に一度、 \nXXX\n のようなゴミ文字列が挿入されてしまいます。
(\nは改行で、XXXの部分は [0-9a-f]{2,3} のような文字列)

環境はWindows 2000で、
PHP 4.3.2 (cli) (built: May 28 2003 15:10:38)です。

再現は(他人様の物で恐縮ですが)以下のソースでも可能です。
tp://www.spencernetwork.org/memo/tips-3.php

ただし、HTTP/1.0接続をおこなった場合にはゴミは発生せず正常動作します。

phpのバグを疑った所、fsockopenがメモリを破壊する問題は、
4.3.0で発覚して4.3.2では解消されているとの事でした。


わかる方いましたら教えてください。
わからなかったらとりあえず再現を試してくれる方募集っす。
0568nobodyさん03/07/31 18:12ID:???
>567
とりあえずリクエストするサンプルサイトのURLをキボンヌ
0569nobodyさん03/07/31 18:23ID:???
よくよく考えてみたら PHP4.3.x 系の入ってるマシンが無いわ(爆)

FreeBSD4.4
Apache たぶん 1.2
PHP 4.2.0
で2chの1000までいったスレをそのスクリプトで表示してみたがゴミは無いようだった

考察はちょっとまってな。
0570nobodyさん03/07/31 18:26ID:???
あーよく見たら上のソースは HTTP/1.0 で接続してるのな。
これを HTTP/1.1 に変えてやってみればいいのか・・・
0571あぼーんNGNG
あぼーん
0572あぼーんNGNG
あぼーん
0573nobodyさん03/07/31 18:32ID:???
>567

とりあえず
>570 の変更をした上で >569 のように2chのスレを取得してみたらたしかにゴミが検出されたよ。
まぁ正確にはゴミじゃあないんだろうけどね。
ちょっと調べてみるよ。
057403/07/31 18:39ID:???
>>573
スンマソ。お手数かけます。

yahooが大丈夫だけど、php使ってるサイトはだめだった。関係ないか?
ちょっと、アクセス先については根拠のある事が言えない。

>>569の環境で出るという事であれば、バグでは無いっぽいのかな。
あとで他の言語でも試してみます。
0575nobodyさん03/07/31 18:41ID:???
まぁ、fsockopen+HTTP/1.1を使うヤシでchunkを知らないわけは無いと思うから
chunkの線は無いと思うが、がんがってphp4.3.2のバグを探してくれ。
057657303/07/31 18:44ID:???
>575

漏れ的には chunk っぽい気がしてるんだけどね(爆
HTTP/1.1 なんて生で触ったこと無いからプロトコルから調べてるよ
057757303/07/31 18:52ID:???
とりあえずこちらで出てる症状としては4096バイトごとに
\r\n1000\r\n
という文字列が挿入されてるってことかな。
fgets の読み取りバイト数かと思って 512 と 1000 で試したけど変化なし。
マニュアルの fsockopen では fread を使ってたので試しにこれに変えてみても変化なし。
ちなみにレスポンスヘッダは

HTTP/1.1 200 OK
Date: Thu, 31 Jul 2003 09:41:49 GMT
Server: Apache/1.3.26 (Unix) AuthMySQL/2.20 PHP/4.1.2 mod_gzip/1.3.19.1a mod_ssl/2.8.9 OpenSSL/0.9.6g
Last-Modified: Wed, 30 Jul 2003 12:53:28 GMT
Transfer-Encoding: chunked
Content-Type: text/html
X-Pad: avoid browser bug

こんな感じで返って来てる。
057803/07/31 19:01ID:???
漏れが悪かった。

ともあれ、ありがd>>573, >>575

RFC2068にも書いてある(RFC2616を読んでね)けど、

CRLF受信バイト数の16進CRLF

が来てるって事よね。
ちょいとクライアント側の正しい実装がどんなのになるのか調べ中。
0579nobodyさん03/07/31 22:01ID:CgHqCW+i
フォームフィールドに"ソ"を入力して送信すると
"ソ\"になってしまいます。Mysqlにも"ソ\"そのまま入ります。
php.iniのmagic_quote行をoffにしてやると直ったんですが
そのままMysqlに登録すると化けてしまっています。

stripslashes()をつけてやるとこれも直るんですが
フィールドごとにいちいちつけるのは面倒くさいので
他に何かいい方法はないでしょうか?
0580あぼーんNGNG
あぼーん
0581あぼーんNGNG
あぼーん
058203/07/31 22:23ID:???
使い捨てツールだったので、さぼってHTTP/1.0で実装しますた。スンマソ

>>579
mysqlのcharset設定をsjisにするとか。
058303/07/31 22:23ID:???
ごめ。

「つーかeucにしろよ」と言いなおす。
0584Re: 配列のスライスに代入03/08/01 02:01ID:S9mJFNQO
返事ありがとぉ。
出来るかどうか知りたかっただけでした。
一応、マニュアルとMailing-listのアーカイブ検索したけど、それらしい記述がなかったので。
ここが最後の頼みだったんだけど、やっぱ出来ないのかぁ。残念。
0585あぼーんNGNG
あぼーん
0586あぼーんNGNG
あぼーん
0587nobodyさん03/08/01 09:04ID:???
>584

遅レスすまそ。
array_splice() でどう?

ttp://www.php.net/manual/ja/function.array-splice.php
0588nobodyさん03/08/01 18:21ID:???
>579

現象的には確か「ソ」の2バイト目が「¥」のコードと
同じなんでエスケープ処理されるってことだな。

だから stripslashes すれば消えるのはあたりまえで、
もし鯖の設定を変えられないのであればいちいちかか
なきゃならんのはしょうがない。

まぁめんどくさかったら $_REQUEST をループ回して
格納し直したらどうよ。いろんなソースに書かないと
いけないとしてもコピペで済む(あるいはクラスを書くかだな)。
0589山崎 渉03/08/02 02:21ID:???
   ∧_∧
  (  ^^ )< ぬるぽ(^^)
0590ぼるじょあ ◆ySd1dMH5Gk 03/08/02 04:50ID:???
     ∧_∧  ∧_∧
ピュ.ー (  ・3・) (  ^^ ) <これからも僕たちを応援して下さいね(^^)。
  =〔~∪ ̄ ̄ ̄∪ ̄ ̄〕
  = ◎――――――◎                      山崎渉&ぼるじょあ
0591nobodyさん03/08/03 01:26ID:???
>>588
>>266-268
0592nobodyさん03/08/03 02:11ID:???
保守
【PHP】初心者コーナー 3 Released【スローモード】
アホな質問であっても詳しく質問しろよ。 ネタはおもしろく書けよ。
0593nobodyさん03/08/03 02:16ID:???
>>592
え?この板って1時間でスレ落ちするほど保守せなあかんの?
0594nobodyさん03/08/03 02:20ID:XIyh3dEf
Parse error: parse error, unexpected T_CONCAT_EQUAL in …
といわれたんですがどういう意味でしょう?
バージョンは4.3.3RC2です。
0595 03/08/03 06:33ID:???
>>594
文法エラーです。
…で予期しないT_CONCAT_EQUALが
0596nobodyさん03/08/03 21:48ID:fj+ph+5s
上でも2回ほど出てる話題なんだけど、自分で調べたことと
ちょっと食い違いがあるんで質問させてください。

phpで掲示板作った場合、書き込んだ文字列に¥が勝手に
入ってしまう現象って、レンタル鯖での解決方法はstripslashes()関数を
つけることのほかに.htaccessで

php_flag register_globals on
php_flag magic_quotes_gpc off

と書いてアップすれば防げるって
ttp://www.komonet.ne.jp/report.htm
とか
ttp://www.e-provider.jp/server/php.html

に書いてあるんだけど、public_htmlフォルダ内に.htaccess置いても
防げません。.htaccessはメモ帳で「.htaccess.txt」として作成して、
アスキーモードで鯖にアプ後「.htaccess」にリネームしました。
テスト用のbbstest.phpは同じディレクトリにあります。
書くのはあの2行だけでいいんでしょうか?とりあえず2行だけに
しときましたが。

ちなみに鯖はaaa!cafeで、鯖HPのFAQには.htaccessは使えますって
書いてありました。

初心者な質問ですみませんが識者の方、どなたかお答え願えませんでしょーか。
0597nobodyさん03/08/03 21:57ID:???
>>596
aaaの.htaccessは当てにしない方がいい。
0598nobodyさん03/08/03 21:57ID:fj+ph+5s
…なんかディレクトリ指定とかしなくちゃいけないっぽいですか?
中途半端な質問ですんまそん。
調べてもどこもかしこも「php_flag〜の行を“含む”.htaccessファイルを」
と言ってるんで他にも書くことありそうだとは思って調べてるんですが…

.htaccessの正確な書き方が書かれたサイトが全然みつからん…
ミケネコのなんとかは分かりづらすぎ…
0599nobodyさん03/08/03 21:59ID:fj+ph+5s
>>597

アア、俺書き込み多すぎ。痛い。

そうですか、なんかあそこFAQの答え方がなげやりですもんね。
自作bbs置く香具師はめんどくてもコード書けってことか。ちくしょう。
0600nobodyさん03/08/03 23:44ID:???
>>596
書き方自体はそれでok
あとはユーザディレクトリの.htaccessが有効によまれるのか、
設定の上書きを許可しているのかとか
その辺
0601nobodyさん03/08/04 00:00ID:???
>>579
遅いレス。mysqlの「ソ」は私も悩んだ。
文末が「スマソ」とか「日本代表」だとエラーが出るんですよね。
phpinfoでmysqlの"Client API version"を4.*にすると症状は治まります。
どうも3.*のバグ(?)のようです。
mysql4.0+php4.3.2だとconfigureで--with-mysql=/usr/local/mysqlとかするといいみたいです。
0602nobodyさん03/08/04 01:07ID:QF7utWcH
>>600
サンクスコ
結局stripslashes関数で回避しました…
060357903/08/04 10:05ID:s0qIBXCy
>>601
ありがとうございます。
バグだったんですか^^;
どおりでおかしいと思いました。
では一度4に変えてみます^^
0604nobodyさん03/08/04 18:00ID:8zL9M6pT
スクリプトでgdライブラリがインストールされてるかどうかを
判断するにはどうした良いですか?
0605 03/08/04 18:24ID:???
>>604
適当なイメージ関数が定義されているか調べれ
0606nobodyさん03/08/05 01:16ID:???
>>604
http://www.php.net/manual/ja/function.extension-loaded.php
0607nobodyさん03/08/05 01:36ID:???
PHP5でregister_globals=On に変えても パラメータを渡せない
んだけど、もしかして無くなったのかな、どうよ。
0608nobodyさん03/08/05 08:57ID:V6DdtSg7
PHP初心者です。メール送信フォームの確認画面を設けているのですが、

$html="
<pre>
<br>
<form method=post action=$file>
<table width=480 border=0 align=center>
TEXT1: $r[0]
</table>
</form>
</pre>
";

と記述するとTEXT1の文が長すぎると途中できれてしまうのです。自動で改行する良い方法
はありませんでしょうか?よろしくおねがいします。
0609nobodyさん03/08/05 10:22ID:???
>>608
<table>使わなけりゃいいんじゃないの
0610nobodyさん03/08/05 11:45ID:BUuQIqrM
文字コード変換にこのようなことをしようとしているのですが、

function convert_code (&$val,&$key,$code,$oldcode){
  $val = mb_convert_encoding($val,$code,$oldcode);
}
array_walk ($array, 'convert_code','EUC-JP','SJIS');

array_walk ( array arr, string func [, mixed userdata])
という仕様ですが、この場合、userdataは配列や複数の値を
渡せないのでしょうか?
061160803/08/05 11:53ID:V6DdtSg7
>>609
<table>使わないと全体的に左に寄ってしまいますよね。
バランスが悪いので何か対処法はありませんでしょうか?
0612nobodyさん03/08/05 12:27ID:???
>>608
HTMLの書き方が無茶苦茶。
PHPの勉強もいいですが、まずHTMLから始められてはどうでしょうか?
0613nobodyさん03/08/05 12:38ID:???
確かに。
よく見りゃつっこみどころ満載の「HTML」だ。
0614あぼーんNGNG
あぼーん
0615あぼーんNGNG
あぼーん
0616nobodyさん03/08/05 13:16ID:???
>>610
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:???
>608
CSSを使用すれば余白の制御など細かく出来る。
CSSが大変そうなら <blockquote> タグあたりでどうかね?
0618nobodyさん03/08/05 17:37ID:woPpy0rJ
php+MySQLでデータベースの入力フォームを作っております。

 前略
 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
061961803/08/05 17:42ID:woPpy0rJ
ちなみにphpのバージョンは4.0.6です。(プロバイダがアップデートしてくれない (-_-;))
0620nobodyさん03/08/05 18:21ID:???
>>618
mysql_query("insert into ・・・");
にしないとエラーになるんですが。
062161803/08/05 20:07ID:HahDoJ1D
>>620さま

$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あぼーんNGNG
あぼーん
0623あぼーんNGNG
あぼーん
0624あぼーんNGNG
あぼーん
0625nobodyさん03/08/05 21:38ID:???
>>618
mysql_query()を呼んだ後は、返り値がTRUE(非ゼロ)またはFALSEのどちらかを確認して、
もし返り値がFALSEならmysql_errno()とmysql_error()を確認しよう。
さもなくば「エラーが出てない」とは言えない。
062661803/08/05 22:25ID:HahDoJ1D
>>625
感謝!!
早速確認してみます。  ・・・でも、localhostで動作確認したときは
問題なく全入力出来たのに、、、
どういう可能性が考えられるのでしょう?
0627nobodyさん03/08/05 23:04ID:???
>616
ありがとうございました。マニュアル眺めてるだけでは、なかなかわからんもんです。
0628nobodyさん03/08/06 09:32ID:TaNZWYB4
$_POSTなどでフォームのデータ受け取ると、"や'とか\が勝手にエスケープされてるのはなぜ?
仕様?
0629nobodyさん03/08/06 10:06ID:???
>>628
magic_quotes_gpc
で検索
0630あぼーんNGNG
あぼーん
0631あぼーんNGNG
あぼーん
0632nobodyさん03/08/06 12:52ID:9CpMMik0
ブラウザ上からquota見たいんですがのう。
popenでquota呼んだら
>Disk quotas for user xxxx (uid xxxx): none
しか来ないんだけど。
telnetだとusageとかgraceとか出るのにー

何か手ないすか?
0633あぼーんNGNG
あぼーん
0634nobodyさん03/08/06 13:31ID:???
> xxxx (uid xxxx):
伏字にしているのはエスパー募集だからですか?
0635nobodyさん03/08/06 15:15ID:???
>632
とりあえずシェルから quota 呼ぶのと PHP(HTTPデーモン経由)から quota 呼ぶのとで
ユーザーが違ってると言ってみる
0636nobodyさん03/08/06 15:24ID:???
>>632
xxxxを見ればわかりそうなものだ
wwwとかnobodyとか
0637nobodyさん03/08/06 18:46ID:wRB10Bh6
文字列をある程度の長さで省略したいんですけど、
日本語と英数が混じってると最後が・になったりして
おかしくなる場合があります。どうすれば上手くできるんでしょうか。
使ってるサーバーがmb関数使えないサーバーなんですけどできますかね。
0638nobodyさん03/08/06 20:10ID:+64gfyUC
te
0639nobodyさん03/08/06 20:21ID:???
>>637
漢字コード変換
http://www.spencernetwork.org/
0640nobodyさん03/08/06 20:52ID:???
>>637
文字コードが一定なら正規表現で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
PHP+MySQL環境でディレクトリー式メニューを実現しようとしていて、
「ID:ジャンル名:所属ID」
という再帰テーブルを作りました。
この場合、直下にあるデータ一覧は所属IDをIDで検索すればすぐ出ますが、
トップからのパスはジャンル>所属しているジャンルID>さらに上のID…>
トップと検索して配列にセット、それを反転してトップ>ジャンル>その下の
ジャンルと整形しています。
この場合何度もSELECT文を出さなければなりませんが、もう少し効率的に
やる方法はないですか?
0642nobodyさん03/08/07 21:33ID:???
>>641
ツリーにIDを1つ追加するときに、そのIDのフルパスを別のテーブルに登録しておけばよい。
0643404.HDML ◆StMXML.EXE 03/08/08 01:59ID:???
fsockopen関数から開いた、リモートファイルのポインタからファイルサイズを
取得する方法は有りますか?

それとも、リモートファイルの内容を一時ファイルとして保存したものをfilesize
関数で読み出すべきでしょうか?
0644nobodyさん03/08/08 02:17ID:???
>>643
相手がHTTPで、且つそのヘッダでContent-Lengthが出力されてれば、
そこから取得することは可能。他のプロトコルは、やはり一度ナメるしかないんじゃないかな。
0645404.HDML ◆StMXML.EXE 03/08/08 02:30ID:???
>>644
リモートからContent-Lengthが返って来ない場合は取得不可なのですね。
有難うございます。

後、うっかり「HTTPでオープン」って書くの忘れてました。すみません。
0646404.HDML ◆StMXML.EXE 03/08/08 03:15ID:???
んと。fsockopen関数からHTTPとして開いたポインタから、予め上限を決めて
fread関数からデータを読みこみ、それをstrlen関数を使ってサイズを測る、、

という方法を試したら、何故か8192バイト以上が読みこめなかったので、
fgets関数をEOFを検出するまで回し、その過程で取得したデータを一本に
繋げてstrlen関数で読むという方法で何とかなりました。
0647 03/08/08 03:27ID:0z0bK8pF
freadって4.3.2から仕様変わった?
0648nobodyさん03/08/08 03:33ID:???
リモートファイルをincludeで呼び出しています・・・
サーバーが停止している場合はローカル上のファイルを
includeするようにしたいのですが、
どうすればいいのでしょうか?
0649 03/08/08 03:38ID:???
>>648
fopenか何かでリモートに繋ぎ、ダメだったらローカルを読む、と。
0650nobodyさん03/08/08 07:01ID:???
>>645
HEADメソッドでContent-Lengthだけ貰えば本体は貰わなくて済むよ。
ただしfopen()は使えないけど。
0651nobodyさん03/08/08 09:56ID:LraV0Dku
>642
ありがとうございました。

別の質問です。
MYSQLでAutoIncrementのフィールドがあるとき、INSERTしたあと
現在のその数を取得するには再びSELECTするしかないのでしょうか?

登録IDを作りたいと思っていて、PHP側でキーを生成してPrimary設定の
フィールドにINSERTするよりは綺麗な連番になるかと思ったんですが、
保存後にIDが何番になったか再取得しないと表示できないのです、、、
0652nobodyさん03/08/08 11:16ID:???
>>651
selectで再取得した方が確実。
さもないとチャットのように同時に10人とか発言されたら目も当てられない。
0653nobodyさん03/08/08 12:28ID:???
>>637
substr()/mb_substr()でなくてmb_strcut()というのがある。
便利です。
0654nobodyさん03/08/08 13:18ID:LraV0Dku
>652
ではどうやって再取得したらよいでしょうか。
今回の場合はそこまでクリティカルではないので問題ではないですが。

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:???
>652

http://www.php.net/manual/ja/function.mysql-insert-id.php
マニュアルのとおり、単純に mysql_query した次の行で $foo = mysql_insert_id;
と書けば $foo にIDが取れる寸法のはず。

link識別子を使い分ける場合は明示的に指定する必要がある
065765603/08/08 14:17ID:???
>652 じゃなくて >654 だねゴメン
0658nobodyさん03/08/08 18:42ID:???
いやー magic_quotes_gpc on にはまいりましたよ。

コードがSJISになってるファイルアップロードページで処理したら
ファイル名に上に出てきたみたいに「ソ」とか「構」とか入ってる時
$_FILES に格納されるファイル名がその文字以降になっちまったよ。

とりあえずアップロードページのコードをEUCに強制的に変換して
逃げたけどSJIS逝ってよしだな。
0659nobodyさん03/08/08 19:01ID:???
>656
別のマニュアルでは分かりにくかったですけど、これで何となく分かりました。

>AUTO_INCREMENTEDカラム用に生成されたIDを返します。

これを見ると、モロに求めていた機能のようですね。よかった。
0660404.HDML ◆StMXML.EXE 03/08/08 19:05ID:???
>>650
目的は、リモートファイルの内容&サイズを取得する事なので、
本体も一緒に貰わないとイカンのです。
0661nobodyさん03/08/09 10:16ID:i34+tz6Y
あるフォームの送信ボタンを押して別のページに飛ばしたときに
その飛んできた送信ボタンの名前を取得することって可能なんでしょうか?
またどのようにするのでしょうか?


0662nobodyさん03/08/09 10:24ID:???
>>661
他スレで回答もらってるだろボケ
0663nobodyさん03/08/09 10:40ID:???
>>661
<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
>>662
その通りなんですが
回答の意味が分からなかったのでこっちで教えていただこうと
思ったんです。すみませんでした。

>>663
ありがとうございます。
しかし質問が悪かったみたいで知りたいことはちょっと違いまして
例えば商品が複数ならんであるページで
それぞれ商品のカゴに入れるというボタンを押したとき
そのボタンの名前を取得してそのボタン名+price みたいな名前の
パラメータの値と個数をかけた値を足していく というような感じに
したいのです。
長くなって申し訳有りません。
0665nobodyさん03/08/09 12:44ID:???
フォームに日付がたくさんあるのでfunctionで関数化したいんですけど、
$_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:???
>>644
あなたの脳内では、ボタン名というのはnameの事?それともvalueの事?
「ボタン名+price」というのはどこに表示したいの?それともhiddenにしてfromに忍ばせたいの?
どうしてボタンの名前の取得が必要なの?
fromを商品毎に用意してそれぞれにsubmitとhiddenで値を定めれば良いんじゃないの?
どうしても全体を1つのfromにまとめたいの?
0667nobodyさん03/08/09 12:53ID:???
>>665
$_POST["$yyyy"]
0668nobodyさん03/08/09 17:42ID:???
PHPでCSVが表示できると聞いたんですがどうやればいいんですか?

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>

のように表示することは可能でしょうか?
よろしくお願いします。
0669nobodyさん03/08/09 17:55ID:???
>>668
可能です。
ごくごく基本的なテキスト処理の問題で
どんな参考書にも必ず載っています。
0670nobodyさん03/08/09 18:57ID:???
668です。
買った本に載ってなかったんで(正直ショックだった

何か参考になるサイト等がありましたらお願いします。
0671nobodyさん03/08/09 19:22ID:???
>>670
$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:???
関数に fgetcsv() てのもある
0673nobodyさん03/08/09 20:31ID:i34+tz6Y
$HTTP_SESSION_VARS["a"][1]
なんてある配列の数を1つ減らしたりしたいのですが
どのようにしたらよいのでしょうか?
0674nobodyさん03/08/09 20:42ID:stysPTCZ
ブルマ姿の可愛らしいロリ少女が体育倉庫でなにやら怪しい動き!
物凄くでかいオッパイをぷるんぷるんに揺らしながらハゲオヤジにバックから突かれます。
最後のオナシーンではなんととうもろこし挿入!
ブツブツで気持ちいいんでしょうね。
無料ムービー観てね。
http://www.pinkfriend.com/
0675nobodyさん03/08/09 21:09ID:???
>>673
$HTTP_SESSION_VARS["a"][1]--;
0676nobodyさん03/08/09 21:10ID:4ZC+Pkma
★おまんこナビ登場!!★日本の美しきオマンコ検索はココ!!
http://endou.kir.jp/marimo/link.html
0677直リン03/08/09 21:13ID:V17SBkWV
http://homepage.mac.com/maki170001/
0678nobodyさん03/08/10 00:16ID:9fsvpXwn
もし変数$xに値が入ってなかった場合っていう条件を作るときに
if(isset($x)) と if(!$x) はどっちがいいんでしょうか?何か違いがあるんですか?
0679nobodyさん03/08/10 00:18ID:???
>>678
$x=0; if(!$x)
068003/08/10 00:19ID:iKMsAznc
>>678
error_reporting(E_ALL);
とかして動かしてみな。
068167003/08/10 02:42ID:???
>>671
>>672
ありがとうございました。
0682nobodyさん03/08/10 07:14ID:fzrQOeyO
MySQLに格納されているデータを元に作るページを
何度も行き来させる場合、
セッション変数にデータを入れて持たせるのと、
ページごとにMySQLから読ませるのと、
どっちが負荷が軽いですか?
0683nobodyさん03/08/10 08:11ID:???
セッション変数に200KBぐらいのデータを持たせるのって
あんまりイクナイですか?
ページごとにあるwebサイトからそのぐらいのデータをダウンロード
するのをさけたいのです
0684nobodyさん03/08/10 23:48ID:???
PHPでパスワード付きzipファイルの解凍って出来ないのでしょうか?
パスワード有無の判別だけでも出来れば解凍時にパスワード入力を
施すようにして、あとはunzipを呼び出すなんて事も出来そうなんですが。
さーぱーりわかりません。
0685nobodyさん03/08/11 00:23ID:???
システム時間を人間が見てわかる時間に変更する方法を教えてください。
1060417366 -> yyyy/mm/dd hh:mm:ss
みたいな。
0686nobodyさん03/08/11 00:38ID:???
>>684
菅さんとこのあぷろだが暗号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:???
>>685
マニュアルの日付の項をちょっとでも読んだのならいくらでも出てくるのだが?
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.";
}
?>

日本語だとうまくいかないようなんですが、なんでなんでしょうか?
0689 03/08/11 04:19ID:???
>>688
pregは非対応だから。mb_eregでやれ。
069068403/08/11 06:29ID:???
>>686
ありがと。できますた。
0691nobodyさん03/08/11 06:45ID:ugZ5Rko0
☆Hな女の子はおスキですか?☆(※入場無料)
http://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:vd5Ibrol
srand;
if($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:vd5Ibrol
srand2;
if($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:vd5Ibrol
# HTMLの出力
print "<!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
プレイヤー1とプレイヤー2の対戦ゲーム
パンチとキックが出る

パンチは5分の3で命中
5分の2はミス
命中すると5分の1のは攻撃力が半減
さらに相手がキックをすると、パンチ力が半減

キックはふつうに当たる

HP0になった方が死亡
0697_03/08/11 08:08ID:???
http://homepage.mac.com/hiroyuki45/hankaku05.html
0698_03/08/11 08:16ID:???
http://homepage.mac.com/hiroyuki45/
0699nobodyさん03/08/11 09:40ID:???
>>692
perlはスレ違いです
0700nobodyさん03/08/11 11:58ID:vd5Ibrol
PHPとPerlは別なんですか!早とちりしてしもうた。
070167303/08/11 12:26ID:UQrY/a3d
>>675
ありがとうございます。
しかし、$HTTP_SESSION_VARS["a"]--としても
count($HTTP_SESSION_VARS["a"])の数は減っていないみたいなんですが
何かおかしいのでしょうか?
0702nobodyさん03/08/11 13:11ID:???
>673

>675 のは配列の要素が持っている数値を減らす方法。
>673 は配列の要素を削りたいんだろ?なら↓の関数でどう?

http://www.php.net/manual/ja/function.array-splice.php
0703あぼーん03/08/11 13:12ID:???
http://homepage.mac.com/hiroyuki45/jaz01.html
0704あぼーん03/08/11 13:13ID:???
http://homepage.mac.com/hiroyuki45/
070568803/08/11 15:31ID:bEOLhIPG
指摘の通り、mb_eregにかえたんですが・・・

<?php
if (mb_ereg("/[ぁ-ん]{5}/", "あいうえお")) {
print "A match was found.";
} else {
print "A match was not found.";
}
?>

結果が A match was not found.
なんですけど、まだ何かおかしいところあるんでしょうか?
0706nobodyさん03/08/11 16:38ID:???
>>705
前後のスラッシュは不要。
if (mb_ereg("[ぁ-ん]{5}", "あいうえお")) {
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:0RwRz5Km
★オナニー共和国です★ ★貴方の見たい娘がイッパイ(^0^)★無修正★
http://endou.kir.jp/akira/linkvp.html
0709_03/08/11 18:09ID:???
http://homepage.mac.com/hiroyuki45/hankaku09.html
0710_03/08/11 18:21ID:???
http://homepage.mac.com/hiroyuki45/
0711nobodyさん03/08/11 18:23ID:ZEkRELaD
★☆ 夏休みは GETDVD で満喫・満喫!! ★☆★
★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★
☆★ 送料激安!  スピード発送!  商品豊富!   
★☆      http://www.get-dvd.com        
☆★ 激安DVDショップ 「GETDVDドットコム」 
★☆      http://www.get-dvd.com        
☆★ 今すぐアクセス Let’s Go・Go!!   
★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★
0712nobodyさん03/08/11 18:44ID:???
だれか683に答えてあげて・・
0713nobodyさん03/08/11 18:50ID:???
>>683=712
素直に答えてくださいと…

>セッション変数に200KBぐらいのデータを持たせるのって
>あんまりイクナイですか?

イクナイですよ。
0714nobodyさん03/08/11 18:55ID:???
>>683
セッション変数に持たせること自体は問題無いよ。
後半部分は、hiddenで渡したり受け取ったりしたくない、って意味なのかな?
「あるWebサイト」って何のこっちゃと思って、流してた。
0715nobodyさん03/08/11 19:15ID:???
Zend Studio 2.6 日本語版が出るそうです
2.5が一年前かぁ.....
    ,-ー─‐‐-、
   ,! ||     |
   !‐-------‐
  .|:::i ./ ̄ ̄ヽi
  ,|:::i | (,,゚д゚)||  < ttp://www.zend.co.jp/press/2003/press0807.php
  |::::(ノ 中濃 ||)
  |::::i |..ソ ー ス||
  \i `-----'/
     ̄U"U
0716nobodyさん03/08/11 19:23ID:???
>>714
2ちゃんねるのdatファイルを読み込みたいのです。
0717nobodyさん03/08/11 19:25ID:???
ページが変わるたびに
何回もdatファイルをダウンロードしにいくのもアレなので
セッション変数にdatファイルのデータを全部詰め込んで
おけばいいのかなぁと・・
071870503/08/11 19:50ID:Av1x7+ub
スラッシュとってもまだだめだ……

なんでだ・・・・なんでだめなんだ・・・・・・・・
ソースはおかしくないですよね?

ちなみに ttp://www.xrea.com/ のサーバーに置こうとしてるんですけど。
0719nobodyさん03/08/11 19:51ID:0RwRz5Km
★おまんこナビ登場!!★日本の美しきオマンコ検索はココ!!
http://endou.kir.jp/marimo/link.html
0720nobodyさん03/08/11 19:55ID:???
[5]
0721nobodyさん03/08/11 21:58ID:2ChtRC4J
悪霊に取り付かれているという千穂ちゃん。
除霊をしてあげるという男に乳もまれるはオマンコ触られるは挿入されるは・・・
本当に悪霊は退散したのでしょうか?こんな気持ちのいい除霊だったらいつでもOK!
制服好きならここ!
無料ムービーをどうぞ
http://www.pinkschool.com/
0722nobodyさん03/08/11 22:15ID:S089as81
お盆だよー!
▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼
アダルトDVD激安価格1枚 500円より〜
 http://www.dvd-exp.com 
最短でご注文いただいた即日発送!→→→http://www.dvd-exp.com 
セルビデオ店の人気商品が24時間お買い物が出来ます。
          http://www.dvd-exp.com←へGO!
0723_03/08/11 22:16ID:???
http://homepage.mac.com/hiroyuki45/
0724nobodyさん03/08/11 22:19ID:???
>>718
仮にスクリプトをSJISで書いていたとしたら、mb_ereg()の前に
mb_regex_encoding("SJIS");
と書くと動くかもよ。
072570503/08/11 23:24ID:Av1x7+ub
>>724 動きますた。感動しますた。サンクス!!
0726nobodyさん03/08/12 09:37ID:PFVgJDlR
有料会員管理や課金システムが組み込まれたPHPスクリプトで
参考になるフリーのスクリプトないですか?
自分でスクリプトを書いてるんだけどうまくいかなくて
気が狂いそう。

0727nobodyさん03/08/12 10:03ID:???
そういうの、初心者がつくっちゃいけないと思うぞ。
あきらめて業者に頼め。
072870703/08/12 12:03ID:Cs4RKLp1
作者のミスだったようです。
製作HPに載ってました。
0729nobodyさん03/08/12 14:28ID:???
0730nobodyさん03/08/12 15:45ID:???
ちょと納得いかないんですが
受け取ったクエリのなかの "' を htmlspecialchars で
置き換えるとバックスラッシュ付きになっちまうんですがナゼでしょ?
" -> \"(¥&quot;)
バックスラッシュ要らないんですがどうすればイイのでしょう?
0731nobodyさん03/08/12 20:20ID:???
>>730
if (get_magic_quotes_gpc()) {
$hoge = stripslashes($hoge);
}
$hoge = htmlspecialchars($hoge);
0732nobodyさん03/08/12 21:15ID:P8GdC1tU
写真集だよん☆☆☆☆☆☆
http://www.sexpixbox.com/pleasant/sexy/index.html
0733nobodyさん03/08/12 23:39ID:kb077f1K

こいつバカ?・・ってくらいエロイ女がいるね・・・ここ
こんな可愛い顔してなー・・・・・・変態
http://vs2.f-t-s.com/~moemoe/dxlive.html
0734nobodyさん03/08/13 00:57ID:pM9W3pWP
質問です。
page.htmというファイルがあってその内容をinclude()やrequire()等をつかって読み込んで表示させたいのですが、
page.htmというファイルの中に記述されてある$PHP_SELFがそのまま出力されて困ってます。
つまり、page.htmの中に記述されてる変数が変数として認識されずに出力されてるってことなんですが、
page.htm内の変数を認識させて出力するにはどうすればいいでしょうか?

・・・・・説明下手でスマソ。
0735nobodyさん03/08/13 01:46ID:???
>>731
サンクス
0736nobodyさん03/08/13 02:17ID:???
>>734
その$PHP_SELFは、<?php echo $PHP_SELF; ?>のような形にしてる?
そんな必要あるの?って思ったらincludeの説明を見てくだちぃ
0737nobodyさん03/08/13 02:31ID:pM9W3pWP
>>736
なるほど。助かりました!
0738nobodyさん03/08/13 02:59ID:9iljZfn8
book-i.net
0739nobodyさん03/08/13 03:00ID:???
だれか717に答えてあげてください
0740nobodyさん03/08/13 09:18ID:???
>>739
お前キモイよ。

「答えてあげてください」じゃなく「答えてください」だろが。
0741nobodyさん03/08/13 09:51ID:???
まぁまぁ
そんなムキにならずに
楽に生きましょうよ。
眉間にしわがよってますよ。
0742nobodyさん03/08/13 10:11ID:???
あっほんとだ。
0743nobodyさん03/08/13 10:59ID:???
>>683=712=717=739=741

なんでそんなに必死に第三者を装おうとするんだ?
キモ過ぎ。
0744nobodyさん03/08/13 11:22ID:???

オモシロイから。
ですよ。
君馬鹿?
ユーモアの精神もってよ。
みけんにしわよせていないでさ♪
0745nobodyさん03/08/13 11:23ID:???
>>744 sine
0746nobodyさん03/08/13 11:28ID:???
はー
つれたつれた

んじゃ、また。
0747nobodyさん03/08/13 11:35ID:???
つれたと書き逃げ。ステロタイプな厨の常套手段だな(ワラ
0748nobodyさん03/08/13 11:53ID:???
>>746
第三者を装うのは反感買うだけだよ。
0749nobodyさん03/08/13 12:36ID:???
元質の内容を考えると、「好きにしていいよ」だね。
(セッションの仕組み上)クライアントごとにデータを保存するわけだから、
無駄が多いような気がするけど。
0750nobodyさん03/08/13 12:59ID:???
>>749
無駄が多すぎるし「止めとけ」だと思うけど。
0751nobodyさん03/08/13 13:40ID:???
>>750
改善策がないし、好きにしていいよ
だろう。
0752nobodyさん03/08/13 22:01ID:3p1HFmGf
phpで作ったタブブラウザとか無いですかね
0753nobodyさん03/08/13 22:09ID:???
恐ろしく初心者な質問してもいいのでしょうか。
readfileで殆どのページを表示させるのと、
PHPファイルに情報を入れておいて、 ?> でPHPを出て表示させるのとどちらがサーバー負担が小さいでしょうか。
前者はもう一つファイルを開くという作業があって、
後者はPHPとしてのチェック作業がありますよね。
もちろんサイズが小さければ後者だと思うのですが、
ある程度大きくなる前者の方が良い気がします。
どの辺りのサイズで切り替えを考えるべきでしょうか。

簡単な例
前者 <?php readfile("htm.txt"); ?>
後者: <?php TEST ?>このあとに全ページが続く
0754nobodyさん03/08/13 22:11ID:???
まちがえ。

後者: <?php ?>このあとに全ページが続く
0755nobodyさん03/08/14 01:51ID:???
>>753
巨大なファイルで試したらどうか。
使う環境によっても違うだろうし。
0756 03/08/14 04:38ID:???
>>752
PHP-GTKとかいうのがあったな。デスクトップアプリ作るやつ。
ブラウザをPHPで作るアフォはあまりいないと思うが。
0757nobodyさん03/08/14 13:29ID:GZQg1swI
bBlog http://www.bblog.com/
を使用しているのですが、これをの投書を表示するindex.phpに、
最新1項目だけ表示させるにはどうすればいいのでしょうか?

<-------- index.php -------->
<?php
include "bblog/config.php";

if(is_numeric(@$_GET['postid'])) {
$bBlog->assign('postid',$_GET['postid']);
$bBlog->show_post = $_GET['postid'];
$bBlog->display('post.html');
exit;
}

if(is_numeric(@$_GET['sectionid'])) {
$bBlog->assign('sectionid',$_GET['sectionid']);
$bBlog->assign('sectionname',$bBlog->sect_by_name[$_GET['sectionid']]);
$bBlog->show_section = $_GET['sectionid'];
}


$bBlog->display('index.html');
?>
<-------- ここまで -------->
0758nobodyさん03/08/14 14:02ID:???
>>757
勉強したら?
075975703/08/14 14:03ID:???
>>758 えぇ。今しております。
0760nobodyさん03/08/14 14:19ID:JF8X1a1v
教えてください。
upload_max_filesize = 2M
となっているレンタルサーバ(WebARENA)なんですが
どうにかして2M以上のファイルをアップロードできるように
する手段はないでしょうか?
0761nobodyさん03/08/14 14:35ID:???
>>760
分割upして結合したらどうか。
クライアント側に分割upさせるようなプログラムを送りつける必要があるけど。
0762nobodyさん03/08/14 15:58ID:???
>757
ちょっと落としてソースを眺めてるのだが bblog のソースはなんか
TURBO PASCAL 系のようなインデントがされてるな。
つーか TAB インデントと SPACE インデントが混ざってるところが
痛い。

まぁそれはおいといて、bBlog.class.php ってファイルの中の get_posts
あたりを見てみたらどう?このメソッドで出来そうだけど。
0763nobodyさん03/08/14 16:34ID:3awXqGFx
ダウンロードできない・・・
なぜ?
ttp://www.php.net/downloads.php

サーバーがない・・・
なぜ?
ttp://www.php.gr.jp/
0764nobodyさん03/08/14 16:41ID:???
>>763
ほんとだ
0765 03/08/14 16:45ID:???
質問です。

下記のバージョンを使っているのですが、ユーザディレクトリで
fopenを使うと、ファイルが無い言われます。(requireなどはオッケー)
フルパスで指定すると平気なのですが、相対パスだとアウトです。
ちょっと調べたのですが、「バグ?」という曖昧な情報だけで、
バグかどうかに関する物が見つかりませんでした。
これって結局バグなのでしょうか?

PHP 4.3.0 (cli) (built: Jan 17 2003 16:22:27)
Copyright (c) 1997-2002 The PHP Group
Zend Engine v1.3.0, Copyright (c) 1998-2002 Zend Technologies
0766nobodyさん03/08/14 17:10ID:???
>765

file_exists() は true 返すの?
0767nobodyさん03/08/14 17:15ID:SyUXGdwy
街行くセーラー服の少女を見て『ムラムラ』っとしたことはありませんか?                
パンティーが見えそうな位に短いスカート、ムチムチした足にルーズソックス。         
私自身も大のセーラーフェチなんです。    
そんな欲望を満たしてくれる動画だけを徹底的に集めました。
無料ムービーを観てください。
http://www.pinkschool.com/             
0768765 03/08/14 17:24ID:???
>>766
true返しました。
さっぱりでつ…。
0769nobodyさん03/08/14 17:50ID:???
どんな文でfopenか書いて
0770765 03/08/14 18:23ID:???
どんなもなにも、って感じですが…(苦笑

<?php
$test = fopen("./test.conf",'r');
?>

で、こけます。
当然、test.confは同じところにおいてありまつ。
さっぱり(;´Д`)
0771nobodyさん03/08/14 18:56ID:???
パーミッションは?
0772nobodyさん03/08/14 19:00ID:???
open_basedirはどうなってる?
077376303/08/14 19:02ID:???
ミラーサーバーへのリンクがおかしくなっているみたい
ttp:///get/php-4.3.2-Win32.zip/from/jp.php.net/mirror
ってなってる。
ttp://www.php.net/get/php-4.3.2-Win32.zip/from/jp.php.net/mirror
にしたら、保存できた。

ttp://www.php.gr.jp/
は、復活していた
077476503/08/14 19:16ID:???
>>771
パ一ミッションは問題無しです。

>>772
む、そんなのあるんですか。
今電車の中なので、帰ったら調べてみます。
0775nobodyさん03/08/14 20:14ID:???
>>774
http://jp.php.net/manual/ja/function.file-exists.php#26757

file_exists (getcwd()."/somedir/somefile.php");とか
file_exists (realpath("./somedir/somefile.php"));で動く
0776nobodyさん03/08/14 20:48ID:gUgtxMRF
(A,001,B,002・・・)
という配列を
$RENSOU[A] = 001
$RENSOU[b] = 002
とする場合、perlではそのまま代入すれば出来ましたが、
PHPの場合はどうやって変更すればよいでしょうか?
0777 ◆AngelH/kMI 03/08/14 20:54ID:???
>>773
しまった。
ここに張っておけばよかったか。


--- PHP users MLから転載 ---

日時  :8月14日(木) 終日
影響範囲:www.php.gr.jp のみ (注)
理由  :回線拡張工事の為
その他 :14日中には完了する予定ですが、予期しない問題の為
     15日もアクセスできない可能性もあります。
     また、何らかの理由により15日以降回線に一時的に
     障害が発生することもあります。

以上、ご不便をおかけ致しますが、皆様のご協力をお願い致します。

注:メーリングリストは使用できます。
0778nobodyさん03/08/14 21:14ID:???
>>776
$hoge=array("A","001","B","002","C","003");
reset($hoge);
while(list(,$key)=each($hoge)){
list(,$value)=each($hoge);
$RENSOU["$key"]=$value;
}
0779nobodyさん03/08/14 21:50ID:gUgtxMRF
>778
ありがとうございます。listの使い方が分かりました。
しかしperlに比べて少々めんどい、、、
0780nobodyさん03/08/14 22:04ID:???
>>779
perlのやりかたをphpで実現しようとすれば当然めんどい。
phpはphpのやりかたで便利なようにできている。
どの言語でも同じ事だが。
0781nobodyさん03/08/15 07:29ID:???
>>778-779
each()は連想配列用だからトリッキーになっちゃう。
素直に書くとこうじゃない?
$hoge=array("A","001","B","002","C","003");
reset($hoge);
while (($key = current($hoge)) !== FALSE) {
$RENSOU[$key] = next($hoge);
next($hoge);
}

元の配列を破壊するならこっち。
$hoge=array("A","001","B","002","C","003");
while (($key = array_shift($hoge)) !== NULL) {
$RENSOU[$key] = array_shift($hoge);
}
0782nobodyさん03/08/15 11:04ID:???
>>781
こんなのでも大丈夫みたい。

$hoge=array("A","001","B","002","C","003");
foreach ( $hoge as $key ) {
    $RENSOU[$key] = next( $hoge );
}
078378203/08/15 11:14ID:???
782 は勘違い。
結果に不要な値が含まれるので失敗。
0784nobodyさん03/08/15 11:25ID:???
nextを使っている人がいるけども、空の要素や値が0の時は
falseが帰ってくるから場合によっては危険。
0785nobodyさん03/08/15 11:28ID:mChPmz42
phpで掲示板を作ってみたんですが
「表示」「機能」などの文字を書き込むと文字化けしてしまいます。
化けないようにするには書き込むときに何か特別な処理が必要なんでしょうか?
0786nobodyさん03/08/15 11:41ID:???
SJISの場合、表・能などの2バイト目が0x5cになり、
これは \ と同じなので次の文字の1バイト目がエスケープされてしまう。

1. SJISで書くのをやめる
2. PHPの設定でmagic_quotes_gpcをonにする
3. 危なそうな変数はaddslashesを通過させる

1.がお薦め。
0787新宿歌舞伎町裏DVD本舗03/08/15 11:50ID:2mbTnFQt
▼ ▼ ▼ ▼ ▼ ▼ ▼ ▼ ▼ ▼ ▼ ▼ ▼ ▼ ▼ ▼
 ☆★ 無修正DVD★☆なら 新宿歌舞伎町直送 ☆★

人気爆発新作ベスト9入荷
 
堤さやか引退特集 憂木瞳 プロジェクトX No8 ベイビーフェイスをやっちまえ
 白石ひより・愛葉るび SNAPSHOT 地下映像陵辱援交 すぎはら美里痴女教師
 店頭販売の売れ筋のみ厳選してみました 安心の後払い
     http://book-i.net/moromoro/
   白石ひとみ 小森詩 山田まり 長瀬愛
@@ 及川奈央 レジェンド @@ 堤さやか 東京バーチャル 依然大好評
    
  サンプル画像充実  見る価値あり  最高画質
▼ ▼ ▼ ▼ ▼ ▼ ▼ ▼ ▼ ▼ ▼ ▼ 
0788nobodyさん03/08/15 12:07ID:mChPmz42
>>786
1と3はやってみたんですが何故かダメでした。
動かしてるのは自分のサーバじゃないんですが、2は調べてみたらoffになってました。
こうゆう場合はどうすればいいんでしょうか?
0789nobodyさん03/08/15 12:10ID:???
>>788
ちゃんとアップしたファイルがSJIS以外の文字コードになっているか調べる
0790nobodyさん03/08/15 12:22ID:mChPmz42
>>789
SJISになってましたが、なんか色々やってるうちに
文字化けせずに書けるようになりました。
$msg = stripslashes($msg);
この行をのけたらいけました。
どうもありがとうございます。
0791Name_Not_Found03/08/15 12:28ID:???
アイコン選択のしかたがわかりません。apeboardを使っているのですが…
皆さんどうやって指定しているのですか?
0792nobodyさん03/08/15 12:34ID:???
>>791

ネタか?
どっちにしても、氏んでくれ。
0793nobodyさん03/08/15 13:39ID:ZJsoX+AA
PHP-users に、電波キタ*・゜゚・*:.。..。.:*・゜(゚∀゚)゚・*:.。..。.:*・゜゚・* ね。
MLに書こうかと思ったけど、粘着されるとやだからこっちに書いてみるテスト。
0794nobodyさん03/08/15 14:58ID:???
>>793
ここでやれ。夏厨

PHP-users ML ヲチ
http://pc2.2ch.net/test/read.cgi/php/1031734100/
079579303/08/15 15:41ID:???
スマソ。逝ってきます。
079675703/08/15 16:14ID:???
自己解決しました。

/* \bblog\templates\default\index.html */
    {getrecentposts num=1 assign=posts}

上記の行の数字部分を変えることで、表示ポスト数を変えることができました。
0797nobodyさん03/08/15 17:10ID:???
画像ファイルをそのままPOSTし、それを取得して処理しようとしているのですが、
正常に取得することができません($strはから文字でした)
どのようにすれば取得できるのでしょうか?間違っている点の指摘などありましたら
よろしくお願い致します

$fp = fopen( "php://stdin", "rb" ) or die( "error" );
$str = fread( $fp, 3 );//ファイルタイプチェックのため

以下続く
0798nobodyさん03/08/15 18:18ID:???
続きマダー?(チンチン AA(ry
0799nobodyさん03/08/15 21:36ID:???
>>797
stdinはだめ。.htaccessで
php_flag always_populate_raw_post_data On
と設定して、postを受け取ると$HTTP_RAW_POST_DATAに生の中身が入ってるよ。

サンプル↓
<?php echo $HTTP_RAW_POST_DATA;?>
<form method=post><input type=text name=booboo><input type=submit value=post></from>
0800nobodyさん03/08/15 22:05ID:???
>>798
以下処理が続くという意味で書いたのですが、ものすごく紛らわしくて
申し訳ありませんでしたm(__)m

>>799
stdinだとダメだったんですか。ずっとこれで頑張っていました__| ̄|○
早速、教えていただいたものでやってみようと思います。
0801山崎 渉03/08/15 22:28ID:???
    (⌒V⌒)
   │ ^ ^ │<これからも僕を応援して下さいね(^^)。
  ⊂|    |つ
   (_)(_)                      山崎パン
0802nobodyさん03/08/15 22:52ID:bGL7o/n7
保守。
0803nobodyさん03/08/16 00:09ID:yCKhoHep
あげとく。
0804nobodyさん03/08/16 00:41ID:bJ8kSIAe
アニメ好き、女子校生好きの方にオススメ!
すべて無修正でみせます。
アニメの中の美少女のオマンコ、女子校生のオマンコ
はっきり見えます。
無料画像をここでゲッツ!!
http://www.pinkfriend.com/
0805nobodyさん03/08/16 01:35ID:kg29KKNX
Anhttpd 1.4.2iとphp4.3.2(installer)を使ってローカルで掲示板の実験をしようとしているのですが、
どの掲示板を使っても、必ずエラーメッセージが表示されるのですが、どうしましょう。

例えば
$mode = $_POST["mode"]; に対して
Notice: Undefined index: mode in 〜 というメッセージを出すのですが、
無視してもよろしいんでしょうか。

こうした方がより良いという方法があったら、教えて頂きたい次第です。
0806nobodyさん03/08/16 01:50ID:???
modeをGETで渡してる予感がする。
0807nobodyさん03/08/16 02:25ID:???
>>806
上のスクリプトはこんな感じでした。
echo "<form action=\"$setting[script]\" method=\"POST\">\n";

aaacafeの方に上げて試すと、特にエラーメッセージは出ませんでした。
エラー出っ放しでも投稿は反映されるので、
htmllint並みの潔癖さんなのかしらん。と、心のどこかで疑っている次第です。
できればエラーメッセージを止める以外の方法で、解決できませんでしょうか。
080880703/08/16 03:06ID:???
自己解決しました。
インストーラー版をアンインストールして、
zipでまとめられていた方を入れてみたところ、
エラーメッセージが綺麗さっぱり消えました。

ヒントはhttp://pc2.2ch.net/test/read.cgi/php/1046326634/7でした。
8時過ぎからずっと悩んで、検索しまくってたのにー。
0809nobodyさん03/08/16 03:20ID:???
>807
php.ini の error_reporting はどうなってますか?
消えたように見えただけでエラー出力が抑止されてるだけ?
(aaacafeの設定がそうなっているとか)

$mode = (isset($_POST['mode']) ? $_POST['mode'] : ''); とか
081080703/08/16 03:54ID:???
>>809
error_reporting = E_ALL & ~E_NOTICE

でした。以前がどうだったか分かりませんが、デフォルトのはずです。
英語もあんまり読めないしー。

>$mode = (isset($_POST['mode']) ? $_POST['mode'] : '');
なるほど、とか言えるほどの知識はないので、
リファレンス見ながら理解してみようと思います。
ありがとうございます。


808のスレ見てたら、もう酷い時間ですよ!
0811nobodyさん03/08/16 04:46ID:0jlc9p4o
正規表現を教えて下さい。
0812nobodyさん03/08/16 06:32ID:???
>正規表現を教えて下さい。
せいきひょうげんと読みます。
文字列の操作に使います。以上。
0813nobodyさん03/08/16 11:35ID:???
質問します〜助力お願いします。

$a = 0;
$b = 0;
$heikin = $a/$b;
echo $heikin;

のように、"0"がセットされた$aと$bを使い割り算をし、ある数値を求めたいのですが
どうも0/0の計算の場合に

Warning: Division by zero in 〜

と上の四行ソースで言うと、三行目で警告が出てしまうッス。 これを回避する方法を教えてください。
お願いします。
0814nobodyさん03/08/16 12:09ID:???
$a = 0;
$b = 0;
#$heikin = $a/$b;
echo $heikin;
0815nobodyさん03/08/16 12:29ID:???
>813

b=0 の時だけ処理を分ける
算数の問題のような
0816nobodyさん03/08/16 12:40ID:???
>>814
ありがとうございますっ!
お、そんな方法が・・・と思ったら$aと$bが0の場合は$heikinに0がセットされないんですな・・とほほ。

>>815
そうそう、二時間近くいじくって先ほどそれに気が付きました汗
ありがとうございましたー!
0817nobodyさん03/08/16 13:20ID:???
>>816
当たり前だ、$heikinに0がセットされたらヤバいだろーが。
0818nobodyさん03/08/16 17:03ID:???
>>813
$heikin = $b > 0 ? $a/$b : NULL;
0819nobodyさん03/08/17 00:22ID:/KfDx3SX
safemodeがonの場合のサーバーで
フォルダの中にフォルダを作るにはどうしたらよいですか。
↓やるとhogeフォルダが作成できません。(uidが違うから?)

mkdir("aaa");
chmod ("aaa", 0707);
mkdir("aaa/hoge");
0820nobodyさん03/08/17 14:57ID:???
ほんまやxreaやとできんがな。
0821nobodyさん03/08/17 18:07ID:w938zl0m
現在アメリカサーバーを使ってますが、
現在使用しているPHPスクリプトが時差設定が出来なくて困ってます。

$abctime= (date ("H:i:s"));

この部分をgmtimeとか使って変える気がするんですが、
どうすればいいんでしょうか?

誰かおながいします

0822nobodyさん03/08/17 20:42ID:???
>>821
putenv('TZ=JST-9');
0823nobodyさん03/08/18 00:09ID:pnFIbaKU
>>822
$abctime=putenv('TZ=JST-9');
ってことでしょうか?
すんません知識がしょぼくて汗
082482103/08/18 00:19ID:pnFIbaKU
すいません、ちょっと違ってました。
正しくは以下です。

$abcdate = (date ("Y-m-d"));
$abctime= (date ("H:i:s"));

これを何とか日本の時間に直したいんでつ。
よろしくお願いしまつ
0825nobodyさん03/08/18 00:30ID:???
>>823
せっかく教えてもらったのに、調べもせずに質問返しか。
0826nobodyさん03/08/18 00:31ID:???
>>824
>>822で答えもらってるだろうが
あとは自分でググれ
0827nobodyさん03/08/18 06:12ID:BwATsvIe
fopenを使って読み込みモードでファイルをオープンするときってflockは必要ないんですか?
0828nobodyさん03/08/18 07:21ID:???
>>827
作成するシステム全体で読み込みしかしないんだったら不要。
もしどこかで書き込みと競合する可能性があって、それがまずいなら何らかのロックは必要。
あとflock()はadvisory lockなので、みんなで守らないと意味ないので注意。
0829nobodyさん03/08/18 08:06ID:BwATsvIe
>>828
じゃあどこかでファイルに書き込みする所が1箇所でもあれば
fopenで開く処理のときは全部lockかけないといけないって事ですか?
0830nobodyさん03/08/18 09:16ID:???
開いた時、
読み込むだけなら無くても良いと思うが・・・。
0831nobodyさん03/08/18 17:54ID:???
>>829
まー厳密にはそうなりますね。

>>830
そうね。
ほとんどのプログラムでは、そう問題になることもないしね。
0832nobodyさん03/08/19 03:47ID:OzwjKvy8
定数の場合defineで宣言すれば自分で作った関数内でglobalで指定しなくても使えるんですよね?
だったらやっぱり使う定数が多い場合は全部defineで宣言した方がいいんですか?
global宣言しないといけないものがあまりに多くなってしまったので。
定数として宣言した方が処理が早くなるとかあるんでしょうか。
0833nobodyさん03/08/19 08:22ID:???
PHP4.2.2を使っています。

あるファイル(txtやdat)ファイルに
文章あ-1 文章あ-2 文章あ-3
文章い-1 文章い-2 文章い-3
が書いてあって
別のphpファイルから 文章あのなかからランダムでひとつ、文章いの中からランダムでひとつ取り出すのはどうしたらできるでしょうか?
どなたか 教えてください。
0834nobodyさん03/08/19 11:48ID:???
>>832
複雑化してるなら定数で済むものは定数でいいのでは?たぶん処理も早いし

>>833
文章あ-ランダム数 文章い-ランダム数 でいいかと?
0835nobodyさん03/08/19 20:37ID:HWSDVW6B
女の子も勉強になるよ!
http://homepage3.nifty.com/manko/
0836nobodyさん03/08/20 02:26ID:DmnhIRDP
cryptで暗号化したパスワードって簡単に複合化できるんでしょうか?
0837nobodyさん03/08/20 03:16ID:???
>>836
できません
0838nobodyさん03/08/20 04:12ID:???
掲示板などのログファイルを1行目だけ書き換えたいんですが。
file関数で一度全部配列に入れて1行目だけ書き換えて保存する以外に効率が良い方法はどんなやり方がありますか?
0839nobodyさん03/08/20 04:31ID:???
ImageCreateFromPNGみたいな感じにBMP画像を読み込むのは
どうしたらいいんですか?
0840nobodyさん03/08/20 06:18ID:5bGlwbl+
str_replace ( mixed search, mixed replace, mixed subject)
でmixed searchが半角1文字のときは探してくれないんでしょうか。
0841_03/08/20 06:30ID:???
http://homepage.mac.com/yamazaki8
0842nobodyさん03/08/20 21:17ID:UjFXAgnt
お気に入り集 ☆
http://beauty.h.fc2.com/
0843 03/08/20 23:57ID:???
>838
fopen

>839
ImageCreateFromWBMP
0844nobodyさん03/08/21 02:26ID:???
>>838
>>843
行が固定長でなければぜんぶ読むしかないんとちがう?
file()で正解だと思う。ネイティブ処理だし。

いっそログファイルをdbmにするのはどう?
0845nobodyさん03/08/21 06:02ID:???
>>844
開業があれば止まるよ。
084683803/08/21 06:13ID:???
fopenで開いてそのあとどうすればいいんでしょうか?fputsでやってみたんですが追加で書き込みされてしまいます。
最初ある1行目を消して違うものに書き換え、2行目以降は元のままって意味だったんですが、やっぱりfopenでできますか?
0847nobodyさん03/08/21 15:36ID:pPohBqhp
初めての書き込みで緊張していますが
PHPの質問で数値の表示方法についての質問なんですが、数値の計算で
例えば
10×1.05 をやると 10.5
になるのですがこれの小数点以下を切り捨てたいのですが、どうすれ
ば良 いのでしょう。number_format関数を使えば小数点以下の修正が
行なえるというのは知っているのですが、number_format関数を使うと
1000などの数値の時、1,000となり","(カンマ)が表示されてしまい、数
値として認識しなくなってしまいます。
この計算の後にもさらに計算をしたいので、数値として認識させなけれ
ばならないので、こまっています。
どうぞご指導をよろしくおねがいします。
0848nobodyさん03/08/21 16:33ID:???
切捨てならキャスト演算子で十分だろ。
(int)
0849nobodyさん03/08/21 16:53ID:pPohBqhp
わかりました!ありがとうございます。この掲示板て凄く
たすかりますね。今後もどんどん活用しようと思います!!
0850nobodyさん03/08/21 16:56ID:???
>>836
>>846
いや、だから普通にやるなら無理なんだってば。
ファイルを開くモードによって書き換えた残りの部分が
中途半端に残ったり、ファイルサイズが0になったりする訳
だから、いずれにせよ、書き換えた部分以外の残りを
書き足さなきゃだめな訳。
file()で読み込んだ配列をforでまわして残りを書き込むとか。

0851nobodyさん03/08/21 17:00ID:???
>>849
この掲示板は人手不足なんでな。
悪いが一回回答をもらったら、お礼に十回ぐらい
質問に答えてくれ。
0852nobodyさん04/03/26 19:42ID:???
記念カキコ
0853nobodyさん04/03/26 19:46ID:???
初心者スレが無くなったお陰で、
PHP-users MLはそりゃもう、大流行だよ
■ このスレッドは過去ログ倉庫に格納されています