【PHP】質問スレッドpart25【php】
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
04/11/22 17:25:42ID:???・新規質問の方は上げてください。age進行でお願いします。
・質問する際には環境も明記。
・正しい日本語で分かりやすく。
・レスがつかないからって逆切れする厨お断り。
・解決しなくてもこたえてもらったら礼を。
■本家
http://www.php.net/
■日本 PHP ユーザ会
http://www.php.gr.jp/
■PHP マニュアル
http://www.php.net/manual/ja/
■PEAR マニュアル
http://pear.php.net/manual/ja/
過去スレ, 関連スレ等>>2-4
0656nobodyさん
04/12/09 03:37:21ID:???ホワイトチョコレート・オレより甘い
0657nobodyさん
04/12/09 03:44:41ID:???0660nobodyさん
04/12/09 09:24:37ID:???簡単なSQL
SELECT * FROM t1 WHERE start_date <= '2004-10-31' AND end_date >= '2004-10-1';
しかしSQLの質問だけなら板違い。
0662649
04/12/09 10:12:52ID:s0q6JDNtありがとうございました、その通りでした。
初歩的なミスですいません。
0663nobodyさん
04/12/09 10:33:45ID:???ってことだよね?
0664nobodyさん
04/12/09 10:53:35ID:???<script type="text/javascript"><!--
この中でPHPの変数を使いたい
color = "<?= $color ?>"; ←こんな感じで
//--></script>
だけど、使えない。。。
0667nobodyさん
04/12/09 11:44:40ID:???使えてる?
>どう使えないのか
変数の部分は空になってます
0668nobodyさん
04/12/09 12:19:13ID:???0669nobodyさん
04/12/09 12:27:58ID:???0672nobodyさん
04/12/09 17:48:51ID:???0673nobodyさん
04/12/09 19:12:40ID:???通常のPHPの範囲では、他の方法は思い浮かばないです。マクロもないしな。。
スタックフレームひっぱってきて呼出元のローカル変数を参照するとか。
>>670で紹介されてるモジュール使えば出来そう。
# 自分も拡張モジュール書く所だった thx > 670
0676nobodyさん
04/12/09 22:03:11ID:???掲示板作ってて
>>1
このように
1(数字)にリンク張りたいのですが
どのような書き方で可能でしょうか?
文字が入ってる変数は$commentです。
よろしくおねがいします。
0678nobodyさん
04/12/09 22:12:16ID:???数字で実現したいのです。
0679nobodyさん
04/12/09 22:17:38ID:???0680nobodyさん
04/12/09 22:23:48ID:???【PHP】くだらねぇ質問はここに書き込みやがれ
http://pc5.2ch.net/test/read.cgi/php/1099322141/
0683nobodyさん
04/12/09 22:53:01ID:???初歩的な質問でしたね^^;
では。。。
0684673
04/12/09 23:22:57ID:???得られる情報はdebug_backtraceとたいして代わらないみたい。
てことで、>>673の発言を訂正します。
0685nobodyさん
04/12/10 00:27:22ID:???んー、というかローカル変数全部表示してくれるオプションが有ったと思ったが。
あとは、TruStdioとか、PHPEclipsとかかぁ?
0686nobodyさん
04/12/10 04:51:13ID:dLo8c777共通の基本設定ファイルを読み込ませて値を定義したいのですが、
PHPにそのような関数ってありましたでしょうか?
なにか見掛けたような気がするのですがみつかりません。
もしかしたらあったのは他の言語かもしれません。
共通設定ファイルは
# comment
name = value;
のような感じの書式です。
0687nobodyさん
04/12/10 08:48:26ID:???これか?
ttp://jp.php.net/manual/ja/function.parse-ini-file.php
0688nobodyさん
04/12/10 09:23:08ID:???これですこれです。ありがとうございました。
しかしJavaScriptのコードと設定ファイルを共用するのは
少々トリッキーかもですね。
0689nobodyさん
04/12/10 11:04:56ID:vrayh+vx1つのディレクトリにファイルがたくさんあるのとないのとで読み込み速度は変わってくるのでしょうか?
例えば $lines = file("aaa.txt"); などする場合
ディレクトリに100ファイルある中から aaa.txt を読み込むのと
100000ファイルある中から aaa.txt を読み込むのとでは結構速度に差が出ますか?
2000ファイルくらいでやってみたところ差がわかりませんでした。
0690nobodyさん
04/12/10 13:52:35ID:???fopenなりを使って、自前でパーサー(もどき)組んじゃえば?
好きなフォーマットのiniファイルを使えるよ。
0692nobodyさん
04/12/10 14:55:48ID:???aaa.txtにダイレクトにアクセスしてる以上速度に差が出る分けない、って解答が正しいのでは?
0693nobodyさん
04/12/10 15:00:44ID:???読み出すファイルが確定していての話なら、影響は無し。
対象となるディレクトリの中身の状況によって、読み出すファイルを可変にするとかなら、
ファイル数が多ければ処理件数が増えるから速度は低下。
(OSのファイルシステムによる制限は考慮してないよ。)
0694nobodyさん
04/12/10 15:57:28ID:???ディレクトリ内にファイル数が多過ぎる場合だと
読みだすファイルが確定してる場合でもパフォーマンスに影響して来るよ。
PostgreSQLでテーブルを無闇に作成したりするのと同じ。
0695nobodyさん
04/12/10 19:11:51ID:???0696nobodyさん
04/12/10 19:56:24ID:sgrN7tSf大体似たような投稿内容なんですが、同じ文面でも違ったIP残していくもので
手動で.htaccessに追加するという対応では追いつきません
1分間に同じIPで$s回ロードされたら警告を表示→そのまま続けてもう1回ロードされたら拒否IPとして.htaccessに追加する
というのをphpではどうやればいいんでしょうか
.htaccessには他の処理も書いているので、
order allow,deny
allow from all
という箇所を見つけて、
deny from
deny from
deny from
deny from
↓
と追加していく形で
普段、.htaccessのパーミッションは604なので
chmod ("/somedir/.htaccess", 0606);
として処理を実行。その後に
chmod ("/somedir/.htaccess", 0604);
とかもできれば。
使ってるブログがphpで作られているので、index.phpにincludeして使えるようにしたいのですが・・・
えっと、phpのバージョンは4.3.8でセーフモードです
どうかお助けを
0698nobodyさん
04/12/10 22:57:08ID:???まさか一から教えてくれって言っているのか?
それともそのままコピペしたら動くようなのを求めてるのか?
ここはそういう場所じゃないよ、有料サービスでも探してみなさい。
それか本でも買って勉強したあと、どこかでつまづいたら質問したらいいと思うよ。
「・・・・とやってみたけどうまくいきません。助言お願いします。」とかいう感じで。
0699nobodyさん
04/12/10 22:59:43ID:???登録画面→dataディレクトリにユーザーID.csvを生成
CSVは、id,url,メアド,inカウント,outカウント,日付
という感じです。
どうにかカウントの処理まではできました。
dataディレクトリからreaddirで取得した配列をinカウントでソートしたいのですが、色々試しましたが方法が思いつきません。
どなたか教えていただけないでしょうか。
0700nobodyさん
04/12/10 23:01:16ID:???エラーです。エラーです。エラーです。
うぇっうぇうぇうぇっっうぇっっっうぇw
0701nobodyさん
04/12/10 23:33:07ID:???0703nobodyさん
04/12/11 03:32:21ID:???.htaccessファイルだけでやろうとせずに、IP記録&チェック用ファイルでも用意してさ、
最終的に.htaccessファイルを作成すれば良い
0704nobodyさん
04/12/11 05:53:31ID:???usort()
0705nobodyさん
04/12/11 11:31:10ID:d4nLr2Jv0706nobodyさん
04/12/11 12:06:04ID:MOGS9JxO管理画面で記事を編集する処理をしようとしてるんですが
改行コードを<br>に置き換える処理がうまくいきません。
どこが悪いのでしょうか?
$lock = LockFile( ITEM_LOCK_FILE_PATH );
$ItemList = GetCategoryItemList( $_REQUEST[ "CAT" ] );
for ( $i = 0; $i < sizeof( $ItemList ); $i++ ) {
if ( $ItemList[ $i ][ ITEM_COL_ID ] == $_REQUEST[ "ITEM" ] ) {
$ItemList[ $i ][ ITEM_COL_NAME ]
= $g_FORM["VALUE_NAME"]["VALUE"];
$ItemList[ $i ][ ITEM_COL_DETAIL ] = str_replace( "\n", "<BR>", $g_FORM["VALUE_DETAIL"]["VALUE"]);
break;
}
}
0707nobodyさん
04/12/11 12:14:05ID:???$ItemList[ $i ][ ITEM_COL_DETAIL ] = preg_replace("/\n\r|\r\n/", '<br>', $g_FORM["VALUE_DETAIL"]["VALUE"]);
0708nobodyさん
04/12/11 12:36:43ID:uBGzFGkuPHPってなんの略ですか?
0709nobodyさん
04/12/11 13:39:09ID:???Peaceand Happiness through Prosperity
あれ、Personal Handy Phoneだっけ?
0710nobodyさん
04/12/11 13:40:27ID:???0711nobodyさん
04/12/11 13:42:12ID:???ttp://php.planetmirror.com/manual/ja/history.php
0712nobodyさん
04/12/11 14:51:46ID:???つ【nl2br()】
0713nobodyさん
04/12/11 15:01:16ID:755OaB72違うなら違うといってください。
0714nobodyさん
04/12/11 17:04:06ID:???0715nobodyさん
04/12/11 17:20:37ID:MVGeL0Shheader(Location 〜 でやってたら
フレーム内のページの場合、親フレームに指定できず
フレーム内にログインページがでてきてしまうのですが
何かいい方法はありませんでしょうか?
0716nobodyさん
04/12/11 17:27:36ID:???0717nobodyさん
04/12/11 17:27:54ID:???WEBサーバーもインストールしていないと使えないのでしょうか?
ちなみにOSはWin2kです。
0718nobodyさん
04/12/11 17:30:45ID:???JavaScriptとMETA refreshでいいじゃない
<script type="text/javascript">if(top != self){ top.location.href = self.location.href; }</script>
0719nobodyさん
04/12/11 17:31:45ID:755OaB72文脈から、ウェブサーバをインストールした方がいいと感じました。
0721717
04/12/11 17:35:04ID:???サービスが起動しているかどうかまでは・・・
0722nobodyさん
04/12/11 18:07:56ID:???0723nobodyさん
04/12/11 18:36:48ID:MOGS9JxOしかし残念ながらまだ正常に処理できないです。
もともと新規記事登録画面や編集画面で改行入ってても改行できないプログラムを
改造してるんですが、まず
新規記事登録画面からcsvへの書き込み時は
$lock = LockFile( ITEM_LOCK_FILE_PATH );
$ItemList = GetCategoryItemList( $_REQUEST[ "CAT" ] );
$NewItemNumber = GetNewItemNumber( $ItemList );
$ItemRecord[ITEM_COL_ID ] = $NewItemNumber;
$ItemRecord[ITEM_COL_NAME ] = $g_FORM["VALUE_NAME"]["VALUE"];
$ItemRecord[ITEM_COL_REGIST] = date("YmdHis");
$ItemRecord[ITEM_COL_DETAIL] = str_replace( "\n", "<BR>", $g_FORM["VALUE_DETAIL"]["VALUE"]);
array_push( $ItemList, $ItemRecord );
$ItemFilePath = ITEM_DATA;
$number = sprintf( "%04d", $_REQUEST[ "CAT" ] );
$ItemFilePath = str_replace( "#NUMBER#", $number, $ItemFilePath );
WriteCsvToFile( $ItemFilePath, $ItemList );
UnLockFile( $lock );
でうまく処理できました
0724706,723
04/12/11 18:39:59ID:MOGS9JxO編集画面で開く時に
ClearFormValue();
$ItemInfo = GetItemRecord( $_REQUEST[ "CAT" ], $_REQUEST[ "ITEM" ] );
$g_FORM[ "VALUE_NAME" ][ "VALUE" ] = $ItemInfo[ ITEM_COL_NAME ];
$g_FORM[ "VALUE_DETAIL" ][ "VALUE" ] = str_replace( "<BR>", "\n", $ItemInfo[ ITEM_COL_DETAIL ]);
としてまた<br>を改行に戻してます。
こんな改造自体がおかしいのでしょうか?
0725706,723
04/12/11 18:47:52ID:MOGS9JxO<HTML><HEAD><TITLE>記事管理メニュー</TITLE></HEAD><BODY>
<H2>管理メニュー</H2><H2>記事の編集</H2>
<FORM ACTION="<?php echo( $_SERVER[ "PHP_SELF" ] ) ?>" METHOD="POST">
題名:<INPUT TYPE="TEXT" NAME="VALUE_NAME" SIZE="40" VALUE="<?php
HESC( $g_FORM[ "VALUE_NAME" ][ "VALUE" ] );
?>"><FONT COLOR="RED"><?php
if ( $g_FORM[ "VALUE_NAME" ][ "ERROR" ] == true ) {
HESC( "■ " . $g_FORM[ "VALUE_NAME" ][ "MESSAGE" ] . " ■" );
}
?></FONT><br>
本文:<TEXTAREA NAME="VALUE_DETAIL" COLS="50" ROWS="10"><?php
echo( $g_FORM[ "VALUE_DETAIL" ][ "VALUE" ] );
?></TEXTAREA><FONT COLOR="RED"><?php
if ( $g_FORM[ "VALUE_DETAIL" ][ "ERROR" ] == true ) {
HESC( "■ " . $g_FORM[ "VALUE_DETAIL" ][ "MESSAGE" ] . " ■" );
}
?></FONT><br><BR>
<INPUT TYPE="HIDDEN" NAME="CAT" VALUE="<?php
HESC( $_REQUEST[ "CAT" ] );
?>">
<INPUT TYPE="SUBMIT" NAME="SUBMIT" VALUE=" 追 加 ">
<INPUT TYPE="SUBMIT" NAME="CLEAR" VALUE=" クリア ">
</FORM><BR><BR>
<A HREF="./admin_item_index.php">記事編集のトップへ</A><BR><BR>
<A HREF="./admin_index.php">管理メニューのトップへ</A></BODY></HTML>
0726715
04/12/11 20:22:30ID:MVGeL0Shできました。ありがとうございました。
0727nobodyさん
04/12/11 21:15:13ID:jtmXZY//感じとしては、クライアントがサーバの1000番ポート(例)に接続してきて、
送ってきたクエリに対する結果を返したいのですが……。
0728nobodyさん
04/12/11 21:28:10ID:???実現したいことを提供する仕組みがPHPにあるかどうか調べる。
この場合だとデーモンを作成できるかどうか調べりゃいいわけだな。
で、その機能が提供されているとしたら、どんな関数を使えばいいか
芋づる式に分かるわな。
0729nobodyさん
04/12/11 22:03:54ID:st9UV/hbhttp://example.com/hoge/ を $base_url って名前につけたとするじゃん、
そんとき /hoge/ の部分はなんて名前にすればいいと思う?
0730nobodyさん
04/12/11 22:10:27ID:???"scheme", "host", "port", "user", "pass", "path", "query", "fragment"
ってのがあるから、 path でええんでないの?
0732nobodyさん
04/12/11 22:18:50ID:???0733nobodyさん
04/12/11 22:24:07ID:???0734nobodyさん
04/12/11 22:24:22ID:???0735nobodyさん
04/12/12 00:22:45ID:???↓できいてみたら?
【プログラム板】
クラス名・変数名に迷ったら書き込むスレ。Part3
http://pc5.2ch.net/test/read.cgi/tech/1087209526/
0737nobodyさん
04/12/12 11:29:49ID:Wwc4JdWx呼ぶ方法を知りたいのですが、知っている方おりますか?
0738699
04/12/12 13:41:09ID:6JzXtPshファイル名からinカウントを表示する関数を作って、usortで、数えるって感じですか?
そんな感じで色々やってみたんですが、うまくいきませんでした。
0739nobodyさん
04/12/12 13:53:30ID:0qNzuUWM0740nobodyさん
04/12/12 14:18:00ID:???PHP5からmysqli拡張でサポート
http://jp.php.net/manual/ja/function.mysqli-prepare.php
0741nobodyさん
04/12/12 15:17:15ID:/72kiXrOdb接続をポインタで渡したいのですが、
以下では出来ませんでした。
エラーメッセージでコンフィグが云々〜というのが出たのですが、
鯖の設定で出来たり出来なかったりするんでしょうか?
function f_name($pt_db, $int_id) {
$res_db = pg_query($pt_db, "SELECT name FROM table WHERE id=" . $int_id . ");
$arr_db = pg_fetch_array($res_db);
return $arr_db[name];
}
呼び出し時
echo f_name(&$作成したdb接続, $int_aa);
0742nobodyさん
04/12/12 15:21:26ID:???a<>b
c<>d
e<>f
と配列$log[]に格納されている配列を
$nlog[b] = a
$nlog[d] = c
$nlog[f] = e
としたいのですが以下のようにすると多次元配列になってしまうんで一次元配列
にしたいんです。どうじたらいいでしょうか。
for($i=0;$i<=count($log);$i++){
list($from, $key) = explode("<>", $lines[$i], 2);
$nlog[] = array("$key"=>"$from");
}
0743nobodyさん
04/12/12 15:24:59ID:???function f_name(&$pt_db, $int_id) {
...
}
echo f_name($作成したdb接続, $int_aa);
>>742
for($i=0;$i<=count($log);$i++){
list($from, $key) = explode("<>", $lines[$i], 2);
$nlog[$key] = $from;
}
0745699
04/12/12 15:41:31ID:6JzXtPshfunction iicount($x){
$usrid = $x;
$usrfile = "./data/$usrid.dat";
$fp = fopen($usrfile,"r");
$fg = fgets($fp);
$fpp = explode(',',$fg);
list($usrid,$sitename,$siteurl,$comment,$mailad,$passwd,$outcount,$incount) = $fpp;
fclose($fp);
return $incount;
}
をユーザ定義関数として
dataフォルダから取得したファイル名一覧(=usrid名一覧)の配列を
usort($datfile_array,$iicount); //inカウントでdatafile_arrayをソート
という使い方をしてうまく行きませんでした。使い方、全然検討はずれでしょうか。。
0746nobodyさん
04/12/12 15:54:28ID:???フォームでひらがな以外はエラーとなるようにしたいです。
送られてくる変数が$varとして
if(preg_match("/[^ぁ-ん]/",$var)){exit ("ひらがな以外はダメ");}
ではうまくいかんとです。どうすればよいですか?ページの文字コードはシフトJISです。
0747nobodyさん
04/12/12 16:16:22ID:???マルチバイト関数を使うべし。
0749nobodyさん
04/12/12 17:00:42ID:???情報が足りないからよく分からんがこれでいいのかい?
usortの使い方はマニュアル見たの?
function cmp($a, $b){
if ($a[7] == $b[7]) return 0;
return ($a[7] < $b[7]) ? -1 : 1;
}
$dir = opendir('data/');
while (($file = readdir($dir)) !== false) {
if(substr($file, -4) == '.dat'){
$data = file('data/'.$file);
$datfile_array[] = explode(',', $data[0]);
}
}
closedir($dir);
usort($datfile_array, 'cmp');
print_r($datfile_array);
0750nobodyさん
04/12/12 17:05:49ID:yU1MgCLaCみたいに変数宣言をする方法は無いですか?
クラス変数はvarで宣言できるけど、宣言して無い変数も
いくらでも追加できるみたいなのでバグの温床になりやすいです。
0751nobodyさん
04/12/12 17:27:34ID:???嫌ならCdeCGIでもやってろ
0753nobodyさん
04/12/12 17:53:38ID:???目を凝らしてコピペ連続だな。
■ このスレッドは過去ログ倉庫に格納されています