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

【PHP】下らねぇ質問はここに書き込みやがれ 51

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2007/07/27(金) 16:32:46ID:???
まず読め→【PHP マニュアル】http://www.php.net/manual/ja/
PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。
過去スレ、関連スレ、FAQなどは>>2-10辺り

◆前スレ
【PHP】下らねぇ質問はここに書き込みやがれ 50
http://pc11.2ch.net/test/read.cgi/php/1184143801/

◆質問する時の注意
・ 自分のIDを表示させること。(メール欄に何も記述しないこと。空白も入力しちゃダメ)
・ サーバーのOS(Linux、Windows他)、WebサーバーとPHPの種類やバージョン等を明記すること。
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。

◆質問後の注意
・偽者防止に必ずIDを表示させること。(メール欄に何も記述しない)
・2回目以降は最初に質問した際のレス番号を名前欄に入れること。
・解決しなくても回答をもらった場合はお礼を言うこと。
 (荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)

◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。

【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで
0488nobodyさん2007/08/04(土) 21:10:49ID:???
>>483
おまえバカ
0489nobodyさん2007/08/04(土) 21:14:50ID:???
>>486
プロはどんな作り方にすんの
0490nobodyさん2007/08/04(土) 21:15:31ID:???
>>487
if($this->moge)
0491nobodyさん2007/08/04(土) 21:15:33ID:???
そんな作り方だよ
0492nobodyさん2007/08/04(土) 21:16:37ID:???
日本語の文章を名詞や動詞やらに分解するいい方法教えてください
0493nobodyさん2007/08/04(土) 21:18:35ID:???
動詞 〜しろ、〜する、〜しよう、〜したい
名詞 〜で、〜を、〜に、〜は
みたいな
0494nobodyさん2007/08/04(土) 21:19:53ID:???
>>487
class hoge
{
function check_vars()
{
var_dump(get_defined_vars())
}
}

$class = new hoge();
$class-Lcheck_vars();
0495nobodyさん2007/08/04(土) 21:20:33ID:???
>>490
$mogeに値が入ってないからそれだと無理です
04964852007/08/04(土) 21:22:12ID:???
俺だったら「こんなスレをよく見ています」ってランキングにするかな
俺がプロかどうかはまた別だが
0497nobodyさん2007/08/04(土) 21:26:53ID:???
>>492
chasen
0498nobodyさん2007/08/04(土) 21:34:29ID:???
2chの『こんなスレ…』って、実はただのランダム抽出なんだけどねw
0499nobodyさん2007/08/04(土) 21:46:03ID:???
>>494
それだとただローカル変数(notプロパティ)が取得できるだけでは
0500nobodyさん2007/08/04(土) 21:49:49ID:???
>>492
形態素解析 php
chasen kakasi namazu

とかでググレカレー
0501nobodyさん2007/08/04(土) 22:03:20ID:zy9Gu8y/
スレッドフロート型掲示板のトップソート機能の内部処理について教えて下さい。
0502nobodyさん2007/08/04(土) 22:09:53ID:???
>>501
内部処理のどのへんについて教えてほしいですか
0503nobodyさん2007/08/04(土) 22:16:30ID:???
時間をunixタイムスタンプで比較すると、
38年問題に対応できないですよね
38年問題にひっかからない時間比較はどうすればできますか?
0504nobodyさん2007/08/04(土) 22:19:40ID:???
このスレを見ている人はこんなスレも見ています。(ver 0.20)
WEB制作業界からの脱出!index9.html [転職]

( ゜д゜)
0505nobodyさん2007/08/04(土) 22:20:49ID:???
まぁ、なんとなくは分かる
0506nobodyさん2007/08/04(土) 22:21:39ID:???
>>499
?違うよ。これで十分だろ。
満足しないら
get_class_vars(get_class($this));
でやりな。

