トップページ⇒php
986コメント299KB

【PHP】初心者コーナー 

レス数が950を超えています。1000を超えると書き込みができなくなります。
0001名無しさん@お腹いっぱい。02/01/21 03:21ID:???
長島も阪神のコーチになった。
仕方ない、人気のないPHPを応援してやる。 

データベース禁止 MySQL PostgreSQL はどっかいけ。
純粋にPHPプログラミングだけ。
初歩的な事ならWebProg板の誰かが素早く教える。
もちろんPerlプログラマーも手伝ってくれ。
ほんじゃ質問してみ。

 >>2-9 誰か情報かいてくれ。
0877nobodyさん03/03/18 02:20ID:???
>>875
文字数で切るだけならsubstrでいいでそ。
0878nobodyさん03/03/18 02:23ID:???
>>876
substrすら知らずに偉そうに煽ってる?
0879876=87703/03/18 02:30ID:???
いやいや、$better_token = md5(uniqid(rand(),1))とsubstrをくっつけて、
好きな文字数且つランダムなのが取得できるのを作ったら?
ってつもりだったのだけど…。

873が既存の関数だけでなんとかしようとしてるのが、プログラミングを楽しみ切って
ないようにみえたから。
0880nobodyさん03/03/18 03:12ID:4yQWEX54
>>843
WebStudio
PHPUnit
0881nobodyさん03/03/18 10:46ID:???
>>880
でもエクリプスの最新版は英語ができないときつい罠。

まあ秀丸より便利だしね。
もうもどれね。
0882nobodyさん03/03/18 11:15ID:???
ところでuniqid命令で生成される乱数に英数(大文字、小文字)以外の
文字もでてきちゃうね(^^;)
.とか/とか\とか困ったな、アルファベットの大文字小文字と数字だけ
だせないものなの?
0883nobodyさん03/03/18 11:20ID:???
↑のものですが、ごめんなさい
"\"マークはでないみたいですね、でもやっぱり"."と"/"は出やがるぜ
0884nobodyさん03/03/18 12:02ID:???
MacOSX10.2.4でphp4.1.2です。
自鯖にレッツphpのぁぷろだを入れて使ってるんですが、10MB以上のファイルをupload出来ないです。
post_max_sizeもupload_max_filesizeも30MBとかにしてるんですけど。
他に設定しないといけないところがあるのでしょうか。
0885nobodyさん03/03/18 14:27ID:???
Scriptの実行時間の制限は?
0886nobodyさん03/03/18 14:38ID:???
>>882
range
array_merge
srand
array_rand
0887nobodyさん03/03/18 18:33ID:???
>885
max_execution_timeですかね。
30なんですけど、ローカルでuploadしても10MB以下だと出来るのに、10MB超えるとだめだから、時間ってのは違うっぽいんですよねぇ。
0888nobodyさん03/03/18 18:41ID:???
Apacheの方でも制限なかったか?>サイズ
うろ覚えだけど。

あーあとPHPでも複数制限があったような気がする。
0889nobodyさん03/03/18 18:54ID:???
ログになにか出てないかい?
あとmemory_limitも見たいところだね。
0890nobodyさん03/03/18 20:39ID:???
memory_limitは設定してもphpinfoでは表示されてないです。
Apacheの設定ってのも関係あるかも知れませんね。
調べてみます。
レスありがとうございました。
0891nobodyさん03/03/18 23:04ID:???
>>884
inputのhidden渡ししてる、MAX_FILE_SIZEの値が影響してるってことない?
Apacheの方はLimitRequestBodyディレクティブをデフォルトから変更してると影響するみたいやね
http://cvs.apache.jp/apache-ja/manual/mod/core.html#limitrequestbody
0892nobodyさん03/03/19 00:28ID:???
>891
外野からだが参考になった。
LimitRequestBody ディレクティブは、指定されたコンテキスト (サーバ全体、ディレクトリ、ファイル、ロケーション) 内において HTTP リクエストメッセージボディの許容されるサイズに制限をかけることができます。
089389103/03/19 01:09ID:???
MLのスプール読んでたら同様の指摘が…もはや本家ではFAQだそうな。
なんかシンクロニティ
0894初心者03/03/20 00:35ID:???
あのさ、$_POST['hogehoge']の中身を抹殺するのってどうやるのかな?

<form method=post action='index.php'>
<input type=text name='hogehoge'>
</form>

ってやって index.php が表示されたときに
ブラウザの再描画ボタン押したらもう一度$_POST['hogehoge']送信
されちまうじゃん。

