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

【PHP】下らねぇ質問はID出して書き込みやがれ 99

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2010/10/13(水) 12:01:33ID:???
質問者はまず>>1を良く読むこと(必須!)
過去スレ、関連スレ、FAQなどは>>2-10辺り
次スレは>>980が立てる。10分以内に立たない場合、宣言してから立てたい人が立てること。

◆前スレ
【PHP】下らねぇ質問はID出して書き込みやがれ 98
http://hibari.2ch.net/test/read.cgi/php/1284805237/

◆質問用テンプレ
【OS名】CentOS
【PHPのバージョン】5.3
【連携ソフトウェア】MySQL ImageMagick
【質問内容】

◆質問する時の注意
・ スレを上げて自分のIDを表示させること。(メール欄に何も記述しない。専ブラのsageチェックを外す)
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に関連リンクの公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
(PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。)

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

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

【その他諸注意】
・SQL・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
0689nobodyさん2010/10/22(金) 00:57:29ID:???
>>688
どこ?
0690nobodyさん2010/10/22(金) 01:01:03ID:???
別スレで聞いたら10秒で答えてくれたわ
おまえらレベル低すぎ!
0691nobodyさん2010/10/22(金) 01:14:58ID:???
Pear::Auth を使った認証を破棄(ログアウト)する場合に

logout();


を使っているのですがこれを行えばセッションも完全に破棄されるのでしょうか?

無駄にリソースを食ったりしやしないかちょっと心配です。
0692nobodyさん2010/10/22(金) 01:18:01ID:???
セッションはテンポラリだから気にしないでいいよ
0693nobodyさん2010/10/22(金) 01:18:41ID:???
>>691
>>1
0694nobodyさん2010/10/22(金) 01:26:38ID:???
>>692
ありがとうございます

>>693
しにくされ
0695nobodyさん2010/10/22(金) 02:25:25ID:???
死肉去れ?
0696nobodyさん2010/10/22(金) 04:41:40ID:qwjMjkx8
画像ファイルの削除について質問です

/picture/ディレクトリの中に
key1_100.jpg, key1_103.jpg, key1_4562.jpg などの画像ファイルが入っています
ファイルの名前はkey1_という文字列が冒頭についているものとします

この条件で、 key1_〜で始まるファイルをまとめて削除したいんですがどうしたらいいですか?
ファイル名が拡張子まで含めてわかってたら
unlink("/picture/key1_100.jpg"); でいいのかなと思いますが
key1_以降がわからないので上記の形での削除はできません。
またkey2_〜というファイルもあるので、ディレクトリの中身を全部消すなども無理です。
ご意見よろしくお願いします
0697nobodyさん2010/10/22(金) 06:58:31ID:???
>>696
http://jp2.php.net/manual/ja/function.unlink.php
一番下

function delfile($str)
{
foreach(glob($str) as $fn) {
unlink($fn);
}
}

delfile('/picture/key1_*');
0698nobodyさん2010/10/22(金) 10:32:39ID:FczuqSIi
ログを表示したいんだけど、さくっと簡単に出来るライブラリとかない?
0699nobodyさん2010/10/22(金) 10:35:15ID:???
お前のログなんてみたくない
0700nobodyさん2010/10/22(金) 10:35:24ID:???
>>1
0701nobodyさん2010/10/22(金) 10:44:14ID:a21HIBns
PHPでは通常POSTされたデータを name を指定する事により
取得しますが、これをIDを指定して受取る方法とかってあるのでしょうか?

<input id="id_simei" name="name_simei" type="text" />

$_POST["name_simei"]

$_POST["id_simei"] 的な取得は可能ですか?
0702nobodyさん2010/10/22(金) 10:56:03ID:???
>>701
ありません。そもそもブラウザからidは送られてこない。

普通にPOSTするかわりにjavascriptで情報拾って鯖に投げるとか
いちいち書けば可能かもしれんがやめとけ。
0703nobodyさん2010/10/22(金) 10:56:32ID:???
>>701
postメソッドで送られてるのはnameと値の一対だからidは送信されてないと思うよ
0704nobodyさん2010/10/22(金) 10:59:27ID:9Z1FVvDn
[[foo|mailto:bar@hoge.jp]]
みたいな記述を
<a href="mailto:bar@hoge.jp">foo</a>
に書き換えて表示させたいんですが、

