トップページ⇒php
1001コメント331KB

【PHP】くだらねぇ質問はここに書き込みやがれpart3

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん05/02/07 21:47:15ID:???
PHPに関するくだらない質問用すれです。
ここなら本スレで回答のないお前の下らない質問に回答があるかも知れません。
次スレは>>970あたりが建てて下さい

・過去スレ
【PHP】くだらねぇ質問はここに書き込みやがれ
http://pc5.2ch.net/test/read.cgi/php/1099322141/
【PHP】くだらねぇ質問はここに書き込みやがれpart2
http://pc5.2ch.net/test/read.cgi/php/1105218084/
025625205/02/12 04:07:02ID:???
自己解決しました。$sと$mの間に$gをたしてadd($g)を足したら出来ました。
お騒がせ致しました。
0257nobodyさん05/02/12 09:38:52ID:???
フォルダに入っているファイルの容量をサーバから取得して
ブラウザ上で表示したいのですが、どこか参考となるサイトは
ありませんでしょうか?
0258nobodyさん05/02/12 09:53:12ID:???
floor(29/100*100);
で28となるのはなぜですか?

floor(19/100*100);
は19となりますが?
0259nobodyさん05/02/12 11:19:46ID:???
>>258
http://www.php.net/manual/ja/language.types.float.php
ワク囲み[浮動小数点数の精度]参照。
0260nobodyさん05/02/12 13:03:37ID:???
PHPが記述されているHTMLファイルの<title>タグの文字列を取得する
方法は無いでしょうか?
0261nobodyさん05/02/12 13:55:19ID:???
>>260
正規表現
0262nobodyさん05/02/12 14:15:20ID:???
んなぁ〜こったない
0263nobodyさん05/02/12 15:47:17ID:???
<? echo $names['name'] ?>に名前が表示されているとします。
(サンプルとして、test1、test2、test3が入っているとします)

$list= "./list/<? echo $names['name'] ?>/ ";

として

$listの値をprintで表示させると
/list/test1/
/list/test2/
/list/test3/

と言うようにしたいのですが、なぜか$list=の行でエラーが出ます。
記述の問題かもしれませんが、理由がおわかりになりますでしょうか?
また、<? ?>の中に<? ?>のコードを埋めるような事は、おかしいですよね?
だからエラーになるのかもと思っていますが、他の書き方がわかりません。。
0264nobodyさん05/02/12 15:55:13ID:???
$list= "./list/".$names['name']."/ ";

(ノ∀`)タハー
0265nobodyさん05/02/12 15:55:55ID:???
$list= "./list/$names['name']/ ";

(ノ∀`)タハー
0266nobodyさん05/02/12 16:36:23ID:???
ふざけてるの?
0267nobodyさん05/02/12 16:42:18ID:???
(゚Д゚)
0268nobodyさん05/02/12 16:43:52ID:???
$list= './list/'.$names['name'].'/ ';

