【PHP】下らねぇ質問はID出して書き込みやがれ 82
at PHP
[前50を表示]
300:nobodyさん
09/03/16 17:21:48
>>299
いまいちでない方法をどうぞ
301:nobodyさん
09/03/16 17:28:15
あなたはスパム業者ですか?
はい いいえ
↑これを入力させればいい
302:nobodyさん
09/03/16 17:30:34
>>301
天才
303:nobodyさん
09/03/16 17:55:37
2chはどうやってんだろ?
304:nobodyさん
09/03/16 18:04:29 GOOX8xiJ
PHPで効率化を突き詰めていくと、
MVCを考えた、フレームワークのような形になるのですが、
やっぱり皆さんもそうですか?それとも最初からフレームワーク使いますか?
305:nobodyさん
09/03/16 18:06:47
>>298
日本語が入ってないとダメってのはもう古い
日本語スパムははじけないよ
306:nobodyさん
09/03/16 18:10:14
やっぱり、画像認証(ランダムの数字を入力するやつ)
しか対処できないんじゃないか?
ライブラリも多いし、作るのも難しくないだろ。
307:nobodyさん
09/03/16 18:21:17
>>303
2chは管理に協力してる人間がいっぱいいるから
手動でどうにかなるレベルなんだよ
308:nobodyさん
09/03/16 18:49:09
PHPの初心者用参考書をちょっと読んだだけの初心者です
register_globalsをonにするとセキュリティ上よくなく
また、PHP6からはonにすることができなくなると聞きました
そこで質問なのですが、ハイパーリンクにごとにページの内容を変えたり
処理の内容を変えたりしたい場合は他にどのような方法があるのでしょうか
質問とは関係ないのですがスパム対策で 1 + 2 = [ ] といのを見たことがありますね
(数値は画像でランダムでした
309:nobodyさん
09/03/16 19:11:39
>>308
基本的には POST あるいは GET メソッドでクエリを渡して、その値に応じて処理を分ける。
ハイパーリンクでなら GET 。
310:nobodyさん
09/03/16 19:21:10 TMtB/4sw
>>298
たくさんの意見ありがとうございます
カタカナをひらがなにっていうのはいいですね!
キャプチャの文字列をカタカナにするってのは無理なんでしょうか?
311:nobodyさん
09/03/16 19:25:46
スクリプトでは理解できない&日本人にしかわからないような
質問をランダムに生成できればいいんだが
質問と答えがあらかじめ決まってるようなものだとそのうち解析されるし
画像のひらがなをみてカタカナにしろぐらいだとCaptcha解析技術応用すれば
解析したひらがなに対応するカタカナに置き換えればできちゃうし
完全な対策なんてないからどこかで妥協するしかない
いろんなことやった上でなんとかして投稿してやろうなんて考える
海外のスパマーなんてそうはいないよ
仮にいろんな対策をした上で変なのが投稿されたらそれは日本人の愉快犯だ
というわけでそんな神経とがらせてスパマー対策しなくてもいいんじゃないだろうか
312:nobodyさん
09/03/16 19:32:15
>>310
できますよ
そういうライブラリは探せばあるんじゃないかな?
単に文字を画像に出力するだけなら簡単なんですけどね
画像をゆがめたりする処理が難しいんじゃないかな
313:nobodyさん
09/03/16 21:48:57
普通にCAPTYAいれとけば?
314:nobodyさん
09/03/16 21:50:47
ちなみに2ちゃんがやってるのは、、、
(1)書き込みをしようとしてきたら、クッキーを
受け入れてるかどうかを確認する。クッキーないやつは
書き込みできない
(2)書き込みしてきようとしたサーバーに簡易ポートスキャンをかけ、
オープンプロキシでないことを確認する。もしオープンプロキシだったら拒否
(3)
プロキシからの書き込みについては、手動で
リストを作成して、そのリストにIPが載っていたら、拒否。
こんな感じ。一部だけど。
315:nobodyさん
09/03/16 23:05:32 l8gT672P
セッションを使って、
ログインしないと見れないページを作ったんだが、
画像はどうやって守ればいいんだ?
316:nobodyさん
09/03/16 23:07:02
>296 >297
DNSBL(DNSブラックリスト)でぐぐれ
スパムちゃんぷるーが手軽
317:nobodyさん
09/03/16 23:21:56
>>315
そこでPHPですよ
318:nobodyさん
09/03/16 23:35:54 l8gT672P
>>317
PHPで画像を送出するってことかな?
ぐぐったけど具体的なコードがわからない
319:nobodyさん
09/03/16 23:51:20
2行でおk
ヘッダ送信
readfile()で出力
320:nobodyさん
09/03/16 23:53:20
セッションも処理しないとwwwwwwwwww
321:nobodyさん
09/03/17 00:28:16 PIugUbr/
$sql = "SELECT name FROM address";
$res = mysql_query($sql);
$row = mysql_fetch_array($res);
echo $row["name"];
こうしたらMySQLから1行取得出来ますが、もっと簡略化する方法は無いでしょうか?
特に、結果が1行・1フィールドだと分かっている場合、
mysql_fetch_arrayをして一旦配列に入れるのは不効率な気がしています。
322:nobodyさん
09/03/17 00:35:15
echo (mysql_fetch_array(mysql_query("SELECT name FROM address")))["name"];
323:nobodyさん
09/03/17 00:38:22
>321
SELECT name FROM address LIMIT 1
配列に代入云々は数マイクロ秒とかのゴミみたいな差しかつかない。
こいつは測定可能なレベルで実行性能に影響する。
324:321
09/03/17 01:11:49
>>323
>>321のようなテーブルにアクセスして、指定値を取得する関数を
作っているのですが、 321のソースでフィールド「name」が異なる場合、
echo $row["name2"];
というように名称を指定して出力しなければいけません。
まぁ、関数を
function dbSelect($fld_name){
echo $row[$fld_name];
}
とすれば良いだけの気がしますが、
何か良い関数があるのかと思い、質問しました。
325:nobodyさん
09/03/17 02:58:59
1からCMS作ろうと思います。
応援よろしくお願いします
326:nobodyさん
09/03/17 03:15:35
がんば〜
327:nobodyさん
09/03/17 07:54:44
>>324
PDOが使用可能であれば…
URLリンク(jp.php.net)
328:nobodyさん
09/03/17 08:04:24
実はおれもCMS自作してるけど
ネックなのは一度もCMSを使ったことがないことだ・・
329:nobodyさん
09/03/17 09:18:29
CMSを使ったことがない人がCMS作っても劣化品にしかならない
330:nobodyさん
09/03/17 10:44:32 Ib1RB6YL
キーワード自動リンクの仕組みを作っています。
データベースなどに以下のようなデータがあるとします。
id,word
1,日本
2,日本海
3,日本海溝
4,太平洋
これらを辞書として、
・日本海溝は太平洋側にあります。
という文章に最長で一致するものからリンクを張っていくのですが、
<a href="word/3"><a href="word/2"><a href="word/1">日本</a>海</a>溝</a>は<a href="word/4">太平洋</a>側にあります。
のように、重複してリンクが張られてしまいます。
すでにリンクが張られている言葉の内側にはリンクを張らないようにしたいのですが、
どのような対処法が考えられますでしょうか?
PHPで処理する場合の対処法を教えてください。
331:nobodyさん
09/03/17 11:14:15
マッチさせてるコードは?
332:nobodyさん
09/03/17 11:32:03
$words = array(
array(
'id' => 1,
'term' => '日本'
)
);
辞書がこんなかんじの配列にあって、
foreach ($words as $word) {
str_replace($word['term'], '<a href="word/' . $word['id'] . '">' . $word['term'] . '</a>', $body);
}
辞書は単語の文字数の長い順にソートさせてあります。
実際のコードとは違うのでどこか変かもしれませんが、流れはこんな感じです。
単純に、辞書の配列をforeachさせて、
str_replaceでアンカータグをつけたものに置き換えているだけです。
なので、重複して置き換えられてしまうのは当然なのですが、
対処法が思い浮かばなくて;
よろしくお願いします。
333:nobodyさん
09/03/17 11:33:23
すみません、訂正です;
×
str_replace($word['term'], '<a href="word/' . $word['id'] . '">' . $word['term'] . '</a>', $body);
○
$body = str_replace($word['term'], '<a href="word/' . $word['id'] . '">' . $word['term'] . '</a>', $body);
334:330
09/03/17 11:34:31 Ib1RB6YL
>>332
>>333
ID出し忘れました・・・スレ汚してすみません;
335:nobodyさん
09/03/17 11:45:00 PBdJ+iXh
宜しくお願いします。
【OS名】Windows XP
【PHPのバージョン】php4.4.4
【質問内容】
『−』を含んだ文字列を preg_match で検索するとエラーが発生するのでキーワードを preg_quote で処理すると
『ホームページ』が『ホ―[ムペ―[ジ』となってしまいます。
お知恵を貸して下さい。お願いします。
336:nobodyさん
09/03/17 11:48:44 Vq5xUXrn
>>335
mb_internal_encoding('utf8');
mb_regex_encoding('utf8');
337:nobodyさん
09/03/17 11:49:06 qY/TJCjN
たまにGDでjpeg画像を処理した時にエラーが出て何も描かれてないjpeg画像がブラウザに出る時があるんだけど
そのエラーを表示しない方法はphp.iniで指定するってのは分かった。
これでエラーは出なくなったわけだが、画像はやっぱり出ない。
どうやらいつも同じファイルを処理した時にエラーになるので
画像ファイル側の問題だと思うけど
これをうまく処理する事はできるの?
そもそも何でこんなエラーがでるの?
知ってる人 教えてYO!
338:nobodyさん
09/03/17 11:53:27
その画像をうpれ
339:nobodyさん
09/03/17 12:02:31
>>335
はやく5に移行しろよ
340:nobodyさん
09/03/17 13:22:05 PBdJ+iXh
>>336さん。
有難う御座います。
mb_regex_encodingでUTF-8にしてもやはりホ―[ムペ―[ジとなってしまいます。
>>339さん。
まだ勉強中の為に5への以降は難しいです…
341:nobodyさん
09/03/17 13:33:39
まず検索する対象とキーワードの文字コードを把握できてないと解決できんぞ
342:nobodyさん
09/03/17 14:22:48
4で勉強してから5にうつるより、最初から5で勉強しちゃったほうがいいような気もするんだけど。
343:nobodyさん
09/03/17 14:23:55
4とか過去の汚物なんだから使う価値0
344:nobodyさん
09/03/17 15:16:01
移行ってほど変わらんだろ。さっさと5使え
345:nobodyさん
09/03/17 15:52:24 s4aiV5Ak
質問です。
このサイト(みんなのキャンパス:URLリンク(campus.nikki.ne.jp))
のように掲示板の情報を一部だけ閲覧することができ、
登録・ログイン後に情報をある程度投稿すると全ての情報が閲覧できるような
会員制サイトを作成したいと思っています。
WordPressやOpenPNEで色々試したのですがいまいちうまくいきません。
こういうものは、どうやったら実現できるのでしょうか?
よろしくお願いします。
346:nobodyさん
09/03/17 15:55:22
if (未ログイン) {
一部表示処理
} else {
全表示処理
}
347:nobodyさん
09/03/17 16:03:10
CMSで駄目なら何をやっても駄目な気がする
とりあえず Wordpress の方なら is_user_logged_in() でログインしてるかどうか調べられるよ
348:nobodyさん
09/03/17 16:22:38
>>345
フレームワークで作るという手もある。
349:nobodyさん
09/03/17 16:56:04
フレームワーク使っているかもしれないけど、
各プラグインは自作しなければいけないからな。
俺も自作システムを作る時にWordpressやらOpenPNEやらを見たけど、
やっぱり「目的の仕様に合った作り方」をしているので、
それらを改造してオリジナルのシステムを作るのは無理があるよ。
350:345
09/03/17 17:04:11 s4aiV5Ak
みなさんご回答有難うございます。
質問の仕方が悪くて申し訳ありません。
みんなのキャンパス:URLリンク(campus.nikki.ne.jp)
というサイトは登録後ログインしても、
大学の講義情報を3件書き込まないと全ての情報を見ることができません。
このように書き込まないと掲示板の他のページが見れない、といったように
するにはどういった処理が必要なのでしょうか?
よろしくお願いします。
351:335
09/03/17 17:08:29 PBdJ+iXh
>>341さんとレスを頂いた皆さん。
お陰で解決致しました。有難う御座います。
出来るだけ早く5に以降するよう努力致しますf^^;
有難う御座いました!
352:nobodyさん
09/03/17 17:13:30
>>350
そこがどんな風な実装をしてるかは知らないけど。
ユーザー情報に「書き込んだ回数」を記録する。
一緒に「全ての情報を見れる権限」もフラグとしてDBに記録しておいて、書き込み回数が3回を越えた時点で true にする。
で、ページを表示するときにその権限を持ってるか持ってないかを判断する。
353:nobodyさん
09/03/17 17:17:13
俺だったら「書き込んだ回数」か「全ての情報を見れる権限」のどちらかしか属性作らないな
354:nobodyさん
09/03/17 17:22:32
>>353
確かに書き込み回数だけでも十分だな、すまん。
355:330
09/03/17 17:37:21 Ib1RB6YL
>>330 の回答をどなたかお願いできませんでしょうか?
356:nobodyさん
09/03/17 17:44:56
>>355
自分がどうやってるか書いてないよな。推測すると、再帰でpreg_matchでもやってんのか?
まぁ、それはいいや。
単語リストをベースにトークナイザーにかけて処理するのがいいと思うよ。
357:345
09/03/17 18:00:29 s4aiV5Ak
>>352さん
>>353さん、回答下ったみなさん、有難うございました!
2ちゃんねるはじめてだったのですが回答いただけてうれしかったです。
なんとなく方向がわかったので色々やってみます。
358:330
09/03/17 18:07:06 Ib1RB6YL
>>356
すみません;
>>332 に書いたのですが、IDを出し忘れてしまって・・・
恥ずかしながら、トークナイザーというのをはじめて聞いたのですが、
どういったものなのでしょうか?
PHPには、その機能は備わっているのでしょうか?
359:nobodyさん
09/03/17 19:00:40
wikiのソース参考にしてみたら?
360:nobodyさん
09/03/17 19:31:59
>>330
アルゴリズムの問題だと思うけど、マッチングした文字列をいったん置き直して、展開しなすとかしたら?
日本海溝は太平洋側にあります。
<3>は太平洋側にあります。
<3>は<4>側にあります。
みたく文字列を順次置き直して、あとから <id>をリンクつきのHTMLで展開。
361:330
09/03/17 19:43:02 Ib1RB6YL
>>359
それだけの力があればそうしたいのですが・・・
基本的な考え方だけでもお願いしたいです。
>>360
おぉ!そういう方法がありましたね。
しかし、元の文章に<1>という文字列が含まれていた場合、面倒なことにならないでしょうか?
元の文章は、ユーザーが自由に投稿できる類のものなので・・・
<<<1>>>のように、括弧を増やしたり、!?!1!?!のように、複雑なものにすれば
出現する確立は減らすことができるのでしょうが、それでも0パーセントではないですし・・・
おっしゃるとおり、PHPに関する質問という範囲を超えているかもしれませんが、
どうかお付き合いお願いしたいです。
362:nobodyさん
09/03/17 19:51:31
キーワードをrsortして順にリンク外文字列に対して処理していけばいい
363:nobodyさん
09/03/17 19:51:53
ユーザの投稿に<1>があったら\<1\>とかにまず置き換えればいいじゃん
そんで>>360の処理のあとにもとにもどせばよい
364:nobodyさん
09/03/17 20:07:16
>>330
優先順位が悪い
1,日本海溝
2,日本海
3.日本
の順でループして探索して見つかったら置き換えてbreakして位置を記録
最後に置き換えた位置から同様にして探索
これをEOFに達するまで繰り返す
365:364
09/03/17 20:10:19
ごめんよくよく考えたら非効率だな
忘れてくれ
366:330
09/03/17 21:04:12 Ib1RB6YL
>>362
リンク外かどうかの判定の仕方がわからなくて・・・
>>360 さんに提示していただいたように、特殊な記法に置き換える方向で行こうかと思います。
>>363
そうでした!一度エスケープのような処理をすればよかったのですね!
・・・これでなんとか解決したように思ったのですが、今度は、辞書に<id>という単語が含まれていた場合に、
問題が発生しました。
たとえば、辞書にこんな感じの単語があると、
id,word
5,<3>
長いものから置き換えるので、
まず「日本海溝」が<3>に置き換えられ、
その後、「<3>」がふたたびマッチしてしまい、
<5>に置き換えられてしまいます。
最終的に出力されるのは
<a href="word/5"><3></a>
になってしまいます。
意外と難しいですね;
>>364
位置を記憶するというのはやってみたのですが、
文字数の長い順に出現するとは限らないのでだめでした・・・;
367:nobodyさん
09/03/17 21:13:49
>>366
そもそも最終的に生成するHTMLにタグじゃない < > を入れてどうする気だ。
テキストとキーワードにあらかじめhtmlspecialchars しておけばいいやん。
368:366
09/03/17 21:20:04 Ib1RB6YL
>>367
そうでした;;
キーワードもエスケープ処理しておくことでうまくいきました!
おかげさまで、当初の目的が達成できました。
もっと精進します・・・w
レスをくれたみなさん、ありがとうございました!
369:nobodyさん
09/03/17 21:26:48
キーワードは最長一致させるのが原則。
"WEBプログラミング"なら、"WEB"や"プログラミング"より
"WEBプログラミング"の方が指定がより明確だから重要度が高いよね。
それに最長一致なら被らない。
処理の重さに関しては、保存時はゆっくり反映で良いので問題ない。
はてダみたいに、外部リンクのサイトのタイトルの文字列まで取得して
投稿を書き換えようとするのは外部サイトの都合で時々タイムアウトしてるけど、
自鯖の中でのリンクの置き換え程度なら、よっぽどキーワード数が多いとかじゃなければ
タイムアウトはまず起こらない。
キーワードを使うケースの場合、ROMユーザーが書き込むユーザーより圧倒的に多いし
そうでなければそのサービスは成り立たないから、ROMユーザーに対して
内容がキャッシュされてれば投稿時はかなり重い処理でも構わない。
370:nobodyさん
09/03/17 21:29:46
またWikiやはてなみたいなスパムサイトが増えるのか。
371:nobodyさん
09/03/17 23:09:10 whdlEm3/
array('a'=>'b','c'=>'d')
を
array('a','b','c','d')
にする簡単な方法があれば教えて下さい
372:nobodyさん
09/03/17 23:25:11
>>371
foreach( $oldarray as $key => $value ){
array_push( $newarray, $key ); array_push( $newarray, $value );
}
373:nobodyさん
09/03/17 23:50:49
>>371
$newArray = array_merge(array_keys($oldArray), array_values($oldArray));
374:nobodyさん
09/03/17 23:52:05
ああこっちだったわ
$newArray = array_keys($oldArray) + array_values($oldArray);
375:nobodyさん
09/03/18 02:04:43
スレリンク(php板)
こっちで懐かしいやつが暴れてるぞ
376:nobodyさん
09/03/18 03:57:38 Zcgp4DkA
文字列がintとして妥当かどうか調べるにはどうしたらいいですか?
377:nobodyさん
09/03/18 04:05:19
死ぬほど既出
378:nobodyさん
09/03/18 08:50:19
「intとして妥当」を説明してみろ。
379:nobodyさん
09/03/18 09:22:56
is_numeric
is_int
のことじゃないかとエスパーしてみる
380:nobodyさん
09/03/18 09:24:58
is_intは型判定だろ
381:nobodyさん
09/03/18 09:39:50
/)
///)
/,.=゙''"/
/ i f ,.r='"-‐'つ____ こまけぇこたぁいいんだよ!!
/ / _,.-‐'~/⌒ ⌒\
/ ,i ,二ニ⊃( ●). (●)\
/ ノ il゙フ::::::⌒(__人__)⌒::::: \
,イ「ト、 ,!,!| |r┬-| |
/ iトヾヽ_/ィ"\ `ー'´ /
382:nobodyさん
09/03/18 10:52:55
>>376
正規表現で調べればよい
if (preg_match("/^[0-9]+$/", $string)) {
妥当
}
383:nobodyさん
09/03/18 10:55:30
>>382
それだとunsigned intじゃ...
384:nobodyさん
09/03/18 11:00:44
負も調べたいってこと?
なら
if (preg_match("/^-?[0-9]+$/", $string)) {
妥当
}
かな
385:nobodyさん
09/03/18 11:03:09
ちなみに指数表記やInfinityまで対応というなら
またパターンを増やせばよい
386:nobodyさん
09/03/18 11:07:58
あと厳密にintならPHPの場合何バイトかしらないけど(たぶん4?)
その辺も考慮しないといかんかな
strlenで32ビット以内かどうか調べる処理とか
387:nobodyさん
09/03/18 11:10:31
strlenは関係ない
2^32を2の補数で表した値の範囲かどうかだな
?2147483648〜2147483647
388:nobodyさん
09/03/18 11:22:00
preg_match("/^-?[0-9]+$/", $string) && $string >= -2147483648 && $string <= 2147483647
389:nobodyさん
09/03/18 11:46:44
$は改行にもマッチするから、D修飾子を付ける
それから、0123は整数か?
390:nobodyさん
09/03/18 12:01:38
>>388
厳密な数値かはわからないよね
だってそれだと下のどれでも引っかかるからね
123
-123
"123"
"-123"
391:nobodyさん
09/03/18 12:13:56
つ[:digit:]
392:nobodyさん
09/03/18 12:33:33
質問者があいまいなまま補足してくれないのにこぞって答えなくても
393:nobodyさん
09/03/18 13:00:35
0xa0 だって立派にint型を表現した文字列として妥当といえるよねー
394:nobodyさん
09/03/18 13:17:37
答えるのが簡単だからだろ?
395:nobodyさん
09/03/18 13:24:34
死ぬほど既出だけどな
396:nobodyさん
09/03/18 13:27:19
テンプレ守ってる以上答えてやってもいいだろ
いちいちグチグチ言うやつは黙ってればいい
397:nobodyさん
09/03/18 14:23:57 R7u4YHhc
なぜimagecreatefrombmpは無いんですか?
デジカメとかだとBMPで出力するカメラも結構有るし需要あると思うけど。
ビットマップからイメージ作れるユーザー関数ありますか?
398:nobodyさん
09/03/18 14:25:50
>>397
User Contributed Notesの一番上
399:nobodyさん
09/03/18 14:47:40 meKzf6DJ
クラス内のメソッドはだいたい何行くらいで収めるのが目安でしょうか?
400:nobodyさん
09/03/18 15:58:45
50行くらい
401:nobodyさん
09/03/18 16:21:37
>>399
そんなのきまってない
402:nobodyさん
09/03/18 16:42:30
URLリンク(hightide.blog2.fc2.com)
403:nobodyさん
09/03/18 17:10:10
>>399
画面半分に納めるのはよいプラクティスだって昔だれかがいってた。
スクロールしないと見れないメソッドはクソの匂いがするとも。
404:nobodyさん
09/03/18 19:19:39
>>392
ザコは黙ってろ
405:nobodyさん
09/03/18 19:20:32
>>399
pearのコーディング規約に1行何文字程度に収めるか決めてるから参考に読んでこれば
406:nobodyさん
09/03/18 19:48:17
1行あたりの文字数と
メソッドを何行に収めるかの話が
関係あるのか?
407:nobodyさん
09/03/18 20:07:04
掛け軸ぐらいな縦長のモニタだったら余裕だなw
408:nobodyさん
09/03/18 20:37:37
フォントを1ドットにしてもいいぞ
409:nobodyさん
09/03/18 21:09:42
>>406
既に答えが出てるだろ
ゆとりかおまえ
410:nobodyさん
09/03/18 21:14:44
お前は何を言ってるんだ
411:nobodyさん
09/03/18 22:22:03
>>410はゆとりだから気にしなくていいよ
412:nobodyさん
09/03/18 23:15:59 gf2MXR+O
本運用のリモートのunix系鯖か、
開発のローカルのwinかで、
デバッグ云々用とかで判別するのは
if (DIRECTORY_SEPARATOR == '/') { ...
で問題なし?
413:nobodyさん
09/03/19 00:18:23
開発環境をunixにしたくなったら詰むな。
それと、Win環境で本番環境同様の状態をエミュレートしたくなった場合も身動きが取れなくなる。
function isDevelopEnvironment()
とかをどこかグローバルにアクセスできる場所(グローバル関数か、クラスのstatic関数)に置いとけ。
他の場所からはこの関数で判定するようにしておけば、判定方法が変わっても変更が一箇所で済む。
実装と意図の分離は設計の基礎。
呼び出し側でやりたい事(意図)は環境の判別なのだから、関数名はそうなっているべき。
環境を識別するのにDIRECTORY_SEPARATORを使う、ってのは実装の話で、意図じゃない。
(もっと言うなら、開発環境がWinで運用環境がUnixなのも「たまたまそうなってる」だけの、つまり実装依存な話)
で、実装の話だが。
俺ならホスト名を開発環境と本番環境で変えておいて、それで識別する。もしくは設定ファイルか何かに書いておく。
WinとUnixを識別できればそれでいい、ってんなら>412で問題ない。
php_uname()関数の例にもディレクトリ・セパレータでOSを判別するコードが載っている。
414:nobodyさん
09/03/19 00:19:30
>>379
それ。
is_numeric()は"."を許したよーな気がする。
気をつけたほうがいいよ〜
D:\tools\php-5.2.8-Win32>php -r "var_dump( is_numeric( '1.5' ) ) ;"
bool(true)
415:nobodyさん
09/03/19 00:31:24
((string)(int) $string === $string)
これはどう?int判定
416:nobodyさん
09/03/19 00:34:08
PHP_OS
417:nobodyさん
09/03/19 00:35:21
>>399
行数っていうのとは違うけど
コメントを書かなくていいくらいに分かり易い
っていうのを目安にするといいっていう考え方もあるね。
コメントで「○○を処理する」とか入れるくらいなら
そのまとまりをprivateなメソッドにする感じ。
まぁ好き嫌いもあるけどねー。
418:nobodyさん
09/03/19 00:46:01
>>285
OOPっていう概念よりも
そもそもプログラミングにおいてクラス使うと何が便利?
って考えたほうが分かりやすいかもしんない。
419:nobodyさん
09/03/19 00:49:33
DIRECTORY_SEPARATORでOS判定なんてどう考えてもスジが悪いだろ
常識で考えて・・
420:nobodyさん
09/03/19 01:56:19
>>414
ctype_digit
でいいんじゃないの、バージョン注意だけど
421:nobodyさん
09/03/19 09:10:09 8+csUcRF
fsockopenのテストをしているのですが、
ローカルのサーバ(localhost)上ではオープンできないのでしょうか?
if(!$sock = fsockopen("localhost",80,$errNo,$errStr,10)){
echo "エラーです";
}
として開こうとしても、エラーになります。
422:nobodyさん
09/03/19 09:28:15
なんのために$errNoと$errStrを指定してるんだ
423:421
09/03/19 09:32:30
localhostを127.0.0.1にしたら出来ました・・。
424:nobodyさん
09/03/19 09:39:19
もしかして環境はVistaか?
最近のアップデートで、hostsを書き換えてlocalhostを消すものがあったと話題になってた。
3/10のWindows Defender更新でhostsが書き換えられる!? - スラッシュドット・ジャパン
URLリンク(slashdot.jp)
425:nobodyさん
09/03/19 11:06:59 GwakzSEQ
【PHPのバージョン】php5.2.8
【質問内容】
クラスのメンバ変数についての質問です。
あるメンバ変数が宣言されたかどうかを調べるにはどうしたらよいでしょうか?
代入はされていないのでissetではダメでした。
426:nobodyさん
09/03/19 11:10:22
get_object_vars
もしくは
get_class_vars
427:425
09/03/19 11:16:32
>>426
超速でありがとうございます
さっそくテストコードにかかってきます。
428:nobodyさん
09/03/19 11:18:46
is_nullのほうがいいよ
429:nobodyさん
09/03/19 11:37:30
issetのほうがいいよ
430:nobodyさん
09/03/19 12:38:06
普通こっちじゃねぇの。
URLリンク(jp.php.net)
431:nobodyさん
09/03/19 13:18:49
h1タグの部分を置換したいです。
もっと、スマートの方法ありますか?
(h1の要素は不特定、ない場合もあります。)
<?php
$file = "
<html><body>
<h1 id=\"news\" name=\"news\" style=\"size: medium;\">WBC速報</h1>
<p>4回裏 2 - 0</p>
</body></html>
";
preg_match_all('/<h1[^>]*?>(.*?)<\/h1>/is',$file , $match);
$tag = $match[0][0];
$title = $match[1][0];
$file = str_replace($tag,"<div>{$title}</div>", $file);
echo $file;
?>
432:nobodyさん
09/03/19 13:21:15
訂正 スマートな方法
433:nobodyさん
09/03/19 13:32:20
>>420
ctype_digitってマイナス値の場合falseになるから使えなくね
434:nobodyさん
09/03/19 14:15:42
>>431
何に置換したいのか書いてないよ
あと>>1
435:nobodyさん
09/03/19 21:43:36
まだやってんのか。
strval(intval($str)) === $str
でいいだろ、面倒くせえ。
436:nobodyさん
09/03/19 22:14:40
>>435
これはひどい
437:nobodyさん
09/03/19 23:11:37
>>420
その関数はバグがあるから使い物にならない
438:nobodyさん
09/03/20 04:10:54
URLリンク(phpspot.org)
439:nobodyさん
09/03/20 04:22:45
>>438
この人前も誰かにつつかれてキレてたよなw
440:nobodyさん
09/03/20 08:33:43
三行でまとめてくれ
441:nobodyさん
09/03/20 08:38:37
お前と同じで内容もロクに読まずに転載してるだけですよ、と言ってあげたい
442:nobodyさん
09/03/20 08:40:35
phpspotのアフィ厨がきもいのは確かだが、
「悪名高きda.me..@docomo.ne.jpを引っ掛ける一方で、dankogai+regexp@gmail.comを弾いてしまう」
ってのはどうなん?
ドキュモでda.me..@docomo.ne.jpが取得できる以上、
それをウェブアプリ側ではじくわけにはいかないじゃん
RFCを守るべきはdocomoであって、ウェブアプリは現実に準拠するしかない
443:nobodyさん
09/03/20 08:45:13
phpspotの人は正規表現について語らないほうがいいのでは
URLリンク(labs.cybozu.co.jp)
このトラウマを刺激されたから過剰反応したんだなw
444:nobodyさん
09/03/20 08:47:16
Diggのトップページやdel.icio.us/popularで表示されたページの概要を訳しているだけなんだから、
せめて自分で確かめてから紹介しようよw
>>phpspot
445:nobodyさん
09/03/20 08:57:25
>442
dankogai+regexp@gmail.com はRFCに準拠している。
ドキュモを弾くかはか方針次第だが、このアドレスを弾いてはいけない。
元々phpspotの提示していたコードが役に立たないのは確か。
出力例が「正しいかもしれない」「間違ってるかもしれない」な事からも明らか。
こういうのは「絶対正しい」「間違ってるかも」、もしくは「正しいかも」「絶対間違ってる」のいずれかを返さなければ糞の役にも立たん。
446:nobodyさん
09/03/20 09:47:11
準拠してようがおれはそんなメアドは通さねーぞwwwwwwwwwwwwwwwww
447:nobodyさん
09/03/20 09:59:17
URLリンク(d.hatena.ne.jp)
448:nobodyさん
09/03/20 10:02:52
プロバイダのメールアドレスをなるべき通したい場合は別にそこまでこだわる必要なし
+\とか記号を入れるメアドなんて普通の人は持ってないだろ
449:nobodyさん
09/03/20 10:23:25
>448
なんというか、ここにも馬鹿が多いな。
「食べやすい大きさに野菜を切るには」という記事に「カレーは野菜が大きいほうが美味しい」とか言ってるようなものだぞ、それ。
450:nobodyさん
09/03/20 10:31:42
それ話が通ってるじゃん
451:nobodyさん
09/03/20 10:49:03
RFCに準拠してさえすればいいってもんじゃない
452:nobodyさん
09/03/20 10:50:52
>>449
プロバイダやgmailを除いたメジャーなアドレスで記号付きのメールアドレスを取得できる所教えてください
453:nobodyさん
09/03/20 11:54:25 MICYHS4W
【OS名】debian etch
【PHPのバージョン】php5.2.0-8
PukiWiki Plus!で「ajaxtree.inc.php」プラグインを使おうとしたのですが
キャッシュファイルの作成が正常に行われず色々と調べてみていたところ
下記の部分でよくわからない動きをしていることがわかりました。 (ajaxtree.inc.php 198行目付近)
foreach ($pages as $page) {
if ($leaf[$page] === false) {
plugin_ajaxtree_update_cache($page);
}
echo $page . " " . $leaf[$page] . "<br>\n"; //debug
}
具体的には「plugin_ajaxtree_update_cache」関数が一度でも実行されると
その時点でループが終わってしまい配列の残りの要素が処理されなくなってしまうといった感じです。
(関数から戻ってきたあとのechoまでは処理されています)
ループ後の「$pages」の値には特に変化が無く、エラーも発生していませんでした。
なぜforeachが途中で止まってしまうのかわからずに困っています。
この場合、どういった原因が考えられるのでしょうか?
454:nobodyさん
09/03/20 11:55:01 uQ1BNnXR
トラックバックやpingの受信機能を作っています。
fsockopenで送信されたPOSTやGETを受け取ると思うのですが、
連続送信防止の処理って入れられるのでしょうか?
WEBページのフォーム処理からだと、cookieで制御できると思うのですが
fsockopenは出来ないような気がしています。
455:nobodyさん
09/03/20 12:00:40
>>453
display_errors
error_reporting
>>454
内容を比較すればいいのでは?
456:nobodyさん
09/03/20 12:02:10
ゴガギーン
ドッカン
m ドッカン
=====) )) ☆
∧_∧ | | / / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
( )| |_____ ∧_∧ < おらっ!出てこい>>449
「 ⌒ ̄ | | || (´Д` ) \___________
| /  ̄ | |/ 「 \
| | | | || || /\\
| | | | | へ//| | | |
| | | ロ|ロ |/,へ \| | | |
| ∧ | | | |/ \ / ( )
| | | |〈 | | | |
/ / / / | / | 〈| | |
/ / / / | | || | |
/ / / / =-----=-------- | |
457:nobodyさん
09/03/20 12:06:26
小飼の正規表現はda.me..@docomo.ne.jpを通せないだろ
RFCに準拠するばかりで現実で使えないんじゃ同じようにクソ
458:453
09/03/20 12:31:15 MICYHS4W
>>455
ありがとうございます。
該当するコードに特にエラーなどは発生していませんでしたが解決しました。
配列を関数の戻り値の参照として受け取っていたためおかしな挙動をしていたようでした。
$pages =& plugin_ajaxtree_get_pages();
失礼いたしました。
459:449
09/03/20 12:38:12
docomoの非準拠アドレスを通すかとか、gmailの無限アドレスを通すかとかは、メールアドレス正規表現とは別の問題だろ?
実装の問題じゃない。ビジネスロジックの問題だ。何をどこまで許容するかは技術の問題じゃない。
コーディングする奴が勝手に決めてはいけない問題だし、従って前提条件が提示されないと「正しい」コードなんぞ書けっこない。
何が「正しい」のか、仕様が決まってないんだから当たり前だな。
「正しい」メールアドレスを「RF2822準拠」と定めるなら、PHPSPOTや百式のコードは明白に間違っていて、小飼のコードは正しい。
docomoの非準拠アドレスを許容しなければいけない、とか、gmailの無限アドを拒否しないといけない、という条件下なら小飼のコードは間違っているだろう。
実際、小飼の出力メッセージはちゃんと「RFCに準拠しているか」で出るだろ。
あのコードが解こうとしている判定問題は「RFCに準拠しているか」であって、「一般社会で通用するメールアドレスか」じゃない。
それをてめえらは勝手に問題を取り替えてガタガタ抜かしてるだけなんだよ。これだからPHPerは馬鹿だとか言われるんだ。
RFCに準拠していないアドレスが通ったり、準拠しているアドがNGだったら文句を言うべきだが、それ以外は筋違いだ。
460:nobodyさん
09/03/20 12:41:36
じゃなんで正規表現をblogに書いちゃいけないの?
461:nobodyさん
09/03/20 12:47:51
>>459
RFCに準拠してる正規表現はブログに書いてもOK
RFCに準拠してない現実に即した正規表現はブログに書いたらNG
ってことですね、わかります
462:nobodyさん
09/03/20 13:09:05
>>459ってブログの張本人だろ
463:nobodyさん
09/03/20 16:03:22
>>459
自分ルールを持ち出したのは「PHPer」とか言って悦に入っている人だよな。
っていうか誰この人?
464:nobodyさん
09/03/20 16:20:44
ほとんどの無料有料サービスの登録時にRFCに100%準拠されたメアドは使えない件
465:nobodyさん
09/03/20 16:21:47
._-0-9a-zA-Zぐらいしかたいていのサービス登録では使えない件
何が言いたいかというとRFC必死だな(笑)
466:nobodyさん
09/03/20 18:48:51
弾もPHPERも文末判定に$を使っているが
$は行末判定なので最後に改行コードが付いてても通ってしまう。
ちゃんと\zを使えよ
弾&phpspotともどもm9(^Д^)プギャー!
467:nobodyさん
09/03/20 18:51:14
$が末尾の改行コードに一致するのってPHPだけじゃなくて?
468:nobodyさん
09/03/20 18:56:31
preg_matchはperl互換だからそれはないだろ
469:nobodyさん
09/03/20 19:01:48
perlが死滅した、といっても、
ある程度のシェアを取った言語なので、
perlの正規表現の文法は他の言語にも
そのまま受け継がれていくわけだな。
つまり勉強したことが無駄にならず
再利用できると。
シェアととると、こういう「いいこと」があるんだよな。
470:nobodyさん
09/03/20 20:16:44
何年か前にperl厨が騒いでた
その上でどんなスクリプトでも走るエンジンみたいのどうなったんだよ
えーこら
471:nobodyさん
09/03/20 22:34:03 oZ8fGjsV
javascriptがオンかオフかの情報を知りたいのですがどのような方法が妥当かわかりません
以下のような方法も考えたのですがページを移動するか更新しないとクッキーを読めないので困ってます
どなたかアドバイスお願いいたします
javascriptでクッキーを発行する
↓
クッキーが読み込めたらjavascriptがオン・読み込めなければオフ
472:nobodyさん
09/03/20 22:44:55
>471
処理の順序を考えれば分かるが、無理。
473:nobodyさん
09/03/20 22:53:31
ajaxでやればできるでしょ
474:nobodyさん
09/03/20 23:15:48
そもそも、ページを移動も更新もしてない状態で、サーバ側でJavascript有効かどうか判断しなきゃ
いけない状況って何だろう?
475:nobodyさん
09/03/20 23:17:56
その状況を考えられないならこの業界で食えませんよ
476:nobodyさん
09/03/20 23:23:33
ajaxでリクエスト飛んできたらon、飛んでこなかったらoff
477:nobodyさん
09/03/20 23:42:53
>>475
なんで?
Ajax使う前提なら、こんなことで悩まんでしょ。
有効な時にメッセージ出したいなら、Javascriptで出せば良いし、使えない時にメッセージ出したいなら
NOSCRIPT使えばいいし。
トップページへのアクセスだけで、Javascriptを有効にしてるかどうかサーバ側に記録を取りたいとか、そんな感じ?
478:nobodyさん
09/03/20 23:59:59
>477
だとしても、JavaScript経由で鯖にアクセスさせるだけだしな。
PHPではできない、というのは正しい。
まあ、質問が抽象的すぎるんでなんとも言えん。どうして質問掲示板の類の質問者は情報を出し惜しみするんだか。
479:nobodyさん
09/03/21 00:11:32
>>478
それはいいがかり。
おまえだって18世紀にペストにかかったら
「ネズミが運んできた病原菌のせいで感染しました」
とは医者には報告しないはずだ
480:nobodyさん
09/03/21 00:49:23
たとえのほうがわかりづらいってどういうことよ
481:nobodyさん
09/03/21 02:16:36
www
482:nobodyさん
09/03/21 02:24:45
そうか?非常に分かりやすい例えに感じたけど
483:nobodyさん
09/03/21 02:34:45
479=482wwwww
484:nobodyさん
09/03/21 19:33:45 Kz7V9K+/
掲示板を作るのですが共同で作る場合、どのようなシステムを導入するといいですか?
485:nobodyさん
09/03/21 19:35:17
>>484
git
486:nobodyさん
09/03/21 22:18:16
サーバサイドのプログラムが永久ループしたらどうやって止めるんですか?
そういうのがあると、レンタルサーバ屋に怒られるんですか?
487:nobodyさん
09/03/21 22:29:13
コンセント抜けばおk
488:nobodyさん
09/03/21 22:35:15
>>486
30秒で止まる。
489:nobodyさん
09/03/21 22:39:17
設定次第だがデフォルトは30秒
490:nobodyさん
09/03/21 22:46:46
止めるのは鯖屋の仕事だから好きなだけ無限ループさせておk
491:nobodyさん
09/03/21 23:10:45
とっくに想定済みなんですね。
ありがとうございました。
492:nobodyさん
09/03/21 23:18:28
まぁ鯖潰したら損害賠償だけどな
493:nobodyさん
09/03/21 23:38:44
>>492
そんなヤワな鯖ねーよ
494:nobodyさん
09/03/21 23:40:05
>>492
ちょっと中級者ぶりたい年頃だけど外してるの図
495:nobodyさん
09/03/22 01:29:46
いきなり本番とかやらなければ普通起こさないと思うけど>無限ループ
496:nobodyさん
09/03/22 01:34:00
よくCMSなんか見てると、全てのファイルの頭に
/**
*
* @package hogehoge
* @version $Id: index.php 0000 2010-01-01 14:00:00Z hogehoge$
* @copyright (c) 2010 fugafuga
* @license URLリンク(opensource.org) GNU Public License
*
*/
こんなの見かけるけど、これは手動で書いてるんですか?
まさかね?
497:496
09/03/22 01:35:02
ID
498:496
09/03/22 01:35:33 pWqW8Yq7
また間違えたorz
ごめんなさい
499:nobodyさん
09/03/22 03:37:07
>>494-495
マジレスつまらん
500:nobodyさん
09/03/22 05:17:23
すいません。CMSなどはHTMLファイルを生成するんですよね
メニューに一項目増えた場合 全部のHTMLページを
書き換える処理ってしてるんですか?
501:nobodyさん
09/03/22 06:09:27
>>500
テンプレートにして動的にしてる場合が多い気がする。
スタティックなHTML吐くのはあまり見たことがない。
502:nobodyさん
09/03/22 06:19:05
>>501
つまりmod rewriteってことですか?
素人ですいません。
503:nobodyさん
09/03/22 06:19:37
mod_rewriteがどう関係あるんだ?
504:nobodyさん
09/03/22 06:22:33
つまりHTMLじゃないけれど、HTMLとしてって方法ですか?
自分はプログラムで呼び出すか、SSIしか思い浮かばないです
505:nobodyさん
09/03/22 06:23:55
プログラムで呼び出せば?
506:nobodyさん
09/03/22 06:25:11
CMSってHTMLファイルを作っていくイメージがあったんです
すいません。ただ、require include で呼び出したページは
グーグルランクつきにくいです
SSIにしてみたところ、それよりはわずかにつきやすかったです
CMSがHTMLファイルなら、どうやって外部からメニューを
呼び出しているかわからなかったので
507:nobodyさん
09/03/22 06:28:00
別に動的でもSEO考慮する方法はいくらでもあるべ?
508:nobodyさん
09/03/22 06:30:30
>>507
具体的に教えて下さい お願いします
もっどりライトは厳しい感じがしました 結果が
509:nobodyさん
09/03/22 06:31:26
結果がって?
510:nobodyさん
09/03/22 06:32:34
>>509
グーグルランクのつきが明らかに悪いです(個人の弱小HP)
そしてSSIに変えたところ、3つほどつきました
現在SSIのほうがPHPによる外部ページ呼び出しよりランクがつきやすいです
内部は全く変えてないです
511:nobodyさん
09/03/22 06:33:30
じゃSSIでいいじゃん
512:nobodyさん
09/03/22 06:37:40
(;^Д^) そうですか
513:nobodyさん
09/03/22 07:18:32
そう
514:nobodyさん
09/03/22 09:24:55
ひどい自演を見た><
515:nobodyさん
09/03/22 09:59:58
>>492=499
自分はマジレスじゃなかったことにしようとして外してるの図
516:nobodyさん
09/03/22 10:04:27
>>492がマジレスなわけないだろ。初心者は半年ROMれよ
517:nobodyさん
09/03/22 10:06:20
またその話かよ
A型はひつこいな
518:nobodyさん
09/03/22 10:11:46
ホントに鯖潰したら、普通に損害賠償だけどな。
519:nobodyさん
09/03/22 10:11:46
初心者(笑)は半年ROMれ(笑)よ
520:nobodyさん
09/03/22 10:24:48
普通は損害賠償とか面倒なことに発展する前に、凍結されたり追い出されたりする
Nucleusでアクセス解析いれたら劇重になって、翌日、鯖停止->強制解約になったよ。オレ
521:nobodyさん
09/03/22 10:24:54
>>515
図星で逆ギレの図
522:nobodyさん
09/03/22 10:56:19
>>492=499=521
m9
523:nobodyさん
09/03/22 11:33:37
粘着すぎる いつもむかむかしてるのかな
524:nobodyさん
09/03/22 11:39:35
邪魔なんだよね〜
これ以上やるなら専用スレ立ててやるからそっちで共食いしてくれ
525:nobodyさん
09/03/22 11:46:58
>>484
バージョン管理システムを導入するといいです
>>496
いくつかのIDEでは/**と入れて改行すると自動で作ってくれます
EclipseのPHPプラグインあたりだと
最初に関数を定義してからその上に/**を入れて改行すると
下の関数を見て引数があったら@param
返り値があったら@returnを生成してくれます
その他については必要であったら自分で記述するか
デフォルトの値として設定可能なものなら設定するしかありません
526:nobodyさん
09/03/22 11:49:05 dhNIUg3n
多次元配列へのアクセスを動的にやりたいのですが、
どうすればいいですか?
get_multi_array($array,array('hoge','fuga','poge'))
→$array['hoge']['fuga']['poge']を取得
こういう動作をさせたいのです
527:nobodyさん
09/03/22 12:30:00
>>492=499=521=523=524
立場が悪くなって第三者のフリをしようとしてるけど外してるの図
528:nobodyさん
09/03/22 12:43:51
>>527
邪魔なんだよね〜
これ以上やるなら専用スレ立ててやるからそっちで共食いしてくれ
529:nobodyさん
09/03/22 12:56:54
>>528
無視できない時点で同類だって教わらなかったの?
というより自演バレバレだよ初級者君(笑)
530:nobodyさん
09/03/22 12:57:11
おまえらケンカしろ byひきこもり塾っぽいの
いいんだよ byスレ回り先生
自作自演する若者はためが無い by湯浅誠
自作自演格差社会 〜492のレス能力格差がスレッドを引き裂く
>>528は、新自由主義者
何でも排除して、格差を作ろうとする
531:nobodyさん
09/03/22 13:10:43
>>529
邪魔なんだよね〜
これ以上やるなら専用スレ立ててやるからそっちで共食いしてくれ
532:nobodyさん
09/03/22 14:07:27 ofSdd/CM
モバイルからなのでID固定できませんが質問です
"<a href='".$value."'>"などとしたときに
htmlspecialcharsだけでは変数にscript:〜が含まれていた場合に回避できませんが
変数の前に"URLリンク(sample.com)"とURLがあれば問題ないのでしょうか
実際Firefox,safariなどでは普通にnot foundになります
次ページ最新レス表示スレッドの検索類似スレ一覧話題のニュースおまかせリスト▼オプションを表示暇つぶし2ch
4738日前に更新/244 KB
担当:undef