【PHP】くだらねぇ質問はここに書き込みやがれpart9
レス数が900を超えています。1000を超えると表示できなくなるよ。
0001nobodyさん
2005/09/03(土) 11:53:32ID:7OO4C5e5ここなら本スレで回答のないお前の下らない質問に回答があるかも知れません。
次スレは>>970あたりが建てて下さい
・過去スレ
【PHP】くだらねぇ質問はここに書き込みやがれ
http://pc5.2ch.net/test/read.cgi/php/1099322141/
【PHP】くだらねぇ質問はここに書き込みやがれpart2
http://pc5.2ch.net/test/read.cgi/php/1105218084/
【PHP】くだらねぇ質問はここに書き込みやがれpart3
http://pc5.2ch.net/test/read.cgi/php/1107780435/
【PHP】くだらねぇ質問はここに書き込みやがれpart4
http://pc8.2ch.net/test/read.cgi/php/1110697712/
【PHP】くだらねぇ質問はここに書き込みやがれpart5
http://pc8.2ch.net/test/read.cgi/php/1114787573/
【PHP】くだらねぇ質問はここに書き込みやがれpart6
http://pc8.2ch.net/test/read.cgi/php/1117945031/
【PHP】くだらねぇ質問はここに書き込みやがれpart7
http://pc8.2ch.net/test/read.cgi/php/1121100429/
【PHP】くだらねぇ質問はここに書き込みやがれpart8
http://pc8.2ch.net/test/read.cgi/php/1123431535/
0809808
2005/09/19(月) 08:42:54ID:???似ているようで大きく違う
0810nobodyさん
2005/09/19(月) 08:51:35ID:???今は
while(!feof($fp)){
$res .= fgets($fp,2048);
}
としています。
しかしページによっては連結するのに6秒くらい掛かります。
上以外で$resに内容を全て詰め込み速度が早い方法をご教授下さい。
0811nobodyさん
2005/09/19(月) 09:14:04ID:???どうしてもわからないので教えてください。
$sql= "create temporary table tmp select * from テーブル名 条件";
$res = $myclass->dbobject->query($sql);
$sql = "SELECT * FROM tmp order by date";
$res = $myclass->dbobject->query($sql);
while($row = $res->fetchRow()){
・・・・・・・・
こんなんで一度得られた検索結果を、さらにいろいろソートさせたい
のですが、どのようにしたらよいのでしょう。
お手数をお掛け致しますが何卒(初心者のため出来れば具体的な
形で)宜しくお願い致します。
0815nobodyさん
2005/09/19(月) 15:54:21ID:???0816nobodyさん
2005/09/19(月) 15:56:00ID:???0818nobodyさん
2005/09/19(月) 18:41:07ID:e00KWmStインデントはタブは使わずスペース4つが推奨となっているんだけど、
皆さんはどうしてます?
0819nobodyさん
2005/09/19(月) 18:42:11ID:???0823nobodyさん
2005/09/19(月) 20:11:17ID:???どのエディタでもタブを自動でスペースに変換っての
使ってるな。
要領がそんなに食うとは知らなかったけど、これからは
本運用の時は逆変換かけて使うかな。
別のエディタとかで開いたとき崩れにくいし、
タブだとエディタによって変にならんか?
0826nobodyさん
2005/09/19(月) 22:37:34ID:???0827nobodyさん
2005/09/19(月) 23:29:28ID:???これじゃYY-PHPがDLできないし、せめて理由ぐらい教えてくれ
0828nobodyさん
2005/09/20(火) 06:18:18ID:???その間も別のスクリプト(B)を並行して走らせるとします。
このとき、Bやwebサーバなど他のプロセスに影響しないよう、
Aの負荷をある一定以下にして(あえて実行速度を抑えて)走らせる方法ってありますか?
PHP.iniでスクリプトのMax実行時間などはいじれますが、Max実行速度はいじれませんよね??
0832nobodyさん
2005/09/20(火) 09:40:39ID:???元の話に戻ると、オイラはタブを使って(各自の)エディタ側で好きにインデント幅を決められる方が好きだな。
0833nobodyさん
2005/09/20(火) 09:45:40ID:???AもBもcronで走らせてます。
cronは単に「●時●分に■を実行」って指示するだけで、
実行速度とかを指定するものではないですよね・・・?
0836nobodyさん
2005/09/20(火) 10:46:25ID:???0837nobodyさん
2005/09/20(火) 11:57:22ID:???すでに答は出ているかもしれないけど、Unixには niceというコマンドが
あって、これは優先度を「下げる方向」に使うのであれば、一般ユーザーでも
使うことができるよ。
0838nobodyさん
2005/09/20(火) 13:39:13ID:???PHPにSQLコードを埋め込むときはPHPMyAdminで作って、PHPコードを生成して
コピペして調整しています。
少し困ったことがあります。
PHPMyAdminで作ったSQlの長文、特にGroup Byや join を使ったSQL文が
動作しません。シンプルな Group Byのモノは動作します。
例えば下のような長さのモノですけど、PHPMyAdminでは値が返されるのに
PHPに埋め込むとErrorになります。
何か気をつけるところとかあるのでしょうか?
select UserName, count(ginou) AS GinouKazu from Ginou
left join TaisenRecords
on Ginou.GameId = TaisenRecords.GameId
left join Users
on TaisenRecords.Winner = Users.UserId
where
GinouID = 21 and
Ginou.FightId = TaisenRecords.FightId
group by UserName
ORDER BY GinouKazu DESC
0839nobodyさん
2005/09/20(火) 13:52:36ID:???PHPから送ったクエリーをechoで出力して、
そいつをPHPMyAdminにコピペして動作するか確認してみては?
0840838
2005/09/20(火) 14:06:36ID:???echoでクエリーを出力してコピペしてPHPMyAdminでは動作しました。
PHPではエラー。エラーは下記でした。
ちょっと調べてみます。解決のヒントになりました。ありがとうございました。
mysql_fetch_array(): supplied argument is not a valid MySQL result resource
0841nobodyさん
2005/09/20(火) 14:28:15ID:???0842838
2005/09/20(火) 15:03:11ID:???すると、同じコードを実行した時にPHPMyAdminでは自動的に
select SQL_CALC_FOUND_ROWS UserName,.....
という風にSQL_CALC_FOUND_ROWSを添付しているようでした。
試しに動作しなかったPHPのコードにSQL_CALC_FOUND_ROWSを入れてみると動作しました。
MySQLサイトのReferenceを読むとクエリーをキャッシュする機能だという事のようです。
Tableをまたぐとこういう記述が必要になるのか、もっと汎用的に書けないものか
少し調べてみます。 ありがとうございました
0843nobodyさん
2005/09/20(火) 15:13:04ID:VaLk2yaU0844nobodyさん
2005/09/20(火) 15:13:42ID:VaLk2yaU0845838
2005/09/20(火) 15:14:15ID:???どうやら大文字か小文字かの違いだったようです。
>>838でのクエリー文では from となっていた部分を FROMと変えると
SQL_CALC_FOUND_ROWSを入れなくても動作しました。
とりあえずPHPDesigner2005で、今まで書いたSQLクエリーの from部分をFROM
に変換する作業からまたはじめてみます。
ttp://dev.mysql.com/doc/mysql/ja/query-cache-how.html
0846nobodyさん
2005/09/20(火) 15:19:58ID:???・Apacheの設定を変えて、.html, htm を PHPに処理させる
・SSI を利用する
どっちも嫌だ…
0847nobodyさん
2005/09/20(火) 15:27:25ID:VaLk2yaUPHPの中で別のPHPプログラムを動かすほうがいいのでしょうか・・?
0849nobodyさん
2005/09/20(火) 15:56:39ID:???<body>
<?php
echo 'Hello World';
?>
</body>
</html>
0850nobodyさん
2005/09/20(火) 18:07:57ID:???(処理内容は検索・削除・追加程度)
file()関数で最初に配列に収めた後で
foreachを使って1行ずつ検索等するのは
メモリなどのリソースを使いすぎてしまうのでしょうか?
こういう場合はfgets()関数で1行ずつ読み込んで処理すべきでしょうか?
0851nobodyさん
2005/09/20(火) 18:23:25ID:???無効にしたいのですが、どうすればよいですか?
また、一部のタグは許可したいのですが、その場合はどうすればよいでしょうか??
0854nobodyさん
2005/09/20(火) 19:33:31ID:???サニタイジングとかともいい、複雑でありながら、基本中の基本です
これだけは、パクりパクりしながら、根性で勉強して書き上げた方が、今後のためです
0855nobodyさん
2005/09/20(火) 19:40:19ID:???0857nobodyさん
2005/09/20(火) 20:49:55ID:+a/Wtbjo検索して結果を表示するプログラムを作りたいのですが、
なんか参考になるプログラム、あるいはページってありませんか?
上手な人ってデータをすべて読み込んで結果を表示するのか、
あるいは一行ごとに調べるのかなど参考にしたので。
0858850
2005/09/20(火) 20:50:53ID:???データベースを使わない方法をなんとかお願いしたいのですが・・・。
今のサーバではDBの個数に制限があるので、なるべくなら使いたくないんです。
0861857
2005/09/20(火) 22:52:57ID:mZEVLO6C859さん、レスどうも。
Excelからcsvで保存して使いたいのでなるべくデータベースは使いたくないな〜。
でも上手い人はそうしているのか・・
どなたかこの手のサンプルプログラムとか知りませんかね?
0862nobodyさん
2005/09/20(火) 23:27:34ID:???http://jp2.php.net/fgetcsv
0863nobodyさん
2005/09/21(水) 00:17:42ID:???1.
LOCK mysql_query("LOCK TABLE ○○ WRITE, ▽▽ READ")
QUERY mysql_query("SELECT ....."); mysql_query("INSERT INTO .....");
UNLOCK mysql_query("UNLOCK TABLES");
FETCH white(mysql_fetch_assoc()) { 。。。 } // SELECTの結果を使う
か
2.
LOCK
QUERY
FETCH
UNLOCK
のどちらで行うべきなのでしょうか?
PHPとデータベースでどのように連携されているかということがよく分からず、つまり
1.
QUERYを送った段階で結果のコピーが得られておりUNLOCKした後に内容が変更されても得た結果は変わらない
のか
2.
QUERYを送った段階では結果の参照(ポインタ)のようなものが得られておりUNLOCKした後に内容が変更されると結果が変わる
ということが気になりまして、どなたが詳しい方がいらっしゃいましたらよろしくお願いいたします。
0864nobodyさん
2005/09/21(水) 00:28:27ID:???これを消すにはどうすれば良いのでしょうか?
Fromは手動で設定してます。
環境はFreeBSD5, PHP4です。
0865nobodyさん
2005/09/21(水) 01:34:35ID:???データ検索する簡易型SQLエンジン(?)があったなぁ
0866nobodyさん
2005/09/21(水) 01:39:10ID:???気をつけるべきことって何かありますか?
普通に書いているぶんには特に気にする必要はないのでしょうか?
0867nobodyさん
2005/09/21(水) 02:00:09ID:???http://www.google.co.jp/search?sourceid=navclient&hl=ja&ie=UTF-8&rls=GGLD,GGLD:2005-30,GGLD:ja&q=%EF%BC%92%E3%81%A1%E3%82%83%E3%82%93%E3%81%AD%E3%82%8B
の最後のq=以下の部分から検索した文字を取り出すにはどのように変換すれば宜しいのですか?
0869nobodyさん
2005/09/21(水) 07:27:08ID:???Perlの簡易データベースをPHPに移植したやつ
http://s3p.net/~channel2/webpro/marunage/joyful/joyful.cgi?mode=thr&no=119
0870nobodyさん
2005/09/21(水) 07:36:19ID:???SJIS用
<?php
$url = 'http://www.google.co.jp/search?sourceid=navclient&hl=ja&ie=UTF-8&rls=GGLD,GGLD:2005-30,GGLD:ja&q=%EF%BC%92%E3%81%A1%E3%82%83%E3%82%93%E3%81%AD%E3%82%8B';
$parse_url = parse_url($url);
parse_str($parse_url['query']);
$q = mb_convert_encoding(urldecode($q), "SJIS", "UTF-8");
echo $q;
?>
0871nobodyさん
2005/09/21(水) 07:43:01ID:???$string = strip_tags($string, '<a><b><i><u>');
タグ許可すればcssやjava script埋め込まれるのがオチ
0872nobodyさん
2005/09/21(水) 08:42:03ID:???警告
この関数は、allowable_tagsで許可した全てのタグ の属性を修整しません。
これには、style お よび onmouseover属性が含まれており、
悪意のあるユーザが他のユーザに見せるようなテキストを投稿する際に
危険な行為を行う可能性があります。
0873nobodyさん
2005/09/21(水) 08:45:11ID:???むっちゃヤバいってことだね。
0874nobodyさん
2005/09/21(水) 08:49:54ID:???有効にしたいタグだけ戻せば埋め込みは回避できるのでは?
&lt;s&gt; → <s>
0875857
2005/09/21(水) 09:01:19ID:???参考にしたらやっぱ一行づつ呼んでるか。
0877nobodyさん
2005/09/21(水) 09:18:43ID:???0879nobodyさん
2005/09/21(水) 09:23:58ID:???$string = strip_tags($string, '<a><b><i><u>');
print $string;
0880nobodyさん
2005/09/21(水) 09:29:53ID:???だから preg_replace('/(<.*)onmouseover/', '$1', $string) とか入れれば良いだけでは?
正規表現のツッコミは無しで。
0881nobodyさん
2005/09/21(水) 09:51:37ID:???正規表現もうちょっと勉強しような
>>879
アンカータグなんて普通は許可しない。
htp://等から始まるものに自動リンクが普通では。
0882nobodyさん
2005/09/21(水) 10:13:25ID:???某所で無条件に使うなとか書いてあったからなんかまずいのかと思った
0883nobodyさん
2005/09/21(水) 10:32:49ID:???unset($_SESSION['code']) && unset ($_SESSION['num'])
で
if ( isset($_SESSION['code']) && isset($_SESSION['num']) )
{A} else {B}
unsetしたらBの方に飛びたいんだけど、この書き方だと間違ってる?
0884nobodyさん
2005/09/21(水) 11:23:04ID:???$string = strip_tags($string);
echo $string;
0885nobodyさん
2005/09/21(水) 11:27:49ID:???したいことはpop認証して本人確認がしたいんですが、pop3系の平文認証は出来たらしたくないので・・。
安全目な方法を探しています。
必ずしもpopsじゃなくてもいいのですが・・。
0886nobodyさん
2005/09/21(水) 11:29:04ID:ND56HoqP$url = $_SERVER["QUERY_STRING"];
$parse_url = parse_url($url);
parse_str($parse_url['query']);
$q = mb_convert_encoding(urldecode($q), "SJIS", "UTF-8");
echo $q;
後半は870のコピペ。URLを取得するのにこういう方法もある。
0888nobodyさん
2005/09/21(水) 12:09:36ID:???あるメソッドの中でcall_user_func_arrayを使って親クラスのメソッドを明示的に呼び出すにはどうしたらいいですか?
parent::method();
を
call_user_func_array(???, $arguments);
という感じでやりたいのです。
0889nobodyさん
2005/09/21(水) 13:38:18ID:???$method = array(get_parent_class($this), "method");
call_user_func_array($method, $arguments);
どうやらこの書き方でできるらしい。
0890889
2005/09/21(水) 14:26:15ID:???上のは見なかったことにしてくれ。
0892nobodyさん
2005/09/21(水) 15:08:31ID:???参考になるURL等あったらよろしくおねがいします
0893892
2005/09/21(水) 15:15:53ID:???現在
http://www.hogehoge.jp/test.php?id=1&id2=2
となっているものを
http://www.hogehoge.jp/1/2/
としたいと思っています。
test.phpの部分は.htaccessでDirectoryindexを指定してできたのですが
それ以降がわかりません。
REDHAT7.3
apache1.3
PHP4.4
です
0894nobodyさん
2005/09/21(水) 15:26:39ID:ND56HoqPhtaccess の RewriteRule で出来るよ。
0895888
2005/09/21(水) 15:42:13ID:???試してみたらそれでいけました!
実際にはstaticなメソッドでなくてもできるんですね。
あと、$method = array('parent', $args); でも問題ないことを確認しました。
情報ありがとうございました。
0899nobodyさん
2005/09/21(水) 18:42:18ID:???ロックファイルも使ってるし、書き込むファイルもflockしてるし、stream_set_write_bufferも使ってる。アクセス+ファイル書き込み激多い。
0900nobodyさん
2005/09/21(水) 19:17:32ID:???$file = fopen ("url.html", r);
if (is_file ($file)){
echo "true";
}else{
echo "false";
}
落ちてなくてもfalseになるんですが、おかしい部分を教えて下さい。
0901nobodyさん
2005/09/21(水) 20:20:37ID:???> if (is_file ($file)){
マニュアルで、is_fileの引数と、fopenの返り値を調べるべし。
0902nobodyさん
2005/09/21(水) 20:58:02ID:???その書き方だと監視するためのurl.htmlと同じ場所で稼動するスクリプト?
鯖落ちてたら監視スクリプト自体が動かんジャネ?
0903893
2005/09/21(水) 21:56:44ID:???>>898
ありがとうございます。
http://www.hogehoge.jp/test.php/1/2/
というようにはできたのですが、
http://www.hogehoge.jp/test/1/2/
としたいのですが、どうしたらいいでしょう?
0905nobodyさん
2005/09/21(水) 22:08:53ID:???書き込みが成功したのを確認してからRenameが定石と思われ
いきなりfopen('hoge.dat', 'w')みたいなミスをやってないかとか、
もっと軽量なデータ構造にできないかとか設計の見直しもアリだと
思うけど、なによりまず何故壊れてるのかを突き止めないことには
決定打はない
0906nobodyさん
2005/09/21(水) 22:18:43ID:???書き込み過多でログ飛ぶとかどんな馬鹿スクリプトだよ
0907nobodyさん
2005/09/21(水) 22:41:13ID:???ガッデーム!!
0908nobodyさん
2005/09/21(水) 23:44:34ID:???ロックファイルが見える前に、別のフロントから叩かれてファイル壊れる可能性あるかもね。
レス数が900を超えています。1000を超えると表示できなくなるよ。