(ノ∀`)タハー
0269nobodyさん05/02/12 16:53:13ID:???
フォーム投稿時に自動的にテキストファイルが指定のフォルダに
作成されるプログラムを考えているのですが、どうコードを書けばいいか
いまいちよくわかりません。。何かヒントとなるサイトを
ご存じ無いでしょうか?
0270nobodyさん05/02/12 17:00:46ID:???
>>269
ヒントとなるサイト…
たいていの解説サイトでファイルI/Oの話は出てくるんだけど…

あんた、少しは自分で調べてみたりしたのかい?
0271nobodyさん05/02/12 17:01:44ID:???
>>269
ttp://homepage2.nifty.com/sak/w_sak3/doc/sysbrd/sak3php.htm
0272nobodyさん05/02/12 17:28:55ID:???
>>270
さっきからググっているのですが、ファイルに書き込みは
出来るものの、自動作成というのは難しくて・・。

>>271
参考にします。。
0273nobodyさん05/02/12 17:33:23ID:???
自動って言っても勝手にできるもんやないんやで〜
なんらかの条件によってファイル名を決めるんやで〜
0274nobodyさん05/02/12 19:31:54ID:???
ファイル作成ってただたんに書き込み専用でオープンすればいいじゃん
そのときのファイル名をフォームから受け取ったものにすれば
その名前で勝手にファイルが作成されるとおもうが
0275nobodyさん05/02/12 19:38:04ID:???
*.cgiファイルの中でphpって実行できる?
0276nobodyさん05/02/12 20:00:15ID:???
できる
0277nobodyさん05/02/12 20:00:59ID:???
>>275
そのCGIを処理するプログラムからPHPが呼び出せればね。
0278nobodyさん05/02/12 22:35:03ID:pXjfFvIf
Debian Linux woody 3.0+Apache1.3.26+php4 (libphp4とCGI版併用)環境です。

任意のコマンドを使用出来てしまうシステム関数等を使わせないようにするには
どういう設定をすればいいのでしょうか。
safemode以外の方法が知りたいのでどなたかご教授願います。

0279nobodyさん05/02/12 22:38:18ID:???
iniに
disable_functions =
disable_classes =
てのがあるだろ
0280nobodyさん05/02/12 23:26:50ID:???
http://www.example.com/index.php?=unkoで、
unkoの部分取り出すのってどうすればいいの?
0281nobodyさん05/02/12 23:50:01ID:???
興味ないし、わざわざここに書くなよ。
0282nobodyさん05/02/12 23:53:07ID:???
ガッテンガッテンガッテン
0283nobodyさん05/02/13 00:10:49ID:???
>>280
unkoておまえ、ふざけてるの?
俺はいつでも真摯に答えようとしてるのに
これを解説するためには、
「unkoが〜〜」 「unkoは〜〜」とかunkoっていう下品な言葉を
連呼しなきゃいけない。
っていうかおまえさ、女に「マンコ」って言わせたい中学生と
同じで、俺に「うんこ」って言わせたいだけだろ?
俺は、そんなことで「うんこ」とか下品ことは言わないし、
おまえの釣りに引っかかるつもりもないから、
そういうレベルの低い発言は控えろよ。この糞野郎。
0284nobodyさん05/02/13 00:19:30ID:???
セッションを使用しているページで、キャッシュが向こうになりますが
ブラウザで戻ったとき、フォームに入力した内容などが消えないようにする方法は無いものでしょうか。
自分で考えた結果としては、
・セッションを使わずにクッキーを使う。
・change毎にJavascriptで入力内容をクッキーに記憶する。
・エラー等表示する前にセッションに入力内容を記憶して置いて、エラーで戻ったときセッションに内容があったらそれを表示する。
これ以外にあったら教えてください。
0285nobodyさん05/02/13 00:21:53ID:???
クライアント側の処理だということが分かれば十分だ
0286nobodyさん05/02/13 00:26:26ID:???
>>284
・戻らせない
0287nobodyさん05/02/13 00:32:43ID:???
>>284
困ったときは発想を逆転させるといいよ

※ブラウザの戻るを使うときは自己責任でお願いします

って書いておけば、おまいの責任は逃れられる
0288nobodyさん05/02/13 10:13:09ID:???
>>287
画期的だな
0289nobodyさん05/02/13 10:17:21ID:???
ファイルサイズを取得するコードを書いているのですが
「failed to open dir: No such file or directory 」とでます。。
ちゃんとそのディレクトリは存在しているのですが、なぜでしょうか?

<?function getFileSizeInDir($dir){
$objDir = dir($dir);
while($FileName = $objDir->read()){
if($FileName != "." && $FileName != "..") {
$FileName = $dir.$FileName;
if(is_dir($FileName)){
$Size += getFileSizeInDir($FileName."/");
}else{$Size += @filesize($FileName);
} } }
return $Size;
} ?>
<? print getFileSizeInDir("./files/") ?>
0290nobodyさん05/02/13 10:40:02ID:???
>>289
パスが違ってる。実行時のカレントがどこにあるかチェック。
029128905/02/13 12:41:23ID:???
>>290
パスって「<? print getFileSizeInDir("./files/") ?> 」
の部分ですよね?

チェックしても合っています。。
0292nobodyさん05/02/13 12:56:14ID:???
>>291
どういうチェックをして、何が合っていたのかな?
0293nobodyさん05/02/13 13:01:51ID:???
2ch互換のIDを生成したいのですが,どなたか式をご存知でないでしょうか?
板違いでしたら誘導をお願いします.
0294nobodyさん05/02/13 13:38:42ID:???
2ch互換のID生成をしたいのであればUNIX板のbbs.cgiプロジェクトに参加してください
0295nobodyさん05/02/13 13:52:35ID:hN5Lc3aa
>>293
このスレか本スレの過去ログで見たような気がする
どっかにリンクが貼ってあって、そこに書いてあった
0296nobodyさん05/02/13 16:21:53ID:iVFDDmsL
全角文字列を半角にするにはどうすればいいですか?
029729605/02/13 16:25:01ID:???
mb_convert_kana
すいまっせんかいけつしました
0298nobodyさん05/02/13 16:46:09ID:jbQNMs6i
GDライブラリーを使って画像を表示させることはできたのですが、
その画像にリンクもつけたいのです。
はい、そうです。
PHPを使ってです。


0299nobodyさん05/02/13 17:00:23ID:???
>>298
画像自体にリンクをどうのこうのする機能は無いよ。
HTMLのレベルで<a href="〜"><img src="exec_gd.php"></a>てな感じにするのがいいんじゃないかな
0300nobodyさん05/02/13 17:46:09ID:???
2chみたいにIDを表示させたいんだが、IPをcrypt()でメチャクチャにすればOK?
030130005/02/13 17:47:24ID:???
スマソ、すぐ上に同じような質問があったorz
0302nobodyさん05/02/13 18:16:01ID:???
こういう時のためにブックマーク
http://multix.jp/html/memo/
2ちゃんねるトリップの下のほう
0303nobodyさん05/02/13 21:01:48ID:???
プロセスが動いている数を調べたいのですが。
たとえば、unko.phpの数を取得して表示したいのです。
0304nobodyさん05/02/13 21:23:14ID:???
>>303
プロセスの意味がわかってないな
調べ直してこい
0305nobodyさん05/02/13 23:21:24ID:???
MySQL等DBを使う場合、排他処理をする必要はありますか?
0306nobodyさん05/02/13 23:31:55ID:???
iアプリにネットランキングを付けようと思ってPHPの勉強を始めたんですが、
アプリからデータを送信してPHPでデータを取得するにはどうすればいいんでしょうか?
調べてみたら、アドレスの後に「?変数名=データ」というような形で変数を送れると書いてあったのですが、
これだとデータが丸わかりなので出来れば違う方法にしたいと思います。
「?変数名=データ」の他にデータを送る方法は無いんでしょうか?
0307nobodyさん05/02/13 23:38:04ID:???
>>305
かなりスレ違いな気がするが、場合による
0308nobodyさん05/02/13 23:44:28ID:???
>>306
基本的にユーザーが入力したデータを送信する場合、
基本的に全て見れるのでデータを隠すのは無理

サーバー側からのデータをユーザに持ちまわしてもらいたいとかなら
データにユニークなIDをつけてそれだけを与えればいい
030930605/02/13 23:46:37ID:???
かなり勘違いしてた
iアプリとか分からないのですまんorz
0310nobodyさん05/02/14 00:04:08ID:???
せめてPOSTで…
0311nobodyさん05/02/14 00:20:48ID:???
改変されるのがイヤならMD5とかで正しさを検証するのもあり。
0312nobodyさん05/02/14 02:02:20ID:LPe9pAvG
ttp://php.s3.to/
ここの写メール掲示板を使おうとして、サイトにアップしたのですが
なぜかNotice: Undefined(このさきはアドレスみたいなもの)が
ずらーと出てしまっているんです。
ためしに、べつのサーバーでアップロードしてみたら、普通に機能しました。
サーバーはPHP対応です。
もう脳みそあわ立ちそうで、何か考えられる原因が合ったら教えて頂けるとありがたいです。
0313nobodyさん05/02/14 02:28:35ID:???
Undefined variable〜のことなら、未定義の変数を参照しようとしてますよ、というPHPからの注意。
エラーレベルとしては動作に支障のないものなので、サーバ管理者の設定によっては出力しないこともある。
表示されてないだけでエラーは起こってるんだけどね。

エラーがブラウザに出力されるとセキュリティ上問題になるケースもあるので、
とりあえず黙らせておくことを推奨。

PHPスクリプトの先頭付近に error_reporting(0); と追加すると一切エラーメッセージは出ない。
Noticeだけ抑えるには、error_reporting(E_ALL ^ E_NOTICE); 。

htaccessを使って設定を変更するなら、php_value error_reporting 0 と書く。

応急処置だけど、まあこのくらいでいいんでない?
031431205/02/14 02:51:56ID:???
返答、ありがとうございました。
そのすてきなタグを追加したら、見事にエラーメッセージは出没しなくなったんですが
まったく写真メモをして機能しませんでした……orz
根本的にこのスクリプトは使えないサーバーなのかもしれません。
せっかく返答をいただけたのに、解決できず申し訳ありませんでした。
0315nobodyさん05/02/14 03:28:38ID:???
そか。鯖管/利用者に聞いたほうがいいかもな。
CGI設置に関しては専用スレがあるんで、利用するならそこのテンプレに従って。
0316nobodyさん05/02/14 07:57:31ID:mZmBq9e/
>>314
PHPのバージョンを確認。変数展開あたりで失敗してる可能性あり
0317anonymous 05/02/14 10:00:13ID:???
htmlにphpを組み込んで、その実行結果を見ると、
<!-- saved from url=(0029)http://localhost/test_php.php -->
と、htmlの中に、phpのソースの位置が見えてしまいます。
これを見せないようにするほう方法はありますか?


0318nobodyさん05/02/14 10:35:41ID:???
>>317
>htmlにphpを組み込んで
ってどういうことだ?
まさかとは思うがhtmlファイルに<?php PHPスクリプト ?>とか書いて無いよな?
いや、もし書いててもhtmlをPHPでパースするように設定してるなら聞き流してくれ

><!-- saved from url=(0029)http://localhost/test_php.php -->
これはIEで保存した時に勝手につけられるヘッダのはずだ
サーバから送られてきてるHTMLについてるわけじゃないから安心汁
ちなみにソースの確認するなら保存せずに右クリックメニューの「ソースの表示」を選べ

0319nobodyさん05/02/14 10:50:36ID:???
>>317

レスありがとう

htmlに、phpを書いて、そのphpの結果をhtml
ページに表示しようとしています。


Smartyで書くべきとういうことでしょうか?
0320nobodyさん05/02/14 11:06:43ID:???
>>319
.htmlにphpスクリプト書いてHTMLソースにスクリプトが丸見えになるのも当然のこと
とりあえずマニュアル読んで出直してくれ
0321nobodyさん05/02/14 11:10:40ID:???
>>319
たしかに「くだらねぇ質問はここに書き込みやがれ」ってあるけどよ
ここまでくだらないのはおまえが初めてだよ
早くチンポで障子に穴を開ける作業に戻るんだ
0322anonymous 05/02/14 11:14:36ID:???
>>320

thanks

htmlをphp でパースするプログラムでした。

ところで、phpとhtmlを分けれるというので最近smarty があるみたいなのですが,
あれってどうなのでしょうか?

私がいろいろしらべが限り、新しい技術で、クラスを使うので少し複雑で、まだ、あまりpopular
ではないという印象を受けました。

ただ、html と php を別々(ファイルに)かけるし、キャッシュという機能もあるみたいなので、
興味がありますが、
みなさん利用されていますでしょうか?
0323軟式PHP05/02/14 12:15:59ID:???
Smartyはかなりポピュラー。
mojaviと組み合わせて使ったりしてるよ。アクセラレーターとの相性も
いいと聞くけど、そこまでのパフォーマンスを求める必要性が出たことは
今んところないなぁ。
0324にーchan05/02/14 13:38:01ID:???
PHPとqmailを使って空メールのシステム(ユーザから空メールを送られるとPHPでURLを様々なパターンの発行し送信元アドレスへ送る)
を作ろうと考えているのですが、
qmailが置いてあると思われる場所が存在しません。
あとqmailを使った場合空メールを受信する事が出来るアドレスは1つしか無理なのでしょうか?
0325nobodyさん05/02/14 14:33:19ID:???
>>324
ここはPHPの質問スレです。qmailの質問は他所でどうぞ
0326nobodyさん05/02/14 16:45:57ID:KIVsJVqJ
アカウント登録フォームで第一、第二、第三希望までまず入力してもらい
登録されているかどうか確認して登録されていないものを
第一>第二>第三の優先順位でひとつだけ抽選する、ということをやりたいのですが
どうもうまくいきません。
アカウントは別ファイルに、1アカウントごとに改行で記録していきます。
0327nobodyさん05/02/14 16:50:50ID:???
>>326
まず、どうやって処理をしているのか書け!!
0328nobodyさん05/02/14 16:53:06ID:gx1qrG4J
<select name='myselect' size=4 multiple>
と複数選択にしているのですが、submitしてから$_POSTをprint_rで
表示させると一つしか値が入っていません。
なにか間違えているのでしょうか?

PHP4.3.10 IE5
032932805/02/14 17:02:24ID:gx1qrG4J
失礼しました。解決しました。
<select name='myselect[]' size=4 multiple>
でいけました。
0330nobodyさん05/02/14 17:03:08ID:???
>>328
ああ、たぶん間違えているな。
0331nobodyさん05/02/14 17:05:13ID:KIVsJVqJ
$user_all = file($user_file);
$user_array = split(",",$user_all[$i]);
$user_array[1] = trim($user_array[1]);
$input_array = array($account_1,$account_2,$account_3);

$flg = 0;
for($i = 0; $i < count($user_all); $i++){
for($x = 0; $x < count($input_array); $x++){
if($input_array[$x]){
if(mb_strpos($user_array[1],$input_array[$x])){
$flg++;
}
}
}
}

こ、こんな感じでフラグの数を数えようかと思ったのですが・・
0332nobodyさん05/02/14 17:41:45ID:???
>>321
難しく考えすぎ?
結果にも優先順位がつくのだったら、
希望1、希望2、希望3
を順番に、保持リストと全比較して保持リストに登録されていなかった時点で
それが、最終結果だから、次の処理(表示とか)にスキップすればよい。
ループでやるなら、その時点でループから抜ければよい。
0333nobodyさん05/02/14 21:23:58ID:Y9YqW93M
>>321

id1, id2, id3 と3つのIDを入力されたとする

ユーザーファイルから1行ずつ読み出して、既存のidと
id1, id2, id3 をそれぞれ比較する。

もしid1と、既存idが一致したら$flg_id1 = 1 とでもする。
同様にid2, id3 も同じようにやる。

さいごの行までいって、$flg_id1が0だったら、最初のを、
$flg_id1が1でも、$flg_id2が0だったら2を、って感じにやればいいと思う。
0334nobodyさん05/02/14 21:27:59ID:Y9YqW93M
if ($flg_id1) {
 if ($flg_id2) {
  if ($flg_id3) {
   return 0; //どれも使えませんYO!(・3・)
  } else {
   return 3;
 } else {
  return 2;
} else {
 return 1;
}
0335nobodyさん05/02/14 21:48:29ID:???
で、できたよーありがとう
$input_array = array($account_1,$account_2,$account_3);
$flg = 0;
for($x = 0; $x < count($input_array); $x++){
for($i = 0; $i < count($user_all); $i++){
$user_array = split(",",$user_all[$i]);
$user_array[1] = trim($user_array[1]);
if($input_array[$x] == $user_array[1]){
$idx[$x] = 1;
}
}
}
if($idx[0]){
if($idx[1]){
if($idx[2]){
error();
}
else{
$account = $input_array[2];
}
}
else{
$account = $input_array[1];
}
}
else{
$account = $input_array[0];
}

こんな感じで・・・
0336nobodyさん05/02/14 23:06:44ID:???
>>335
2chだと半角Spaceやタブのインデントは消えるから書き込み時に全角Spaceに直すといい
0337nobodyさん05/02/14 23:12:58ID:???
>>335

ついでに、ループの途中でフラグが全部立ってたらその時点で
ブレイクさせるとかもありかと。

それによって逆に遅くなるか早くなるかはわからんが。。
0338nobodyさん05/02/15 08:06:02ID:???
アカウント処理ならロックも忘れない方が良いよ
0339nobodyさん05/02/15 10:14:46ID:???
perlだと、コマンドプロンプトに
print 123;^D
の様な感じでテスト出来ますが、PHPの場合これはどうすればいいのでしょうか?
0340nobodyさん05/02/15 10:40:57ID:???
apache+php入れればテスト出来るんでない?
0341nobodyさん05/02/15 10:42:37ID:???
?
0342軟式PHP05/02/15 11:00:14ID:???
>>339
php -r 'print 123;'
0343nobodyさん05/02/15 13:21:55ID:???
Windows版PHP 4.3.10ですが、-rオプションが無いみたいです…
0344nobodyさん05/02/15 13:34:20ID:???
CLI固有だったんですね PHP\cliのやつで出来ました
0345nobodyさん05/02/15 13:42:45ID:NEg6Wigy
こんんちは。
どなたかお助け下さい。

配列の値($value)から重複した分をひとつにしたいのですが可能でしょうか?
$a=array(1,2,3,1,1,1)
foreach($a as $value) {
print($value."<br>");
}

結果
1
2
3

みたい感じです。
0346わはははははははは05/02/15 13:50:03ID:5Ng5Me3b
$a=array(1,2,3,1,1,1)

foreach($a as $value) {
$flag = 0;
for($i = 0;$i < sizeof($a);$i++){
if($value == $a[$i])
flag = 1;
break;
else
flag = 0;
}
if($flag == 0)
print($value."<br>");
}

結果
1
2
3
0347nobodyさん05/02/15 13:52:24ID:???
>>345
配列の左はしにしるしをつける

・
[1][2][3][1][1]

このしるしからスタートして左に走査させる。
左はしにあればすぐに終了。

  ・
[1][2][3][1][1]

しるしをいっこずらす。同じく右側に走査させる。

 ←・
[1][2][3][1][1]

同じのがあればスルーして次のしるしに移動する。
左端までいったら同じのはなかったということなので表示する。

034834705/02/15 13:54:44ID:???
× しるしをいっこずらす。同じく右側に走査させる。

○ しるしをいっこずらす。同じく左側に走査させる。
0349nobodyさん05/02/15 13:56:40ID:???
>>346のはバグってるからコピペしないように。
0350軟式PHP05/02/15 13:58:37ID:???
>>345
$a = array(1,2,3,1,1,1);
$a = array_unique($a);
print_r( $a );
0351nobodyさん05/02/15 14:23:56ID:???
>>350
(ノ∀`)タハー 関数があったか。
035234505/02/15 16:04:45ID:???
お返事遅くなりました。
アドバイスどうもありがとうございました。
array_unique()で行けそうです。ありがとうございました!
0353nobodyさん05/02/15 19:30:11ID:???
セッション関連でつまづいています。
処理の流れは入力→確認→完了の3段階で
2ページ目、確認のページで入力必須項目を
満たしていなければ入力画面に飛ばして再入力を促す、
という予定なんですが入力したものを
全て保持しておきたいので
2ページで
session_start ();
while (list ($tag, $val) = each ($HTTP_POST_VARS)) {
$tag = "sess_" . $tag;
$HTTP_SESSION_VARS[ "$tag" ] = $val;
}
こうした後にheader()で1ページへ飛ばしています。
2ページ目でセッション登録したあとに
print_r($HTTP_SESSION_VARS);すれば期待通りの値を
確認できますがheader()後に1ページ目で
session_start ();
print_r($HTTP_SESSION_VARS);
してもArray()と、空ッポです。
なんかヒント下さい。
PHP4.0.6+RedHatVer?+アパッチVer1.x
0354nobodyさん05/02/15 20:59:40ID:???
>>353
単純にSIDがないのでは?
0355system V 05/02/16 09:36:02ID:???
>>323

Res Thanks .

htmlに埋め込むパースするPHPプログラムがかなり重いので、(表示時間が
かなりかかるので、)Smartyを使おうとおもうのですが、html自体が表示される
時間はかなり短縮されるのでしょうか?

1.Smarty自体、コンパイルして、処理するので、どうもはやそうなのですが、実際のところ、どうでしょうか?

2.Smarty って、簡単に、HTMLとPHPのロジックを分離できるのでしょうか?
私はあまりSmartyについてわかっていないのですが, html 内に、PHPのソースを直接書かなくとも、
別ファイルに、phpプログラムを書いておくという具合なのでしょうか?


アドバイスお願いします
■ このスレッドは過去ログ倉庫に格納されています