0507nobodyさん2007/08/04(土) 22:23:43ID:???
>>503
30年間同じシステム使う可能性をまず考える
0508nobodyさん2007/08/04(土) 22:34:41ID:???
>>507
これだから、素人は困るぜ。
業務システムで、数年〜数十年先の未来日付をデータとして扱うことなんかザラ。
ローンのシュミレーションとかがそうだ。
まったく、このスレ夏真っ盛りだぜ。
0509nobodyさん2007/08/04(土) 22:35:17ID:???
unixの時計を狂わせればいいだけのこと
0510nobodyさん2007/08/04(土) 22:36:41ID:zy9Gu8y/
>>502
どうやって実現出来ているのかがわからないのです。新しいスレが投稿されたり、レスがあったのをトップソートさせるためにphp側はどんな処理をしているのでしょうか。
0511nobodyさん2007/08/04(土) 22:40:10ID:???
>>510
スレ自体にupdated_atとかの適当なフィールド作って
レスつく度に更新させればいいだけじゃね?
0512nobodyさん2007/08/04(土) 22:43:31ID:???
>>508
30年ローンってどんなんだよwせいぜい10年使うとしても20年。
そんなクラの案件扱った事無いんだがどんなところでそういうのあるんだ?
0513nobodyさん2007/08/04(土) 22:44:12ID:???
闇金
0514nobodyさん2007/08/04(土) 23:00:58ID:zy9Gu8y/
>>511さん
…すみません。
よくわからないのでわかりやすく説明してほしいです。
0515nobodyさん2007/08/04(土) 23:01:05ID:???
>>508
数年ならともかくphpで数十年先の日付を扱うシステムを
構築しようとするお前の方が素人
0516nobodyさん2007/08/04(土) 23:05:19ID:???
素人呼ばわりされれば、今度はPHPを叩きにくるか。
やめてくれ、可哀相だろ、PHPが。
0517nobodyさん2007/08/04(土) 23:14:58ID:???
実際に今どうやって作っているのかわかんないから説明のしようがないです
sqlで作ると仮定した場合だと

親スレテーブル
id,タイトル,作成日時,更新日時

子スレテーブル
id,親スレid(FK),名前,内容

とでもしておいてスレに投稿される度に親スレの「更新日時」フィールドを
今の日付にupdateするだけです。
topでは更新日時順で取り出し。

>>513,516
普通に考えると>>515の言ってる事の方が納得できるよ。
お金に関した物や長期的に使うシステムだと信頼性や強度から言ってphpじゃ役不足です。
0518nobodyさん2007/08/04(土) 23:20:33ID:???
役不足
役不足
役不足
05195032007/08/04(土) 23:23:04ID:???
喧嘩はやめて下さい
どうすればいいかだけを教えて下さい
0520nobodyさん2007/08/04(土) 23:25:43ID:???
>>508がそういうのをよく扱ってるらしいから聞いてみるといいよ
0521nobodyさん2007/08/04(土) 23:36:58ID:zy9Gu8y/
>>517
ありがとうございます。
0522nobodyさん2007/08/04(土) 23:47:54ID:???
ブロック中にコメント文を書くと、
「そのコメントがどこまでかかっているか」が分かりにくいです
どこからどこまでかかっているのかが
わかりやすいコメント法があれば教えて下さい
05235222007/08/04(土) 23:58:52ID:???
新発見しました
ブロック中にブロックを書いても問題ないんですね
これでコメントの範囲を指定できそうです

function hoge ()
{
{
// comment
echo 'no error';
}
}
0524nobodyさん2007/08/05(日) 00:20:21ID:???
>>503
http://pear.php.net/package/Date
使えば
0525nobodyさん2007/08/05(日) 00:32:42ID:???
キャメルケースで、途中に大文字の単語が入る場合はどうすればいいですか?
hogePHPFugaみたいになったらかっこわるいんですが。
hogePhpFugaにするか
hogePHPfugaにするか
くらいしか方法なさそうですが、標準的な方法ってありますか?
0526nobodyさん2007/08/05(日) 00:39:43ID:???
>>525
途中に入れなければいい。自分はOf使うな。
hogeFugaOfPHP
fooBarOfDB
0527nobodyさん2007/08/05(日) 01:06:32ID:Mpx0Qpnu
10万件のデータに100万件のデータを総当りで検索する必要があるのですが、
検索の都合上、10万件のデータにLIKE演算子を使わざるを得なく一回当たりの
検索コストが0.7秒掛かってしまいます。

