【PHP】下らねぇ質問はID出して書き込みやがれ 105
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2011/03/17(木) 04:00:34.11ID:???過去スレ、関連スレ、FAQなどは>>2-10辺り
次スレは>>980が立てる。10分以内に立たない場合、宣言してから立てたい人が立てること。
◆前スレ
【PHP】下らねぇ質問はID出して書き込みやがれ 104
http://hibari.2ch.net/test/read.cgi/php/1297669559/
◆質問用テンプレ
【OS名】CentOS
【PHPのバージョン】5.3
【連携ソフトウェア】MySQL ImageMagick
【質問内容】
◆質問する時の注意
・ スレを上げて自分のIDを表示させること。(メール欄に何も記述しない。専ブラのsageチェックを外す)
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に関連リンクの公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
(PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。)
◆質問後の注意
・2回目以降は最初に質問した際のレス番号を入れて、偽者防止に必ずIDを表示させること。
・解決しなくても回答をもらった場合はお礼を言うこと。
(荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
【その他諸注意】
・SQL・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
0382nobodyさん
2011/04/05(火) 10:39:10.40ID:???だからそうしたいならpublic_htmlにhtaccessでアクセス拒否して
/home/www/hoge/hoge1/public_htmlやらにhtaccessでアクセス許可すりゃいいだろ?
0384nobodyさん
2011/04/05(火) 11:09:02.49ID:O9iT5e/sディレクトリ階層
hoge1/public_html/index.php etc
hoge1/application/config.php etc
hoge2/public_html/index.php etc
hoge2/application/config.php etc
URL
http://hoge.example.com/hoge1/ → /home/www/hoge/hoge1/public_html
http://hoge.example.com/hoge2/ → /home/www/hoge/hoge2/public_html
0385。 ◆oDupeixhZv52
2011/04/05(火) 11:18:42.07ID:???みたいな設定の話?
0387nobodyさん
2011/04/05(火) 12:06:53.84ID:uZc7Aq85if (isset($var) && $var == 1)
みたいな書き方をしているのですが、これって正しいですよね?
一応、エラーは出ませんが・・。
0388nobodyさん
2011/04/05(火) 12:08:52.13ID:???0389nobodyさん
2011/04/05(火) 12:15:43.61ID:???if (unset($var) & $var = 1)
みたいな書き方をしているのですが、これって正しいですよね?
一応、エラーは出ませんが・・。
0390nobodyさん
2011/04/05(火) 12:16:23.67ID:???0391nobodyさん
2011/04/05(火) 14:20:25.76ID:0O+W0/s0$main はCSVより読み込んだテキスト(HTMLタグ付き)が配列で収納されています。
同様に $link にもcsvより読み込んだファイル名を収納しており、このファイル名でファイルを生成します。
・やりたいこと。
ファイルを複数生成し、テンプレートを読み込み、そのメイン記事となる部分にcsvで記載したテキストを表示させたい。
テンプレートファイル内の#include# にmein[] の中身を順に書き出したい
・やったこと
下記プログラム。
csv を配列に収納→ for で配列の数だけ回しながらファイル生成と記事の作成をしようとした。
・問題点
for の中にある $n が有効になっていない?
生成されるファイル名は 配列$linkの[0]から[7]の名前で生成されますが
記事の内容は全て $main[1] が書き出されています。
$main["$n"] の$n が変化していない印象がある。
ファイル一式をUPしました
http://www1.axfc.net/uploader/Sc/so/221739
0392391
2011/04/05(火) 14:21:03.81ID:0O+W0/s0for($n = 0; $n < 8; $n++) {
$filename = $link[$n].".html";//ファイル名の指定
$main_txt = $main["$n"];
if ( !file_exists ( $filename ) ) {//もしファイル名がなかったら
touch($filename); // 新しくファイルを作成
chmod($filename,0666);
//テンプレートファイルにある文字列を置換する
$keys['#include#'] = $main_txt;
$buff = strtr($buff, $keys);
$fp = fopen( $filename,"r+"); // 読み書きモードでオープン
flock($fp, LOCK_EX); // 書き込みロック
fseek($fp, 0); // ポインタを先頭に戻す
fputs($fp, $buff); // 書き込み
fclose($fp); // ファイルを閉じる
}//ファイルがある場合は処理しない
}
改行制限のため分割
プログラム一部抜粋しました。
0393。 ◆oDupeixhZv52
2011/04/05(火) 14:50:58.68ID:???0394nobodyさん
2011/04/05(火) 15:04:26.86ID:???テンプレートファイルの中身は最初の中身のままです。
置換したものを別ファイル名で保存しているので問題ないと思うのですが。
別の指摘でしたらすいません、詳しく教えてください
0395nobodyさん
2011/04/05(火) 15:06:41.63ID:???0396nobodyさん
2011/04/05(火) 15:14:25.71ID:???+ $buff2 = strtr($buff, $keys);
- fputs($fp, $buff);
+ fputs($fp, $buff2);
∧∧
ヽ(・ω・)/
\(.\ ノ
、ハ,,、  ̄
0397391
2011/04/05(火) 15:54:56.13ID:???0398nobodyさん
2011/04/05(火) 16:23:39.15ID:9JKVBGzMfile_existsでは絶対パスが使用できないので困っています。
何かいい方法ありませんか?
0399nobodyさん
2011/04/05(火) 16:48:14.83ID:RXGsg7Xb$key = "test";
// A
echo $array["$teset"];
// B
echo $array[$test];
Bなんですけど変数に"や'で囲まなくてもいいのでしょうか?
echo $array["'". $test. "'"];な感じに囲むものでしょうか?
0401nobodyさん
2011/04/05(火) 16:56:00.18ID:9JKVBGzMうおぉぉ、なぜ思いつかなかったんだ…
ありがとうございます
0402nobodyさん
2011/04/05(火) 16:56:07.86ID:???$key = "test" なんだから、
$array["test"] = $array[$key] でしょ
> echo $array[$test];
$test は定義されていない
"$key" は文字列の中で$keyが展開されて "test" と同じ
'$key' は展開されないのでそのまま「$key」という文字列になる
"'".$key."'" は "'"."test"."'" = "'test'"
0403。 ◆oDupeixhZv52
2011/04/05(火) 17:01:41.36ID:???http://www.php.net/manual/ja/function.file-exists.phpの下にある
url_exists みたいなのもある。
>>399
ふつうは囲まない。
"$key" みたいなのは NULLのとき "" になるのを使うこともある。
0404nobodyさん
2011/04/05(火) 17:02:19.98ID:???file_get_contentsでファイル転送リストを取得、foreachでそれぞれ
file_get_contentsでファイルを取得していますが、一定サイズ以上になるとうまくいきません。
ファイルすべてをメモリ上にプールすることなく、取得する方法はないでしょうか。
0405404
2011/04/05(火) 17:02:46.43ID:WgbWuRE+0406nobodyさん
2011/04/05(火) 17:07:32.98ID:???0408404
2011/04/05(火) 17:14:06.76ID:WgbWuRE+WANでしか接続できないサーバーなので、
allow_url_fopenオプションを入れて、fopenで取得しローカルのファイルにfputする、っていう
ことでしょうか。メモリ上にプールされる気がします
memory_limit < file_sizeにすれば正常に取得されます
0409nobodyさん
2011/04/05(火) 17:17:22.74ID:???fread ですこしずつ読み込んでファイルに保存していけばいい
$handle = fopen("http://www.example.com/", "rb");
$contents = '';
while (!feof($handle)) {
$contents .= fread($handle, 8192);
$contents をファイルに書き出し
}
fclose($handle);
0410nobodyさん
2011/04/05(火) 17:18:00.67ID:???○ $contents = fread($handle, 8192);
0411nobodyさん
2011/04/05(火) 17:19:32.00ID:???0412404
2011/04/05(火) 17:33:17.39ID:WgbWuRE+ありがとうございます。
保存先をファイルポインタ終わりにおいて開き、whileの中でfputしていくようにすると
保存先ファイルのファイルサイズが順調に増え、memory_limit=256Mとしたときでも
980MBytesのファイルを保存できたことを確認しました。
リモートでも逐次読み込み、保存できたとは...ありがとうございました。
0413nobodyさん
2011/04/05(火) 17:53:14.48ID:RXGsg7Xbファイルサイズが500MB超えると急激に書き込み速度が落ちるのは何故なんですか?
500MB - 1byteまではベンチ取ったけど速度は一定です
PHPで規制されてるのですか?何故ですか?
0414nobodyさん
2011/04/05(火) 18:09:39.27ID:???memory_limitはどうなってる?
場合によってはOSレベルでメモリスワップが発生しているのかも知れない。
0415nobodyさん
2011/04/06(水) 01:21:13.22ID:tGjaXiheサイトに使いたいCGIを見つけたのですがライブラリが必要だと書いてあったので…
htmlとcssの知識なら少しはあるのですが、PHPは殆どわかりません。
0417nobodyさん
2011/04/06(水) 03:03:27.99ID:???調べてわからなかったから質問しているのですが…
答える気が無いなら黙っててくれませんか?
正直そういう出し惜しみってかなりウザいんで。
0418nobodyさん
2011/04/06(水) 03:24:23.49ID:???本人の能力の問題であって、知る術の問題ではない。
単に能力がないだけ。
素質がない。
いいか、みんな
(゜д゜ )
(| y |)
才能がある奴が努力すると
才能 ( ゜д゜) 努力
\/| y |\/
二つ合わさって天才となる
( ゜д゜) 天才
(\/\/
そして、いいか、みんな
(゜д゜ )
(| y |)
無能な奴が努力すると
無能 ( ゜д゜) 努力
\/| y |\/
二つ合わさって無力となる
( ゜д゜) 無力
(\/\/
0419nobodyさん
2011/04/06(水) 03:29:13.38ID:???0420nobodyさん
2011/04/06(水) 03:32:54.85ID:???0421nobodyさん
2011/04/06(水) 03:40:35.14ID:Zyk6jd4Etwitter APIを利用した投稿後のレスポンスxmlに関してです
$response = $consumer->sendRequest('http://api.twitter.com/1/statuses/update.xml', array('status' => $tweet), 'POST');
($consumerはHTTP_OAuth_Consumerのインスタンス)
@ echo mb_convert_encoding($response->getBody(), 'EUC-JP', 'UTF-8');
$xml = new SimpleXMLElement($response->getBody());
A echo mb_convert_encoding($xml, 'EUC-JP', 'UTF-8');
B echo mb_convert_encoding($xml->status->text, 'EUC-JP', 'UTF-8');
@は表示されるのですが、AやBが表示されなくて困っています
0422421
2011/04/06(水) 03:46:57.73ID:Zyk6jd4E0424nobodyさん
2011/04/06(水) 03:55:17.15ID:???「表示されない」の意味が不明
0425421
2011/04/06(水) 04:06:01.54ID:Zyk6jd4E0426nobodyさん
2011/04/06(水) 04:21:10.08ID:???print_rで確認してみな。
0427nobodyさん
2011/04/06(水) 04:41:31.23ID:???@がechoで表示されるってことは$response->getBody()の戻り値は文字列ってことで
それを次の行でSimpleXMLElementオブジェクトにしているので、
AとBはSimpleXMLElementオブジェクトになっているため、パースしないと文字列として出力することはできない
ところで、$response->getBody()の結果は何が表示されてるの?文字列?XML?
それがXMLならば、Aの前の行に以下を入れれば、Bが表示できる可能性がある。
$xml = simplexml_load_string($xml);
0428nobodyさん
2011/04/06(水) 04:42:55.70ID:???抽出はできているのかな? どうやって抽出できているかを確認しているのかな?
0429426, 427
2011/04/06(水) 04:48:35.53ID:???それならそのXMLをパースすればいいんだよ。パースっていうのは解析って意味ね。
たぶん、new SimpleXMLElement()を使うのはまだ難しいと思うから、
simplexml_load_string();とかsimplexml_load_file();を使ったほうがいいと思う。
ググって使い方を覚えとくといいよ。これは万能で覚えとけば何でもできるようになるから。
0430421
2011/04/06(水) 04:49:16.84ID:Zyk6jd4E>>426の方のprint_rの出力結果を参考に、
echo mb_convert_encoding($xml->text, 'EUC-JP', 'UTF-8');
に変えたらとりあえず表示されるようにはなりました。出力結果を見たらなぜか親要素のstatusがなくなってました
0432nobodyさん
2011/04/06(水) 05:11:10.78ID:???作る人向けのスレだし門前払い食らうのは当たり前よ
0433421
2011/04/06(水) 05:25:03.63ID:Zyk6jd4Eまさにそのとおりです。ありがとうございます。自分では
echo mb_convert_encoding($xml->status->text, 'EUC-JP', 'UTF-8');
でパースしているつもりだったのですが、違ったようでした
このページ ttp://phpspot.net/php/man/php/function.simplexml-load-string.html の例1を例とすると
整形式XML文字列をオブジェクト化しても親要素documentは存在し、$xml->document->titleとなると勘違いしていました
精進します
0434nobodyさん
2011/04/06(水) 09:28:13.87ID:???おまいら質問者に冷たすぎだろ
別に既存のスクリプトについて質問してるわけじゃなくPEARとは何かっていう一般的な質問に過ぎないんだから
せめてこれくらいは
>>3読め
■PEARマニュアル http://pear.php.net/manual/ja/
0435nobodyさん
2011/04/06(水) 09:36:06.40ID:jXnilcjzPEARのライブラリって何ですか?→ http://tinyurl.com/3rbty5m
どうやったら使えますか?→ http://tinyurl.com/3d2nnld
0436nobodyさん
2011/04/06(水) 11:40:02.77ID:???ググれとか言うんだろうな。ググってわかったら質問してないわ
0437nobodyさん
2011/04/06(水) 11:51:22.59ID:???普通の人ならググればわかることだから
0438nobodyさん
2011/04/06(水) 12:02:00.05ID:???0440nobodyさん
2011/04/06(水) 12:26:43.68ID:???ちょろっと覗いただけで「なんで質問スレの奴らって云々」とか言ってまとめられるとか心外すぎ
0441nobodyさん
2011/04/06(水) 12:42:35.31ID:???0442nobodyさん
2011/04/06(水) 12:55:52.13ID:???>>1や>>3を読んでから質問しろというルールも無い
てか>>1とか読まないからルールなんて知らない
0443nobodyさん
2011/04/06(水) 12:56:49.43ID:???0445nobodyさん
2011/04/06(水) 13:52:30.20ID:???http://www.redout.net/data/osietekun.html
0446nobodyさん
2011/04/06(水) 13:57:34.44ID:???0447nobodyさん
2011/04/06(水) 14:17:57.46ID:???ここまでひどいバカ滅多にいないぞ
0448nobodyさん
2011/04/06(水) 14:35:32.90ID:???ついさっき家の前でムホォォォ ウホォォォとか叫びながら歩いてる基地外いたし、ほんとコワイわ
0449nobodyさん
2011/04/06(水) 14:40:13.03ID:???0450nobodyさん
2011/04/06(水) 16:12:08.20ID:???echoってどうやって使うか教えてください
回答者を>>442に指名します
使い方がさっぱり分からないのでサンプル付きでよろしくおねがいします
0451450
2011/04/06(水) 18:09:56.74ID:???0452nobodyさん
2011/04/06(水) 19:20:05.62ID:CfTvqrTNこちらの関数を使ってページを圧縮してみたところ、
IE8では圧縮されずFxでは圧縮されました。
前者では右クリ→プロパティ、後者では右クリ→ページの情報を表示で確認しました。
ChromeやOpera等他のブラウザも調べたかったのですが、
確認方法がわかりませんでしたが、IE以外は対応してると考えていいでしょうか?
2chのページも同じ感じでブラウザから表示して確認したところ、同様の結果になったので、
IEでは対応してないから無理ということなのかもしれませんが、
IEでもページ圧縮を有効にする方法がありませんでしょうか?
0456nobodyさん
2011/04/06(水) 19:39:37.54ID:???マニュアルのそのページ全部読んで試したかい?
Someone previously mentioned that MSIE doesn't cache gzipped content. This is false. He misread the source of information. In fact, IE will cache gzipped content no matter what. Here is the quote from the mailing list:
The reason the COMPRESSED responses are, in fact,
always getting cached no matter what "Vary:" field name
is present is just as I suspected... it is because MSIE
decides it MUST cache responses that arrive with
"Content-Encoding: gzip" because it MUST have a
disk ( cache ) file to work with in order to do the
decompression.
だそうだ。俺は試してないから知らんが。
0457452
2011/04/06(水) 19:47:54.84ID:CfTvqrTNごめんなさい。
翻訳通しましたが何を言ってるのかわからないです。
具体的なコードがあれば理解できるのですが。
ユーザエージェントには、
HTTP_ACCEPT_ENCODING gzip, deflate
とあるので、何らかの方法でなら可能だとは思うんですけど。
0458nobodyさん
2011/04/06(水) 20:19:22.16ID:???英語とプログラムの勉強が同時にできる。
0459nobodyさん
2011/04/06(水) 20:27:34.85ID:???適当にそれらしき英文貼ってごまかすことはよくある
しかしそれは全く的外れである
0460nobodyさん
2011/04/06(水) 20:57:24.75ID:???だからそのページの下の方ずっと読んだの?
サンプルコードも色々出てるじゃん。
Content-Encoding: gzip あたりがヒントになりそうだろ。
何度も言うけど試したわけじゃないから知らんよ。
0461nobodyさん
2011/04/06(水) 21:16:05.72ID:???0462nobodyさん
2011/04/06(水) 21:16:49.29ID:???0463nobodyさん
2011/04/06(水) 21:55:54.14ID:???LDAPでログイン認証等を行っているのですが、不具合があり困っています。
LDAP_BINDを何回かやっていると、接続できなくなります。
エラーの内容は49のLDAP_INVALID_CREDENTIALSです。
アパッチを終了させ、ネットワークアダプタを再起動させないと接続できなくなっていしまいます。
接続は以下のようになっています。
ブラウザhttp → 80 → ローカルPC(xampp1.7.3 apach) → 389 → AD(win2003)
バインドできない間ですが、以下は動作しますのでネットワークの不具合ではないと思っています。
エクスプローラー → ネットワーク → Activedirectory検索
AD連携が不要になった時点、毎回リクエスト後にunbindも必ず行っています。
どなたか、考えうる情報をお願いします。
0464nobodyさん
2011/04/06(水) 21:58:17.63ID:???0465nobodyさん
2011/04/06(水) 21:59:19.02ID:9SLSQWTQ0468463
2011/04/06(水) 22:03:12.31ID:9SLSQWTQたまにドメインでパスワードなしの人がいますが、
LDAPの際にパスワードなしでもbindが成功していまいます。
環境が匿名bindでsearchできない(取得できない)仕様なので、
入力されたID・パスワードでbind後、自身をsearchして取得できたら認証OK
としていますが、どう思いますか?
0472nobodyさん
2011/04/06(水) 23:17:29.22ID:GwYx6Y2Wじゃあ消えろ(^^)
0474nobodyさん
2011/04/07(木) 01:19:22.15ID:T+wF9gWRこのツールってどういう仕組みですか?
AU携帯でURLにアクセスするだけでPOST送信されます。
他のDoCoMo,Softbank,PCなどでは使えないみたいです。
POST送信するサイトがPC禁、Proxy禁にしてあるところでも
このツールで普通にPOST送信できてしまうので、
ソケットではないと思うのですが・・・
てか、ソケットだったらキャリア指定する必要ないですし。。。
というか自分の掲示板にも投稿できました。
リンクのファイル拡張子はcgiで使用されている言語はperlですけど
どうなってるか想像付く人居ますか?
私はPerlではなくPHPで作成したいです。
それとこれをされると普通に連投とかされてしまうので
対策方法も考え付く方居たらお願いします。
0475nobodyさん
2011/04/07(木) 01:25:07.30ID:???0478nobodyさん
2011/04/07(木) 08:35:09.01ID:???消えろと命令されても従う義務はありませんので消えません。
屁理屈ですか。では、そもそも>>1を読む義務が存在しないので、
>>1に書かれているローカルルールは無効です。
2ch全体のルール(規則)であれば、2chの関係者が作成したものなので責任の所在が明確ですが、
このスレのルールを誰かが作ったとして、どこの誰かもわからんような奴が作ったルールなどに
従う義務はない。
0479nobodyさん
2011/04/07(木) 09:10:36.19ID:???このスレでやる以上従うのは義務です
0480nobodyさん
2011/04/07(木) 09:22:06.06ID:???ある意味、法律とかマニュアルとかが整備されすぎなんじゃないかって思う
ルールにのってないからやっても大丈夫とか、○○のルールには従う必要ないとか、常識で考えることもせず
まわりに合わせることができないだけなのに自分かこいいとか思ってる哀れな子増えすぎだよね
俺たち大人がこういう子をぶん殴ってこなかったのも悪いかも知れんね
0481nobodyさん
2011/04/07(木) 09:37:04.52ID:UvKKIzH2問題なくリファラを収集できているのですが、「http://○○.com/referer.dat」など
外部ドメインへ書き込みをしようとするとエラーになってしまいます。
どのように記述すれば外部サーバー内のdatファイルに書き込みできるでしょうか?
//リファラを書き込むファイルを指定
$refererfile="referer.dat"; ←ここで困っています
//接続者のPC環境を取得
$agent = $_SERVER["HTTP_USER_AGENT"];
//接続者のリファラを取得
$referer = $_SERVER["HTTP_REFERER"];
//時間の取得
$wday=time();
$days=date("YmdHi",$wday);
//追記用でファイルを開く
$fp = @fopen($refererfile,"a+");
//ファイルを一時ロック
flock($fp,LOCK_EX);
//書き込み
fputs($fp, $days."|".$referer."|".$agent."\n");
//ロック終了
flock($fp,LOCK_UN);
fclose($fp);
■ このスレッドは過去ログ倉庫に格納されています