$comment = [[foo|mailto:bar@hoge.jp]];
$comment = preg_replace("/\[\[(.*?)\|(.*?)\]\]/","<a href=\"$2\">$1</a>",$comment);
とやっても置換できませんでした

[と|はエスケープ必須ですよね?

どこをどう修正したらうまくいきますでしょうか
お教えくださいますようお願いします
0705nobodyさん2010/10/22(金) 11:02:33ID:a21HIBns
>>702 >>703
ありがとうございます。
仕方が無いのでやはり従来通り name で取得します。
0706nobodyさん2010/10/22(金) 11:04:18ID:???
>>704
できてるけど?
0707nobodyさん2010/10/22(金) 11:06:40ID:???
>>706
$comment = $line[comment];

$comment = [[foo|mailto:bar@hoge.jp]];
$comment = preg_replace("/\[\[(.*?)\|(.*?)\]\]/","<a href=\"$2\">$1</a>",$comment);

echo $line[comment];

ってやってました・・・
0708nobodyさん2010/10/22(金) 11:49:04ID:CQ5MzjSC
mysqlで、元のレコードの値に関数をかけることってできませんか?

例えば
function _rk($_val){
if($_val >= 5){
$text = "good!";
}
return $text ;
}

こんな感じの関数を

update table1 set
point= point+ 1,
rank = _rk(point + 1)
where no = 1

こんな感じで(実際にはできませんが)適用したいのです。
selectで一度データをひっり出してから
rank 値を作成するのは効率が悪いので避けたいです。
分かりくくてすみません。
どなたかいい案があればお願いします。
0709nobodyさん2010/10/22(金) 12:01:00ID:???
>>708
update文で、CASE使えばできる
「mysql update case」とでも検索してみてください
0710nobodyさん2010/10/22(金) 12:40:28ID:???
SEO対策にスクリプトの拡張子を表示させない様にしたいです。
具体的には
http://hogehoge.com/test.php
というURLでアクセスされると
http://hogehoge.com/test
として表示させたいのですが
どの様な mode_rewrite を書けば良いでしょうか?


0711nobodyさん2010/10/22(金) 12:42:18ID:???
まぁそんなことでSEO対策にはならんけどな
0712nobodyさん2010/10/22(金) 12:58:28ID:???
なんでPHPと関係ない質問が多いのか
なんで他人様のドメインを勝手に直リンさせるのか
0713nobodyさん2010/10/22(金) 13:06:30ID:qwjMjkx8
>>697
どうもありがとう!
0714nobodyさん2010/10/22(金) 13:51:06ID:CQ5MzjSC
>>709
ありがとうございます!
0715nobodyさん2010/10/22(金) 15:39:17ID:???
どういたました!
0716nobodyさん2010/10/22(金) 17:04:47ID:???
コールバックっていう言葉の意味は
returnから帰ってくる値って意味でいいんですか?
0717nobodyさん2010/10/22(金) 17:10:07ID:???
>>712
紛らわしいドメインを取ってる奴が悪い。
0718nobodyさん2010/10/22(金) 17:13:27ID:???
>>4
> 2. このスレに書き込むときに自分のサイト名を晒したくない
> → http://example.com/が例文などのために予約されている。hogehoge.comは使っちゃダメ。
0719nobodyさん2010/10/22(金) 18:18:29ID:???
>>716
携帯に着信履歴を残して、相手にかけさせること。
0720nobodyさん2010/10/22(金) 18:39:08ID:???
>>717
example.com および example.net, example.org は、 RFC 2606 の 3 章で予約されているセカンドレベルドメイン名である。
これらはソフトウェアドキュメンテーションにおける例示のために使われるもので、実際に登録することはできない。
これらのドメインを予約するにあたって、 IANA はマニュアルやソフトウェアの設定のサンプルなどに使用できる
ドメイン名一覧を作成した。 それにより、もしもドキュメンテーション内で記述されているドメイン名が
そのまま使用されたとしても、 第三者に悪影響が及ばないことを保障することが出来る。
コピペ
0721nobodyさん2010/10/22(金) 19:01:13ID:???
>>720
ほー
スレ独自のルールじゃないんだ
勉強になりました
0722nobodyさん2010/10/22(金) 19:08:48ID:???
とあるライブラリからモジュールをぶっこぬいて使おうとしたのですが、
パスが通らないようです。
require_once()文を変更せずに、\PEAR下を見に行くようにするには、どうすればよいですか?

Warning: require_once(Net/UserAgent/Mobile/Error.php) [function.require-once]: failed to open stream: No such file or directory in D:\MyProject\ptrade\symfony\ptrade\lib\vender\PEAR\Net\UserAgent\Mobile.php on line 40

Fatal error: require_once() [function.require]: Failed opening required 'Net/UserAgent/Mobile/Error.php' (include_path='.;C:\xampp\php\PEAR') in D:\MyProject\ptrade\symfony\ptrade\lib\vender\PEAR\Net\UserAgent\Mobile.php on line 40

0723nobodyさん2010/10/22(金) 21:08:20ID:???
>>722
./pear/を読ませたいなら
set_include_path(get_include_path() . PATH_SEPARATOR . realpath("./pear/"));
0724nobodyさん2010/10/22(金) 21:09:11ID:???
>>718
お前が勝手にルールを決めるな
0725nobodyさん2010/10/22(金) 21:30:58ID:???
globの読み方ってグロブ?グラブ?
pearをベアーって読むって最近知った
ピアーっていってた
07267252010/10/22(金) 21:38:53ID:8u5PyO3j
あ、idでてなかったごめん
0727nobodyさん2010/10/22(金) 22:01:13ID:???
1. 発音記号を学ぶ
2. ネットで音声付きの辞書を引く
3. WindowsならSamかAnnaが住んでるから喋らせてみる
0728nobodyさん2010/10/22(金) 23:42:08ID:???
>>724
>>721
0729nobodyさん2010/10/22(金) 23:46:27ID:???
>>728
>>724
0730nobodyさん2010/10/23(土) 00:58:25ID:???
別スレで聞いたら10秒で答えてくれたわ
おまえらレベル低すぎ!
0731nobodyさん2010/10/23(土) 01:14:40ID:???
>>730
>>721
0732nobodyさん2010/10/23(土) 03:05:06ID:???
>>725
ベアーとは読まんだろ
0733nobodyさん2010/10/23(土) 05:15:29ID:???
>>727
3.kwsk
0734nobodyさん2010/10/23(土) 06:08:08ID:???
>>733
text-to-speechのことだろ
0735nobodyさん2010/10/23(土) 07:30:31ID:???
<?php
text_to_speech("pear", "Sam");
?>
0736nobodyさん2010/10/23(土) 08:29:41ID:???
ベアーwwww
0737nobodyさん2010/10/23(土) 09:23:06ID:???
ベアーと読もうが本人の勝手だろ
0738nobodyさん2010/10/23(土) 09:56:33ID:???
そんなマジレス返されましても
07397252010/10/23(土) 10:22:02ID:???
あぁ、またまたごめん
iPhoneから打ったからタップが一回足らなかったw
ベアーじゃクマーだな

globは英単語だったんだね
グロブと読むらしい

cronみたいな造語だと思ってた
0740nobodyさん2010/10/23(土) 11:19:34ID:???
日本語ならグロブでもいいんじゃないw
0741nobodyさん2010/10/23(土) 11:39:26ID:???
>>740
グロブでもいいってグロブと読むって言ってんのに
0742nobodyさん2010/10/23(土) 11:43:55ID:???
ブログ
0743nobodyさん2010/10/23(土) 12:03:21ID:???
日本語ならブログでもいいんじゃないw
0744nobodyさん2010/10/23(土) 12:08:33ID:???
ぐろっぶ
0745nobodyさん2010/10/23(土) 12:13:30ID:???
読み方がわからない人ってのは口頭で話す機会のない人なんだろ?
発音しないんだから発音しらなくてもよくね?
口頭でやりとりする人なら人に聞きゃ済むわけだしな
0746nobodyさん2010/10/23(土) 14:18:13ID:???
>>745
部署内みんな間違ってたって事はある。
0747nobodyさん2010/10/23(土) 15:14:46ID:???
http://www.tagindex.com/statistics/tag_name/index.html
こういうの面白いよね
0748nobodyさん2010/10/23(土) 15:21:19ID:???
>>747
面白い!うちのデザイナーはWidthとHeightを一位ので読んでて多少気になるw
0749nobodyさん2010/10/23(土) 16:04:47ID:???
多少か!w
0750nobodyさん2010/10/23(土) 16:06:14ID:???
ワイズとヘイト?ありえねーわ
0751nobodyさん2010/10/23(土) 16:43:47ID:???
hrefをハーフと言ったりする人もいるよな
もぞもぞする
0752nobodyさん2010/10/23(土) 17:00:37ID:???
エイチレフ
0753nobodyさん2010/10/23(土) 17:02:04ID:???
俺は「ハイパリファレンス」って呼んでる
たいてい通じないから「エイチャーレフ」って言い直す
0754nobodyさん2010/10/23(土) 17:51:36ID:???
俺はウィドゥスとヘイトだな綴りの都合上ヘイグヒトと覚えてるが
英語読みだとウィドゥ(スは消え入る音でほとんど聞こえない)とハイトみたいだね
0755nobodyさん2010/10/23(土) 18:43:54ID:sKO4L/iz
mb_convert_encodingで文字コードを変換してechoで吐くと目的どおりの文字コードになって、
文字化けもしてないのに、DBにいれると???????になるんですが、これは原因はなんなんでしょうか?
shift-jis->euc-jpでDBテーブルはujis_japanese_ciです。
0756nobodyさん2010/10/23(土) 18:44:37ID:???
set names ujis
0757nobodyさん2010/10/23(土) 18:46:09ID:???
全部utf-8に統一しなよ・・わざわざ変える意味あるのか
0758nobodyさん2010/10/23(土) 18:48:42ID:???
>>755
フィールドの照合順序もujisになってる?
0759nobodyさん2010/10/23(土) 19:19:28ID:sKO4L/iz
>>756
これをやるとPhpmyadmin上はちゃんと表示されるようになりました・・・
Euc-jp表示なのに文字化けしてないのはなぜ・・・

>>757
本サイトがEucで携帯がShift-jisなもんで・・・

>>758
すいません、説明間違ってました。
DefaultCharsetがujisで照合順序がujis_japanese_ciでした。
0760nobodyさん2010/10/23(土) 19:20:18ID:???
>>756
間違えたset names sjisでやるとphpmyAdmin上では文字化けしてませんでした。
0761nobodyさん2010/10/23(土) 21:13:08ID:???
解決しました。
DBIniInsert時にset names sjisにして
表示時にshift-jisにしたら直りました。
0762nobodyさん2010/10/23(土) 21:42:17ID:???
MySQLで SET NAMES を使ってはいけない
0763nobodyさん2010/10/24(日) 01:33:24ID:???
なんで
0764nobodyさん2010/10/24(日) 01:35:09ID:???
>>762の言うことは嘘だから気にするな。
SET NAMES は積極的に使うべき
0765nobodyさん2010/10/24(日) 01:40:50ID:???
良い子のみんなは「MySQLで SET NAMES を使ってはいけない」でググってね
0766nobodyさん2010/10/24(日) 03:40:32ID:f6QEzh36
大人なのでSET NAMESを使います
0767nobodyさん2010/10/24(日) 12:29:37ID:YiuzekCl
fpmでforkしたphp間で共有されるものってある?
複数コネクションを同時にさばくとき、Railsみたくフレームワークのモデルさんが壊れないか気になるんだけど
0768nobodyさん2010/10/24(日) 20:07:38ID:XupTldvh
while( 条件文1 && 条件文2 ){
・・・
}

こういう構文の時、条件1でfalseが返ってきたら条件文2はそもそも検証すらされずwhileループを抜けますか?

たとえば条件1で配列の上限を超えたかどうかを調べ、
超えていればそのままwhileループを抜け出し
条件2の検証で配列の要素数オーバーを防げるかどうかを知りたいです。
0769nobodyさん2010/10/24(日) 20:09:53ID:???
エスパー出番よ
0770nobodyさん2010/10/24(日) 20:25:12ID:???
>>768
条件2が検証されるかされないかなんて重要なことではなくね?
オーバーを防げるの意味がわからん
具体的な例文書いてみて
0771nobodyさん2010/10/24(日) 20:26:19ID:???
>>768
条件1がfalseなら条件2は評価されないはず、でもソース無い。
後半の「配列の上限を超える」「要素数オーバーを防ぐ」が良く分からん。
0772nobodyさん2010/10/24(日) 20:27:13ID:???
条件2で配列に追加を行うわけじゃないんだから条件2を検証しようがしまいがオーバーを防ぐように処置してりゃ防げるんでないの?
0773nobodyさん2010/10/24(日) 20:28:47ID:8gi8mHZF
>>768
短絡評価でググると良いよ

>>779
短絡評価は結構重要なテクニック
0774nobodyさん2010/10/24(日) 20:30:24ID:???
条件2が
$i+=1 < 100
みたいなのってことなのかな
0775nobodyさん2010/10/24(日) 20:34:41ID:???
クラスとか二次元配列じゃない?
0776nobodyさん2010/10/24(日) 20:36:34ID:???
>>779>>770のミス
コードの行数とステップ数を減らすぐらいしかメリットがないけど・・・
下の例ではHello!と表示される
<?php
function example1(){
return true;
}
function example2(){
echo "Hello!";
}
example1() && example2();
?>
0777nobodyさん2010/10/24(日) 20:42:12ID:???
PHPマニュアルのここに詳しいな
ttp://www.php.net/manual/ja/language.operators.logical.php
0778nobodyさん2010/10/24(日) 21:24:52ID:???
>>768
$arr = array('a', 'a', 'a');

$i = 0;
while (isset($arr[$i]) && $arr[$i] === 'a') {
var_dump($i);
$i++;
}

$i = 0;
while ($arr[$i] === 'a') {
var_dump($i);
$i++;
}

とかやってみればわかるじゃん。
07797682010/10/24(日) 21:56:44ID:XupTldvh
PHPは短絡評価をサポートされていたんですね。
ありがとうございましたm(_ _)m
0780nobodyさん2010/10/24(日) 22:23:05ID:???
>>773がいろんな意味でエスパーすぎてマジびびったわ
0781nobodyさん2010/10/24(日) 22:39:03ID:???
Javaの場合は、
if (obj != null && obj.test())
って書く場合がよくある。
obj が null の場合、
後ろの obj.test() でエラーになるが、実際には実行されないので・・・
0782nobodyさん2010/10/24(日) 23:00:25ID:Etwa0dNn
http://d.hatena.ne.jp/shellcat/20090928/1254144157

ここの下の方にある $_GET のところで、

>また、同じキーで複数の値が送られる以下のような場合、
http://localhost/test.php?foo=bar&foo=bee
>キーに対応する値は配列となる。
>$_GET['foo'] = array('bar', 'bee');

このように書かれているのですが、試してみましたところ、
そのようにはなりませんでした。

php.ini等の設定がいるのでしょうか?
どうか教えてください。
0783nobodyさん2010/10/24(日) 23:04:41ID:???
ならんですね
[]が必要
0784nobodyさん2010/10/24(日) 23:18:09ID:???
http://localhost/test.php?foo[]=bar&foo[]=bee
の間違いでしょ
07857822010/10/24(日) 23:45:01ID:Etwa0dNn
なるほど。
ありがとうございます。

とあるソーシャルアプリの開発を行っているのですが、
id=28456&id=28969
こんな感じでスクリプトがコールされるんですね。

簡単にそれぞれ取れるような方法はないものでしょうか。
QUERY_STRINGから分割して処理する関数書くしかないですかね。
0786nobodyさん2010/10/25(月) 00:07:03ID:???
そのスクリプトは直らんのか?
0787nobodyさん2010/10/25(月) 00:52:51ID:???
ユーザーが投稿したコンテンツにランダム文字列を付加して、識別できるようにしたいと考えております。
このランダム文字列をなるべく短く、かつ、絶対(あるいは無視できるほどの低確率)にぶつからないように付加したいのですが、
一般的にはどのような方法があるでしょうか?

ぶつからないようにするためには、DBに入れた値を毎回検索してダブりが無いか確認…
とやれば出来るのですが、さすがにパフォーマンス的に現実的ではない気がします。
0788nobodyさん2010/10/25(月) 00:55:36ID:???
>>787
>>1
■ このスレッドは過去ログ倉庫に格納されています