0.7秒×100万件=70万秒=194時間掛かってしまうのですが、
DB上の検索処理ではなく、phpで正規表現などをつかって時間の短縮が
測れるようなテクニックはないでしょうか?

194時間PCが使えないのは、さすがに厳しいので、せめて1日に短縮できたら、
すごく助かるのですが・・・
宜しくお願いします。
0528nobodyさん2007/08/05(日) 01:28:24ID:???
ぱいそんくんは処理速度早いらしい
どうしてもPHPでなければならないのなら、中古屋から一万PC買ってこい
どっかのサイトにクラックでもする気か
0529nobodyさん2007/08/05(日) 01:31:48ID:???
>>527
phpというよりか、DB側じゃね?
DB鯖の構成にも寄るけど、クエリ5分割とかして並列実行させてみるとか


like句は後方参照のみ?
何のDBか知らんが、read_buffer_size やら sort_buffer_size の調整はしてみた?
0530nobodyさん2007/08/05(日) 03:40:42ID:???
またクラック厨かっ!
0531nobodyさん2007/08/05(日) 05:41:38ID:ZbLLWuy9
クラスってものがわかりません。
公式のサイトみてもコードが長すぎて・・・

どなたか「こんにちは」か「こんばんわ」を表示するクラスを
書いていただけないでしょうか?
0532nobodyさん2007/08/05(日) 08:47:51ID:rNGqt6E+
>>531
クラスにおいて表示するのはメソッドです。
こんにちはかこんばんはを表示するクラスという要件では設計が難しすぎです。
一般にこんにちはかこんばんはを表示するのはファンクションです。
0533nobodyさん2007/08/05(日) 09:19:55ID:???
↑こいつのレスは面白くない
0534nobodyさん2007/08/05(日) 10:54:09ID:???
>>531
いっちょおれがかいてやるぅ

public class hello{
public static void main(String[] args){
System.out.println("こんちゃ");
}
}
0535nobodyさん2007/08/05(日) 12:08:18ID:???
>>527
forでループして検索するの?
0536nobodyさん2007/08/05(日) 12:38:33ID:???
>>534
スレ違いです
0537nobodyさん2007/08/05(日) 15:33:06ID:???
XREAサーバー使っている奴いる?
朝から爆発していて、他の鯖まで誘爆しまくっているww
上等だzeeeeee

ばっこするぞぉ!!!
0538nobodyさん2007/08/05(日) 15:41:31ID:???
スレ違い
0539nobodyさん2007/08/05(日) 15:59:36ID:???
>>538
ちょwwww
ここはXREA使ってる香具師はしないのかよ!!!!

全然、遅いし。どないやねーんがーなー
0540nobodyさん2007/08/05(日) 16:14:27ID:???
s101だけど全く問題ないし、スレ違い
0541nobodyさん2007/08/05(日) 16:22:09ID:???
>>537,539
xrea.com part124
http://pc11.2ch.net/test/read.cgi/hosting/1184112477/
0542nobodyさん2007/08/05(日) 23:52:57ID:gf3PJCmI
サーバ構築の実験をしていて、yum remove phpとやったら
apachが起動しなくなりました。
元に戻そうと思い、yum install php とやったら
Missing Dependency: php-common = 5.1.6-3.el4s1.7 is needed by package php-cli
と出て、インストールが開始されません。
どうしたらいいでしょうか?
0543nobodyさん2007/08/05(日) 23:57:37ID:???
>>542
微妙にスレチだが
yum -y install php-cli
でいいんでね?
0544nobodyさん2007/08/06(月) 00:03:24ID:eMHMQZdt
同じページを10分以内に2回以上おしても、カウントは1回までしかしない、
という風にしたいのですが、
クッキーやセッションを使う以外に簡単な実装方法はないでしょうか?
クッキーはブラウザの設定に左右されてしまうし、
セッションは正直よく理解できなくて敬遠気味です・・・
下手に無理してコーディングして穴作るのもいやなんでどうか宜しくお願いします。
0545nobodyさん2007/08/06(月) 00:31:44ID:???
DBにアクセス状況をユーザーごとに保存。
セッション難しいやつにWebアプリは厳しい。
0546nobodyさん2007/08/06(月) 00:40:57ID:???
>>544
>クッキーはブラウザの設定に左右されてしまうし、
セッションもそう
0547nobodyさん2007/08/06(月) 00:44:09ID:???
>>544
セッション、クッキーつかわないって縛りだと
そういう機能をつけるのが難しくなるので
簡単には実装できなくなります
05485422007/08/06(月) 00:44:46ID:JgvoQd5M
>543
レスありがとうございます。
とりあえずそれは試したのですが、
Parsing package install arguments
No Match for argument: php-cli
こう言われてしまいます。
何か方法はないでしょうか?
0549nobodyさん2007/08/06(月) 00:47:08ID:???
>>542