普通こういうのってどうやって処理してる?
0895初心者03/03/20 00:36ID:???
age
0896nobodyさん03/03/20 00:39ID:???
>>894
POST後、refreshしておく。
0897初心者03/03/20 00:48ID:???
>896
refresh関数なんかないけど・・・
もしかして unset($_POST['hogehoge'] ) をいってますか?

やってみて下さい、無駄ですから。
0898nobodyさん03/03/20 00:50ID:???
header('Refresh: 1, URL');
0899初心者03/03/20 01:09ID:???
>898
ぅぉ!出来た!!

さんくすでしたmOm
0900nobodyさん03/03/20 01:26ID:???
>>896,898
偉いねぇ
0901nobodyさん03/03/20 01:37ID:???
何気に邪道な気もしないでもないが。
phpってこういった機能は実装しないのかなぁ
0902nobodyさん03/03/20 02:15ID:???
>>901
HTTPのレスポンスヘッダを全て関数に実装するのもどうかと思うが(w
0903nobodyさん03/03/20 02:18ID:???
>902
違う違う、一度与えた$_変数の有効期間を設けるとかそういう類の
関数って意味。
sessionと併用したスコープなんてのがあれば実現出来そうな気が
するんだけどなぁ。。
0904nobodyさん03/03/20 02:32ID:???
タブと ;; 区切りの文字列をlist()にぶち込みたいのですが、
;; のほうが二文字だからか、上手く機能してくれません。。

いったいどうすればいいんでしょうか?
マニュアル見る限り出来そうなのはわかるんですが・・
0905nobodyさん03/03/20 02:48ID:???
>>904
何を試してみたか書いたほうがいいよ。
preg_split使ってみた。
$array = preg_split("/::|\t/",$str);
0906nobodyさん03/03/20 02:49ID:???
ん、split('(\t|;;)',$str);でいいんでつね・・(´Д⊂ヽ
文字列分割系の関数いっぱいあってようわからん、、(´Д⊂ヽ

板汚し失礼しました
0907nobodyさん03/03/20 02:52ID:???
>>905
あう、時間差ごめんなさい汗
explode()とsplit()で頑張ってたんですが、
preg_split()のマニュアルページ見てるとgoodな例文あったのでそれで何とかなりました・・ありがとうございますっ
0908nobodyさん03/03/20 14:11ID:usTHLNmu
//----------------
// time()
//----------------
$t = time();
$timestamp = mktime('','','',date("j", $t),date("n", $t),date("Y", $t));
$yy = date("Y", $timestamp);
$mm = sprintf("%02d",date("j", $timestamp));
$dd = sprintf("%02d",date("n", $timestamp));

print "time = $yy/$mm/$dd";

と

//----------------
// getdate()
//----------------
$nowtime = getdate();
$year = $nowtime["year"];
$mon = sprintf("%02d",$nowtime["mon"]);
$mday = sprintf("%02d",$nowtime["mday"]);

print "gettime = $year/$mon/$mday";

実行すると

time = 2004/03/08
gettime = 2003/03/20

なんでtime()の方は違うんだ?
0909nobodyさん03/03/20 14:52ID:HiyOtoa6
>>894
>>895
>>897
>>899
とりあえず1回死んでもらえますか?ゴミよ。
0910の03/03/20 15:06ID:VfWWllNI
>>908
date フォーマット指定 "j" と "n" が逆だから。
--
俺的ポータルサイトを作ろう
http://mysite.ddo.jp/
0911nobodyさん03/03/20 15:49ID:???
WebStudioっていうのを使ってみたいんですが、

↓コレ
http://www.xored.com/dl.php?download=xws-core-0.3.3.zip

何故か解凍できません。
誰か解凍できる人います?
解凍ツールはLhaplusです。
0912nobodyさん03/03/20 15:59ID:ZLETgyRF
PHPプログラムを配布するんですが
ソースコードを改造出来ない様にする方法は無いですか?
Zendエンコーダは高くて・・。
0913nobodyさん03/03/20 16:34ID:???
>>911
YahooBBの社員さんですか?

>>912
無理
091491103/03/20 17:06ID:???
>>913
違いますよ。
容量大きくて面倒でしょうが、
解凍できてる方、報告お願いします。
0915nobodyさん03/03/20 17:24ID:???
>>912
「キャッシュされるファイルについて」あたりを参考にしてはどうでしょう?
ttp://itb-tech.itboost.co.jp/php/php_21.php
0916nobodyさん03/03/20 18:14ID:???
>>910
ですか・・・逝ってきます。サンクスです。
0917nobodyさん03/03/20 18:28ID:???
質問さしてね
HTMLでアンカーってあるよね、同じページのなかでジャンプ
するやつ、PHPでこの命令はないの?
0918nobodyさん03/03/20 18:48ID:???
(゚Д゚)ハァ?
0919nobodyさん03/03/20 18:50ID:???
>>911
前にDLしたが解凍できた&動作確認済み。

>>917
goto
なわけはない。
092091003/03/20 19:24ID:???
>>919
ありがとうございます。
不可解ですが、Winzipで試したら解凍できました。

Winzipと日本のzip形式とでは仕様が異なるんでしょうかね?
0921nobodyさん03/03/20 21:03ID:???
日本のzip形式ってなんだよ・・・_| ̄|○
0922nobodyさん03/03/20 21:37ID:???
                 /      ヽ
                 / プラーン   ヽ プラーン
             ∧ /∧       ∧ヽ∧
            (  ⌒ ヽ      (  ⌒ ヽ  俺のはカンコック式zipだった。。
             ∪  ノ ミ  彡  ∪  ノ
              ヽ_),)        し'l_ノ
0923nobodyさん03/03/21 16:56ID:???
カンコック式zipにワラタ。
0924nobodyさん03/03/21 18:01ID:???
>>921
zip7だっけか?日本人が開発した、

「unzip32.dllでエラーを起こすちょっと小さいzipファイル」

を生成するプログラムを書いたバカがいる。
0925nobodyさん03/03/22 04:28ID:???
mbstringを使いたいんで、設定を変更しているのですが、
Windowsなのですが、php.iniを弄るだけではダメなのですか?
ttp://www.geocities.jp/wingdraw/pxml/pxml2.html
を実行したのですが、
Fatal error: Call to undefined function: mb_convert_encoding() in C:\web\test\xml_parse001.php on line 100
と表示されてしまいました。
mbstringの設定は、
ttp://php.s3.to/man/ref.mbstring.html
のEUC-JPユーザのphp.iniを参考にしました。
なにか他に設定が必要でしょうか。 Win98se AN HTTPD PHP4.3.0
0926nobodyさん03/03/22 04:46ID:???
phpinfo()で mbstringが有効になってる?
たまたまうちのphp@windowsも4.3.0だけどmbstringが有効になってなかったよ。
php.iniのextensionの部分をチェックすべし。
EUC-JPユーザ云々の設定は、その後の話だね。
0927nobodyさん03/03/22 04:47ID:???
>>925
Windowsだったら、php.iniでphp_mbstring.dllを
dynamic loadしてないんじゃないの?
extensionsディレクトリに入ってるから
(入ってなければ適切でないパッケージをダウンロードしてる)
extension_dirをきちんと設定してやって、Dynamic Extensionsの項の
該当するDLLのコメントを外す。

もし上が原因だったら、きちんとphp.iniのコメント記述を
読んでないからなので、英語だからと敬遠せずに一度ちゃんと読みなハレ。
092892703/03/22 04:55ID:???
とはいうものの、php.iniのコメントだけだと自動DLのやり方は判るものの、
DLが必要ということは判りづらいかな。
092992503/03/22 06:39ID:???
>926-927
thanxです。
php_mbstring.dllの項目を見つけたのですが、
まだ、ちょこちょこ修正が必要なようですね。
今日はもう眠いので明日また取りかかろうと思います。
ありがとうございました。
093092503/03/22 15:32ID:???
extension_dir = "C:\php\extensions\"
の個所を指定していなかったのが原因のようです。
mbstringに限らず拡張モジュールで検索したところ見つけることが出来ました。
Dynamic Extensionsの項は全く見ていなかったので、本当に助かりました。
たぶん、まだ設定が必要だと思いますので色々調べてから利用しようと思います。
ありがとうございました。
0931nobodyさん03/03/22 19:02ID:UE3IynkO
setcookie("***");

とすると、*** という名前のクッキーが削除されるのは
どの本を見ても書いてありますが、

新しくクッキーを書きこむと、書き込んだものとは別の意図していないクッキーの値が
消えるので、ひょっとしてはと思いお尋ねします。

クッキーって個数制限はありますか?

ただ、制限があったとしても400個くらいだったと記憶しており、
私が使用している数はせいぜい50個くらいです。

どなたかご存知の方、どうぞよろしくお願いします。
0932nobodyさん03/03/22 19:04ID:???
>>931
あなたのバグの予感。
0933nobodyさん03/03/22 20:10ID:???
50個も使うか....普通...
0934nobodyさん03/03/22 20:53ID:???
>931
減らせよ。正直迷惑。
0935nobodyさん03/03/22 21:02ID:???
クラスについて聞きたいのですが、
クラスメンバは全てpublicなのでしょうか。
C++みたいにprivateやpublicは指定できないのですか。

newで作ったインスタンスのスコープはどのくらいなのでしょうか。
delete演算子とかないですよねぇ。

マニュアル見ても詳しくかいてなかったのでよろしくおながいしまう。
0936nobodyさん03/03/22 21:13ID:???
>>935
ええ、できないです。

関数内じゃない?ifブロックとかだと生きてるし。
0937nobodyさん03/03/22 21:13ID:UE3IynkO
931 です。

書き込むクッキーなのですが、

***[01][1]
***[01][2]
***[01][3]

***[02][1]
***[02][2]
***[02][3]

のような形で多次元配列(連想配列の配列)に入れています。

これってクッキーにそのまま書けますかね?

・PHPに多次元配列がある事
・クッキーに配列を書き込める事

それぞれはしばしば解説してあるのを見かけるのですが、
多次元配列がクッキーにそのまま書き込めるのかわかりませんでしたので。
ひょっとしたらそのせいかとも思いまして。

setcookie("***[01][1]","$value",time()+36000);
のような形で書き込んでいます。

どうぞよろしくお願いします。


0938 ◆kaHG.XGS1s 03/03/22 21:18ID:???
>935
そのあたりはPHP5以降に期待やね…。
0939bloom03/03/22 21:18ID:d1IUlECS
http://www.agemasukudasai.com/bloom/
0940nobodyさん03/03/22 21:23ID:???
>>937
もちろん無理でしょう。
094193503/03/22 21:49ID:???
>>936>>938
ありがとん
PHP5に期待します。
0942nobodyさん03/03/22 21:50ID:vD6RRe1J
perlのmyにあたるものは何ですか?
0943nobodyさん03/03/22 21:59ID:???
そんなものはないです
0944nobodyさん03/03/22 22:02ID:???
>>942
そもそもスコープが関数内に限定されるので必要なしです。
0945nobodyさん03/03/22 22:04ID:???
変数のスコープはそれ以上狭くならないの?
0946nobodyさん03/03/22 22:06ID:UE3IynkO
>>940

やはり無理ですか。

だとすると、多次元配列で扱った方がスマートに処理できるデータをクッキーで扱う場合、
みなさんはどうやって処理されてますか?

例えば
$tmp[01][1] = '111';
$tmp[02][2] = '222';

というような値を扱う場合、

デリミタを定めて、一旦下のような形にしてから書きこむしかないのでしょうか?
$tmp = '01#1#111###02#2#222';

だとするとまた後でsplit するしかないですよね・・・






0947nobodyさん03/03/22 22:12ID:???
>>946
と、言うかcookieなんて不安定なストレージに多量のデータを書き込んだりしない。みたいな。
0948nobodyさん03/03/22 22:18ID:UE3IynkO
>>947

なるほど、だとしたらやはりセッションですか?

例えば大きな買い物カゴのシステムを作る場合のデータは
どこに保存するのが望ましいでしょうか?


0949nobodyさん03/03/22 22:19ID:???
>>948
セッションじゃないの?
0950nobodyさん03/03/22 22:21ID:UE3IynkO
>>949
なるほど、例えばperl でユーザ側の挙動を記録する際は
どうすればいいですか? 仕方なくクッキーですか?
0951nobodyさん03/03/22 22:24ID:???
>>950
>ユーザ側の挙動
定義して
0952nobodyさん03/03/22 22:43ID:???
何故にセッションとクッキーを別に考えますかね?
クッキーもセッション管理の一つの手段でしょうに…。
0953nobodyさん03/03/22 22:45ID:???
>>952
セッションを識別するためのな。
セッションで保存し続けるデータを丸入れするもんでは断じてないだろう。
0954nobodyさん03/03/22 23:06ID:???
>>953
それは規模によるね。丸入れで十分な場合もあるし。

まあ例に挙がってる大きな買い物カゴでクッキーに丸入れは無謀以外の何者でもないが。
0955nobodyさん03/03/22 23:17ID:???
ポストされたSJISのデータをファイルに保存するとソの文字に\\ていうのがつくんだけど
どうやって回避するのでしょうか?
095695503/03/22 23:26ID:???
悩むのめんどくさそうなのできっぱりEUC_JPで行く事にしました。
0957nobodyさん03/03/23 00:25ID:???
>>931
ちょっと遅レスだけど、知らん人のために・・・・

> クッキーって個数制限はありますか?

(引用)
http://e-words.jp/w/Cookie.html

1つのCookieには4096バイトのデータを記録でき、最大で300のCookieを保存できる。1台のサーバが同じコンピュータに対して発行できるCookieの数は20個に制限されている。
0958nobodyさん03/03/23 01:23ID:BBpu4hLb
私も検索していてこのようなログを見つけました。

(引用)
http://www.users.gr.jp/ml/archive/asp/4598.asp

やはり気になるのがブラウザを閉じてもセッションを
残すにはどうしたら良いかと言う事でして、

その際は上のページにありますように
(1)Application 変数に格納する。
(2)DB(やファイル)に格納する。

でいいのでしょうか?

他にもPHP独自のスマートなやり方がありましたらご指導お願いします。
0959初心者03/03/23 01:25ID:???
リモート情報取得で$_SERVER["REMOTE_ADDR"]使うと
xxx.xxx.xxx.xxx 形式でしか取得できないんだけど
bbb.aaa.hogehoge.co,jp形式で取得できる方法ってどうやるのだろ。。
0960nobodyさん03/03/23 01:28ID:???
age
0961初心者03/03/23 01:54ID:???
っつーか、$_SERVER["REMOTE_HOST"]
が効かんのは何故だ。。
HostnameLookupsはOnにしてるのだが。。
0962nobodyさん03/03/23 02:06ID:???
>>958
ブラウザを閉じても、ってことはcookie使うのを前提にしているとして、
1. cookieが消えないように設定
2. セッション情報がサーバから消えないように設定

1.は session_set_cookie_params()かな。またはphp.iniのsession.cookie_lifetime。
2.は php.iniのsession.gc_probability、session.gc_maxlifetimeを弄ると良さげ。
   または、session_set_save_handler()を使って消えないようにするとか。

>>959
gethostbyaddr($_SERVER["REMOTE_ADDR"])
096396203/03/23 02:21ID:???
と思ったけど、HostnameLookups onならgethostbyaddrしても出てきそうにないな・・
096495903/03/23 02:29ID:???
>962
>963
あんがとmOm
0965nobodyさん03/03/23 09:11ID:gFyfJ3h7
phpでime.nu経由のリファラーを弾きたいのですが
記述方法を教えて下さい。
0966nobodyさん03/03/23 09:19ID:???
>>965
PHPのマニュアル一回でも読めばそれくらい出来るだろ?
0967nobodyさん03/03/23 11:47ID:???
一覧表示してみると$_SERVERと$_ENVが同じにみえるのですが、実際はどう違うのでしょうか。
0968nobodyさん03/03/23 12:00ID:fA4gH2xG
グローバル変数とローカル変数の違いを
だれかおしえてください。
例を挙げてもらえると助かる
0969nobodyさん03/03/23 13:03ID:???
>>968
どこからでもアクセス可能。
所属するスコープ内だけで有効。
0970nobodyさん03/03/23 13:39ID:???
>>968
<?php
$グローバル
function(){$ローカル}
?>
097196803/03/23 13:40ID:fA4gH2xG
>>968
お返事どもでつ。
例をあげてくだつぁぃ。
カウンタとか掲示板で。
0972nobodyさん03/03/23 13:48ID:???
>>970
その$グローバルは違うだろ!
0973nobodyさん03/03/23 14:04ID:???
>>972
<?php
$global
function hoge() {
 global $global;
 $local;
}
0974nobodyさん03/03/23 15:22ID:???
972 名前:nobodyさん 投稿日:2003/03/23(日) 13:48 ID:???
>>970
その$グローバルは違うだろ!

アホがいます。
097596503/03/23 16:20ID:gFyfJ3h7
>>966
分からないです…せめてヒントだけでも教えて下さい。。
0976nobodyさん03/03/23 16:24ID:???
>>966
マニュアルだけでは足りん。

TCP/IPの常識HTTPの常識CGIの常識論理的思考力発想力気力体力

何より大切な自分で問題を解決するための手段を考える問題解決力。
レス数が950を超えています。1000を超えると書き込みができなくなります。