yum groupinstall php とか
yum install php-* とかやっとけ、つうか実験するときはどこか参考にしながらやれよ。
0550nobodyさん2007/08/06(月) 01:39:45ID:???
┏━━━━━━━━━━━━━━━━━━━━┓
┃                                  ┃
┃             J( 'ー`)し                 ┃
┃              ( )                 ┃
┃               | |              ┃
┃           【カーチャン】             ┃
┃                                  ┃
┃.  カーチャンを見た人はいつでもいいので     ┃
┃      生きている間に親孝行して下さい。    ┃
┃                                  ┃
┗━━━━━━━━━━━━━━━━━━━━┛
0551nobodyさん2007/08/06(月) 03:20:13ID:umt85QTT
nビットの符号なし整数の最大値は
pow(2,$n)-1
でわかりますが、これが64ビットくらいになるとうまく表示されません
文字列でいいからうまく表示されるようにするにはどうすればいいですか
05525442007/08/06(月) 06:08:23ID:M0QKy+cD
>>545-547
どうもありがとうございます。
敬遠していたものの、PHPを続けるにあたって避けれない箇所だと思うので、
この機会に頑張ってセッションの勉強をしてみたいとおもいます。
0553nobodyさん2007/08/06(月) 06:45:28ID:???
>>551
コンパイルし直さなきゃならないかもしれないけど。
http://jp2.php.net/manual/ja/function.bcpow.php
http://jp2.php.net/manual/ja/function.gmp-pow.php
0554nobodyさん2007/08/06(月) 12:17:13ID:???
0555nobodyさん2007/08/06(月) 12:37:04ID:???
ずばりphpを使う事の利点って何だと思いますか?
0556nobodyさん2007/08/06(月) 12:38:49ID:???
>>555
無料 気軽 シンプル 考えるより先に動くものを作れる
0557nobodyさん2007/08/06(月) 13:47:34ID:???
>>555
javaやperlなんかより数十倍早くWebアプリが作れる
0558nobodyさん2007/08/06(月) 14:00:17ID:???
javaより早いってことはありえないだろ。少なくとも「数十倍」なんてないない。
0559nobodyさん2007/08/06(月) 14:02:41ID:apvw8HmB
Webページのソースを取得して、タグで囲まれた文字を変換して、出力するという処理をしているんですが、
http://au.php.net/manual/ja/function.preg-match-all.php
ここの例にあるコードでは、複数行に渡る文字列を取得できません。
<h1>
たとえばこういうの
</h1>
そこで、
preg_match_all("/(<([\w]+)[^>]*>)((.|\n)*)(<\/\\2>)/", $html, $matches, PREG_SET_ORDER);
こういう風に書き換えたんですが、やっぱりだめでした。

どうすれば改行を含んだタグ内の文字列を取得できるんでしょうか。
お願いいたします。
0560nobodyさん2007/08/06(月) 14:06:19ID:???
>>559
つ[ strip_tags ]
0561nobodyさん2007/08/06(月) 14:43:56ID:???
>>559 改行削除してからマッチさせる方法じゃ、ダメ??

$file = file_get_contents($url);
$file = str_replace("\n","", $file);
05625602007/08/06(月) 14:45:33ID:???
>>559
書き換えだったんだね・・・よく読まずにタグを取りたいんだと
勘違いしたすまん

0563nobodyさん2007/08/06(月) 15:00:00ID:apvw8HmB
>>560-562
ありがとうございます。
strip_tagsは盲点でした。
一応これで、文字列を取り出して、この文字列にマッチしたものをpreg_replaceしたのですが、
<h1>一行で<h1><h2>かかれてる</h2>
こういう行や、途中に改行のある行は、無視されてしまいます。
つまり、単純な<p>こういう文章</p>だけしかヒットしませんでした。

う〜ん、難しいのかな、こういうのは。
0564nobodyさん2007/08/06(月) 15:30:25ID:apvw8HmB
すいません、
file()で配列に1行ずつ入れているということを言い忘れていました。
連結しなきゃ、絶対判断できないですよね。。。
でもソースのタブや改行を維持したいんですよ。
無理でしょうか??
0565nobodyさん2007/08/06(月) 16:11:47ID:???
>>558
なんで?
0566nobodyさん2007/08/06(月) 16:43:47ID:???
>>564
fileで読んでforeachで回して1つの文字列に汁。
開始、閉じタグをpreg_split汁
中身の入っている配列だけ取り出す
ってのはどう?
0567nobodyさん2007/08/06(月) 16:56:46ID:9ONTVzmv
preg_match_all("/\<title\>(.*?)\<\/title\>/si", $html, $match);
foreach($items[1] as $item){

}

こんな感じにすれば複数行でも取得できるはずです
正規表現で複数行取得の修飾子のsを入れるのがポイントです
0568nobodyさん2007/08/06(月) 17:15:07ID:apvw8HmB
>>567
ありがとうございます。
どちらにせよ、連結しなければいけないですよね?

正規表現、覚えられる気がしない・・・・・・。
0569nobodyさん2007/08/06(月) 17:51:11ID:apvw8HmB
配列を連結させ、
preg_match_all("/(<([\w]+)[^>]*>)(.*)(<\/\\2>)/si", $html, $matches, PREG_SET_ORDER);
としてから、$matchesの内容を確認したところ、ページのソース全てがマッチしてしまったようです。
うーん、よくわからん。。。
0570nobodyさん2007/08/06(月) 17:55:25ID:FNzF7YoD
phpの質問かどうかちょっと分からないんですが、
セッションクッキーってどれくらい強固なんでしょうか?

セッションのクッキーでない、いわゆる一般のクッキー偽装って
自分のPCで編集しようと思えばできそうだけど、
自分のPCからでも参照できないセッションクッキーって
セキュリティの穴がなさそうに見えるんですが、どうなんでしょうか?

どこかに詳しいサイトありませんか?
0571nobodyさん2007/08/06(月) 18:47:52ID:???
>>570
セッションハイジャックでググるべし
05725702007/08/06(月) 18:57:33ID:???
>>571
そんな単語がw
ありがとうございます、調べます。
0573nobodyさん2007/08/06(月) 20:38:50ID:OuVmhPr1
PHP5、winXPで勉強してます。
今、セッションのテストしてるんですが、ログアウト処理のPHPに対象となるユーザのIDを
GETメソッドで送る処理を考えています。
で、以下のリンクを作ったんですがパラメータに値がはまりません。
<a href="logout.php?user_id=<?php $_SESSION["user_id"]; ?>&onamae=<?php $_SESSION["onamae"] ?>">ログアウト</a>

なぜでしょう? ちなみに、上のコードの書かれてるPHPで
print $_SESSION["user_id"] としても、正しい値を表示します
よろしくお願いします
0574nobodyさん2007/08/06(月) 20:46:08ID:???
<a href="logout.php?user_id=<?php echo $_SESSION["user_id"]; ?>&onamae=<?php echo $_SESSION["onamae"] ?>">ログアウト</a>
0575nobodyさん2007/08/06(月) 21:00:20ID:OuVmhPr1
>>574
ありがとうございます  ウッカリしてました。確かにechoがいりますね

聞きたいのですが、session_unset() っていうのは、セッションを全て削除するとはいっても、
そのサイトで使っているものだけですよね?
他のサービスで使っているものは破棄しないですよね?
それでもsession_destroyとの使い分けを知りたかったので質問させてもらいました
0576nobodyさん2007/08/06(月) 21:20:14ID:???
質問させて下さい。
WinXP sp2
apache2.2.4
php5.2.3
で動かしています。

■質問
system関数からネットワークドライブに対して読み書きを行いたい。

■詳細
PC ( a ) 鯖環境を入れています。
PC ( b ) このEドライブをネットワークドライブとして使用しています。

aからネットワークドライブに対する読み書きは基本的に以下のURLの方法で成功し、phpでの動作も確認しています。
ttp://nanakorobiyaoki.at.infoseek.co.jp/etc/win_apache_mapping.htm
ただ、私の場合phpから行うsystem関数に対しても読み書きをさせたいのです。
具体的には
$str = "WinRAR x -r -y -ep -pPASS 解凍先 圧縮ファイル\\";
system($str);
このようなsystem関数を使い、解凍先にネットワークドライブを指定しています。
この場合、ネットワークドライブに対して解凍を行ってくれません。
恐らく、システム権限でネットワークドライブにアクセスしにいこうとしているため、ネットワークドライブにアクセスできないのだと思います。

これを回避する方法として、色々考えて
1:system関数でadministrator権限にてアクセスする方法を探す
2:win上でなんとかsystem権限でネットワークドライブにアクセスできる方法を探す
3:winrarのコマンドラインオプションで権限変更できそうな項目を探す
を思いつき探しているのですが、どれもいい方法が見つかりません。

もし宜しければお力添えしていただけないでしょうか。宜しくお願いいたします。
0577nobodyさん2007/08/06(月) 21:22:57ID:SHp45+BZ
function文の中から関数名を参照したいんですが
そのような定義ずみの変数ってないでしょうか?

0578nobodyさん2007/08/06(月) 21:26:57ID:???
>>577
え?そのまま使えるでしょ。
05795772007/08/06(月) 21:33:35ID:???
>>578
動的に参照したいんです
0580nobodyさん2007/08/06(月) 21:41:06ID:???
すみません。
批判的なレスをすると、すぐに公開PROXY規制されます。
誰がどうやって、ホストを調べて公開PROXY規制をかける
のか、仕組みが分かる方はいますか?
0581nobodyさん2007/08/06(月) 21:51:40ID:???
>>577
__FUNCTION__
0582nobodyさん2007/08/06(月) 21:52:13ID:???
>>580
何のことを言ってるのかね

規制をかけるのは常識的に考えて管理人
Proxyは特有の環境情報を吐くのでそれを見てProxyかどうかを判定
公開Proxyを毎日チェックしてデータベースに蓄積させてるというわけではない
05835822007/08/06(月) 21:53:12ID:???
環境情報→環境変数に脳内変換よろ
05845802007/08/06(月) 21:59:34ID:???
>>582
公開ProxyじゃないのにProxy規制されるんです。
スレのテーマについて、アンチレスをした時だけすぐに。
なんか書き込みさせないようにされてる。
そんなことはあり得ますか?
05855772007/08/06(月) 22:17:14ID:SHp45+BZ
>>581
サンクスです!
0586nobodyさん2007/08/06(月) 22:19:03ID:???
>>584
一応言っとくがPHPとは全く関係ないしスレ違いなんだよ
あと荒らしを手助けする場所ではないからな

公開・非公開なんて串を制限するのに関係ない
串とわかる判別方法がいくらかある

>スレのテーマについて、アンチレスをした時だけすぐに。
自動でそういう仕組みを作ることは可能
最初から串通してカキコしてるなら
串制限されてるというよりIP制限されていると考えるほうが自然
串変えても書き込みできない場合クッキーやセッションの情報が残ってると考えるのが自然

通常一人の荒らしにたいして毎回串制限かけるなんてことはしない
05875802007/08/06(月) 22:43:55ID:???
>>586
すみません。
初心者なのでどこで質問すればいいか
分かりませんでした。
串の刺し方もPHPの知識もないです。
それと「荒らし」じゃありません。
ゲーム関係スレで信者に意見しただけです。
親切な回答どもです。バカなので理解少しですが
IP制限をみてみます。
■ このスレッドは過去ログ倉庫に格納されています