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

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

レス数が950を超えています。1000を超えると書き込みができなくなります。
0001nobodyさん2012/09/25(火) 23:39:55.21ID:???
質問者はまず>>1を良く読むこと(必須!)
過去スレ、関連スレ、FAQなどは>>2-10辺り
次スレは>>980が立てる。10分以内に立たない場合、宣言してから立てたい人が立てること。

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

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

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

◆質問後の注意
・2回目以降は最初に質問した際のレス番号を入れて、偽者防止に必ずIDを表示させること。
・解決しなくても回答をもらった場合はお礼を言うこと。
 (荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
0874nobodyさん2012/11/14(水) 15:44:04.85ID:???
スクリプトファイルの文字コードがUTF-8じゃないんだろ
0875nobodyさん2012/11/14(水) 17:18:39.07ID:???
EFBD9Eね
なるほど
0876nobodyさん2012/11/14(水) 17:22:58.46ID:???
Rawデータ、無変換データをbase64でテキストにしとけ
0877nobodyさん2012/11/14(水) 19:46:09.89ID:zP8rSMne
>>862
これさ、文字コードを適切に設定してれば問題なくね?
0878nobodyさん2012/11/14(水) 21:25:11.35ID:???
>>876
いまだにこういうレベルの低いノウハウがサイトに山盛り残ってるんだよな。
間違った対処法で誤魔化したりしてるから、一向に正しい知識がつかない上に、トラブルの元でしかない。

Incorrect string value のエラーを返してるのは mysql側 で \xEF\xBD\x9E が受け取れないって言ってる、
そのうえ、UTF8の他の字ならいいんだろ? DBの設定違い以外に無いじゃないか。
DBの設定をどうやって確認して、どうなってたのか見せてみ。
0879nobodyさん2012/11/14(水) 21:51:21.15ID:JaYxwXt2
TeraTermでさくらインターネットに接続し
下記コマンドを実行すると正常にcakePHP2.0 で定義したシェルが実行される状態です。
%php /home/myaccount/cake/app/Console/cake.php HogeMaster Hoge hikisu_hoge -app /home/myaccount/apps/hogehoge.com

このコマンド実行をcronにてさせようとしていますがやり方が分かりません。

http://memo.mkmin.com/cakephp/?p=13
このサイトを参考に次のシェルを作成し
/home/myaccount/apps/hogehoge.com/Vendor/cron_hoge.sh

< 中身 >
#! /bin/sh
/usr/local/bin/php /home/myaccount/cake/app/Console/cake.php HogeMasteer Hoge aaabbb -app /home/myaccount/apps/hogehoge.com

と定義したんですけど、どうやってこのシェルを実行したらよいのでしょうか?

TeraTerm上から
Vendorのパスまで移動し ./cron_hoge.sh をやろうとしたところPermission deniedのエラーメッセージが表示されてしまいます。
0880nobodyさん2012/11/14(水) 22:20:55.34ID:???
文字コードの設定やデータベース仕様に左右されるのは面倒。
base64_encode(gzdeflate($bindata, 1))か
base64_encode(gzcompress($bindata, 1))
でテキストにして挿入しとけ。
データベース固有のエスケープ(エンコード)関数と比べ、サイズも速度も良い場合が多い。
08818792012/11/14(水) 23:14:29.21ID:JaYxwXt2
自己解決

楽勝でした。
0882nobodyさん2012/11/15(木) 02:14:55.08ID:???
gzdeflateとgzcompressを計測してみた。圧縮率に差はでなく速度でgzdeflateが有利ぽい。

<?php
define('repeat', 1000);
$urls=array(
'http://www.youtube.com/', 'http://www.yahoo.co.jp/', 'http://www.amazon.com/', 'http://jp.msn.com/',
'http://blog-imgs-43-origin.fc2.com/m/a/k/makamaka001/11050050044.jpg',
'http://blog-imgs-32.fc2.com/s/a/n/sannan6666/20080109091130.png',
'http://blog-imgs-19-origin.fc2.com/k/i/t/kitarock/obama.jpg');

$fncs = array('gzdeflate','gzcompress');
$tmp = array('time'=>0, 'size'=>0);
$cnt=array('gzdeflate'=>$tmp,'gzcompress'=>$tmp);
foreach($urls as $url) {
echo "downloading...$url\n";
$data = file_get_contents($url);
foreach($fncs as $fnc) {
echo "measuring in progress...$fnc\n";
timer();
for($n=0;$n<repeat;$n++) $cnt[$fnc]['size']+=strlen($fnc($data, 1));
$cnt[$fnc]['time']+=timer(); }
print_r($cnt); }

function timer() {
static $flg=0,$start=0;
if(!$flg) { $flg=1; $start = microtime(true); return; }
$t0=microtime(true); $t1=$t0-$start; $start=$t0;
return $t1; }
0883nobodyさん2012/11/15(木) 09:09:15.92ID:???
質問させてください。
PHPでMySQLのデータを処理するにあたってですが、
一回のselectクエリで最大何件くらいのデータを取得するのがプログラム的に妥当ですか?
例えば5万件のデータがあるテーブルなら、100件とか1000件とかをLIMIT句で順々に取得した方が安全ですか?
0884nobodyさん2012/11/15(木) 10:26:29.66ID:???
>>1
0885nobodyさん2012/11/15(木) 10:31:30.90ID:???
>>882
そういうのは、自分のblogかなにかでやってください。
削除依頼メンドクサイです。

>>883
1件のデータ量と、マシンの能力と、それで何をするかによる。
そもそも、危険だと思ったのはなぜですか? どこかに書いてある?
0886nobodyさん2012/11/15(木) 11:11:43.95ID:yORZGjm1
>>880
これさ、後でデータを人間が探す時に苦労しねぇ?
0887nobodyさん2012/11/15(木) 11:28:43.46ID:lInARbbJ
質問ではないのですが、
5.3から導入されたネームスペースって
バックスラッシュ区切りですけど、
Perlみたいにコロン2つにできなかったんでしょうか?
何か構文的に問題があるんでしょうか?
0888nobodyさん2012/11/15(木) 12:30:03.26ID:???
データビューアーを別途作るハメになる
0889nobodyさん2012/11/15(木) 12:36:09.34ID:???
コロン2つってクラスメソッドとかクラス変数呼び出すときに使うじゃん
0890nobodyさん2012/11/15(木) 12:48:27.17ID:???
>>887
https://wiki.php.net/rfc/namespaceseparator
0891nobodyさん2012/11/15(木) 12:54:48.50ID:???
>>889
それと同じ記号ではいけない理由は?
0892nobodyさん2012/11/15(木) 13:47:11.66ID:???
x.xxから導入されたネームスペースって
コロン2つ区切りですけど、
xxxxみたいにバックスラッシュにできなかったんでしょうか?
何か構文的に問題があるんでしょうか?

という質問に変わるだけだw
0893nobodyさん2012/11/15(木) 16:54:55.29ID:???
メインの実行ファイルからクラスを読み込んでインスタンス作成した後、そのインスタンス中で別のクラスが必要になる時にはどのように呼ぶのが適切なのでしょうか?

1. requireはメインに戻ってする? ローダークラスなど作ってその中でrequire?
2. newはインスタンス内でする? メインでnewしてインスタンスに渡す?

こういった孫オブジェクト的なものの扱いがよくわかりません。どうかご教授ください。
0894nobodyさん2012/11/15(木) 22:32:28.41ID:???
>>1もスレタイすらも読まないのは何故なのでしょうか。どうかご教授ください。
0895nobodyさん2012/11/16(金) 17:29:17.42ID:???
>>888
お前みたいな荒らしをあぶりだすためですはい
0896nobodyさん2012/11/16(金) 19:13:09.15ID:3ZAHI2sw
スクレイピングを行う場合、
外部ライブラリを使わずに地道にHTMLコード解析して文字列操作で
今取得していますが、こういったスクレイピング方法はやはり邪道なのでしょうか?
0897nobodyさん2012/11/16(金) 21:23:01.15ID:???
いいえ邪道ではありません。
0898nobodyさん2012/11/16(金) 23:14:10.21ID:???
888のどこが荒らしやねん
0899nobodyさん2012/11/17(土) 11:02:06.99ID:???
>>896
邪道も何もそこらにあるライブラリより優れてるものなら自分で作ればいい
有名なHTMLパーサでも一部のHTML解釈できなかったりするしね
それ以下のものしか使えないなら外部ライブラリに頼ってもいい、その程度
0900nobodyさん2012/11/17(土) 11:54:05.69ID:???
厳密に解析してDOMツリーまで作るか、
速度重視で正規表現で狙うか、
作ったものを再利用するか、
対象HTMLの構造はコロコロ変わるか、
とかいろいろある
0901nobodyさん2012/11/17(土) 14:21:13.20ID:Q83xuEL3
ヘッダ部分だけmysql+phpで管理したいのですが、
一々ページタイトルなどをmysqlから引き出すとかなりの負荷がかかってしまいます。
Wordpressなどはどのように記述しているのでしょうか?
0902nobodyさん2012/11/17(土) 14:33:07.69ID:Q83xuEL3
タイトル,metaなどを
ページURL取得→mysqlに問い合わせ→データ表示
というようにやっていきたいのです。
0903nobodyさん2012/11/17(土) 14:52:18.25ID:???
かなりの負荷って何だよ?Wordpressはクソ重いだろ
どのように記述されてるかは、オープンソースだから見りゃ分かるでしょ
毎回DBアクセスするのがイヤならキャッシュ化すればいい

header部分だけ取得するくらいで負荷がどうとか言い出したら何も作れんぞ
0904nobodyさん2012/11/17(土) 15:13:04.31ID:Q83xuEL3
そうですね。ありがとうございます。
キャッシュ化はよくわからないので、毎回DBにアクセスすることにします。
0905nobodyさん2012/11/17(土) 19:16:49.98ID:???
>>901
他人に迷惑掛けるような奴は鮮人認定されて当然じゃね?
俺何も間違った事いって無くね?
0906nobodyさん2012/11/17(土) 19:24:00.26ID:???
話がマジで噛み合ってないんだけど、お前らの中ではコミュニケーションとれてるの?
ほんとphp厨ってマジキチしかいないのな。
だからphpユーザーじゃなくてphp厨って呼ばれるんだよ。
0907nobodyさん2012/11/17(土) 19:42:48.32ID:???
自分に言ってんのか?
0908nobodyさん2012/11/17(土) 22:35:25.46ID:nrePNH6L
規制は解除されたかな?
0909nobodyさん2012/11/17(土) 23:49:38.04ID:nrePNH6L
WEBサーバ上のphpスクリプト

http://sub.mannkodaisuki.com?word=manko

とアクセスすると

http://sub.mannkodaisuki.com/?word=manko

という風に「/」が「?」の前に挿入されてしまうんですけど
これって仕様なんでしょうか?

どうも気持ち悪いです。そもそもURLとして正しく無い気がしておりますが
実際のところW3Cの規約的にはどうなのでしょうか?
0910nobodyさん2012/11/17(土) 23:58:40.45ID:???
スラッシュはディレクトリ名
0911nobodyさん2012/11/18(日) 00:09:44.88ID:fIpttR/I
>>910
という事は、

http://sub.mannkodaisuki.com/?word=manko

と自動で書き換えられるURLは別に不正では無いとい事でしょうか?
0912nobodyさん2012/11/18(日) 00:27:43.82ID:???
俺は .com?word= の方が気持ち悪い
0913nobodyさん2012/11/18(日) 00:28:48.96ID:???
HTTPプロトコルを勉強しなさい

スラッシュが必要な理由がはっきり分かるはず
0914nobodyさん2012/11/18(日) 00:31:12.82ID:???
ヒント


GET / HTTP/1.0
...

GET /?word=hoge HTTP/1.0
...
0915nobodyさん2012/11/18(日) 01:55:42.44ID:???
>>909
むしろ最初のURLのほうがおかしい
0916nobodyさん2012/11/18(日) 02:46:57.91ID:???
PHP関係ないし
0917nobodyさん2012/11/18(日) 02:48:07.67ID:???
>>911
それ書き換えちゃう
リダイレクトや
トラヒックの無駄遣いや
0918nobodyさん2012/11/18(日) 03:38:51.97ID:???
キチガイペチパーはHTTPのリクエストヘッダも知らないし調べようともしないんだなw
お前色々終わってるよww
0919nobodyさん2012/11/18(日) 03:49:15.81ID:???
>>917
リダイレクトはされてなくね……?
0920nobodyさん2012/11/18(日) 04:34:12.41ID:???
>>919
今のブラウザはリクエスト前に勝手にスラッシュつけてくれてますね
昔はサーバーがリダイレクトしなかったらエラーになってたような記憶が
0921nobodyさん2012/11/18(日) 06:33:10.02ID:???
せつこ、それURLやない
0922nobodyさん2012/11/18(日) 07:42:11.16ID:???
フォルダ名がないのにフォルダだったらリダイレクトが発生する
0923nobodyさん2012/11/18(日) 17:45:02.18ID:???
CC=30
BCC=chg
TO=frank
AA=ggg

のように、キー=値が改行区切りでたくさん入っているテキストファイルがあり
それを、「CCの値は**で、BCCの値は**で、」のように、**の部分をphpで自動的に入力させたいのです。
キーは変更されませんが削除の可能性はあり、削除の場合は、「-」などと入力させたいです。
値は後々、変更を加える可能性があります。
09249232012/11/18(日) 17:45:28.77ID:b+JMfR6z
どのようにすれば、実現出来るでしょうか、教えてください。
0925nobodyさん2012/11/18(日) 17:47:52.63ID:???
>>923
どこまでできんの?
それとも丸投げ?
09269232012/11/18(日) 17:50:30.45ID:b+JMfR6z
>>925
どういう風に作れば良いのか、教えていただければ
PHPの基本的な構文はわかっているので、後は自分で作れると思います
0927nobodyさん2012/11/18(日) 18:06:42.31ID:???
アルゴリズムを書いてみろ
添削してやる
0928nobodyさん2012/11/18(日) 18:23:17.98ID:???
iniファイルを読み込むだけなら
http://toro.2ch.net/test/read.cgi/hp/1351174578/316
09299232012/11/18(日) 18:29:57.37ID:b+JMfR6z
>>928
参考にしてやってみます!
0930nobodyさん2012/11/18(日) 19:17:09.81ID:???
迷惑メール送ってくるサーバーをダウンさせたいんだけど、
phpでやれますか?
ってかどこで聞いたらいいですかね?
0931nobodyさん2012/11/18(日) 19:24:07.22ID:???
>>930
サーバーに攻撃ツールをインストールして
PHPからはコマンドで叩くくらいしないと…

PHP単体ならせいぜいF5アタックくらいしかできないと思います
0932nobodyさん2012/11/18(日) 19:26:46.61ID:???
>>931
メドアからサーバーを特定できるのですか?
迷惑メール対策に「なりすまし」とか言うのもあるので、
その辺の、本格的なことはさっぱり分かりません。
phpってサーバー側と聞いているので結構な攻撃ができるのではない
かと考えています。
0933nobodyさん2012/11/18(日) 19:39:23.96ID:???
>>932
メールサーバーのログみたら克明に向こうのIPアドレス載ってる
なりすまメールもIPまでなりすませないし

ただ大半は故意にスパムメール送ってるんじゃなくて
スパマーに不正中継されてるだけだったりするので
無条件に攻撃対象にはできない…
0934nobodyさん2012/11/18(日) 19:54:42.03ID:???
>>933
ドコモのケータイのメールサーバーのログって
どうやって見るんですか?
0935nobodyさん2012/11/18(日) 20:11:31.82ID:???
>>934
自分のサーバーじゃないのか…
\(^o^)/
0936nobodyさん2012/11/18(日) 20:37:16.88ID:???
\(^o^)/
0937nobodyさん2012/11/18(日) 23:19:33.18ID:???
>>1も読めないクズ野郎の>>930にレスしてる奴は荒らし
しかもphpでって・・・
0938nobodyさん2012/11/18(日) 23:48:47.51ID:???
電子計算機損壊等業務妨害
電子計算機損壊等業務妨害幇助
0939nobodyさん2012/11/19(月) 10:48:02.73ID:???
中学生ならしょうがないw
0940nobodyさん2012/11/19(月) 14:32:26.15ID:???
PHPerならしょうがないw
0941nobodyさん2012/11/19(月) 17:45:44.38ID:???
PHPでサイトを作るのが初めての初心者なのですが

色々な飲食店の店員さんが自分で自分の店の情報を修正できる飲食店情報を作っております。
PHPとMYSQLを使った、ログイン認証システムを作りたいのですが、行き詰っております。


どこかのサイトや、おススメの本などで、ソースコード(できれば猿でもわかる解説も)が載っているところはないでしょうか?

教えていただけると助かります。よろしくお願いいたします。
0942nobodyさん2012/11/19(月) 17:51:08.60ID:BtGSfFey
>>941
そのレベルなら外注した方が良いと思うけど、PHP基礎から勉強したいっていうんなら
http://www.flzphp.com/
俺は最初このサイト見て始めたよ
0943nobodyさん2012/11/19(月) 18:15:02.02ID:???
やめといたほうはががぐぁrhばえzrhばztfrthばえdfr
0944nobodyさん2012/11/19(月) 18:37:35.68ID:???
素人がシステム開発とかおそろしいな
0945nobodyさん2012/11/19(月) 18:39:05.99ID:BtGSfFey
まあログイン認証ならPear使えば簡単にできるからな
他の部分が問題だと思うわ
0946nobodyさん2012/11/19(月) 19:07:55.52ID:HivB7EyV
0947nobodyさん2012/11/19(月) 19:21:41.70ID:rwL97+Id
FuelPHPのAuthがすごい使いやすかった
0948nobodyさん2012/11/19(月) 19:22:35.72ID:???
ログイン認証なんて適当なframework使えばそれで済む話だろ
初心者が自分で作るより遥かに信頼性がある
ソースも見れるしここで聞く話じゃないな
0949nobodyさん2012/11/19(月) 20:19:48.16ID:???
fgetsって1行読んで、ファイルを閉じないまま
また、1行読み込んだら2行目が返されるの?
0950nobodyさん2012/11/19(月) 21:29:44.33ID:???
>>1
0951nobodyさん2012/11/20(火) 15:11:23.22ID:???
スレタイすら読めない奴は、何をやっても駄目
09529232012/11/20(火) 15:24:07.52ID:???
失礼します・・・
ある程度、xampp上で動作確認が取れた所でレンタルサーバーにファイルをアップロードしてみたのですが上手く動いてくれません。
http://iki.snapmix.jp/
レンタルサーバーでは、このように、表が1行しか作成されません

http://gyazo.com/4c224f7087159a31e7b1669b04ce5b4e
本来はこのようになるはずです

試行錯誤してみた結果、
foreach($data_array as $k => $v){
echo $k;
echo $v;
}
この部分がうまく動いていないようです。
どのようにすればレンタルサーバー上でもきちんと動くようになるのでしょうか。
ソースコードは以下URLのものです。
http://iki.snapmix.jp/source.txt
0953nobodyさん2012/11/20(火) 15:41:16.08ID:???
>>1
09549232012/11/20(火) 15:58:57.55ID:Uya9dRFt
サーバーの方でphpinfo()してみました・・。
テスト環境の方が5.38で、サーバー側が5.2.13でした。
バージョンの違いによるものなのでしょうか・・・。
0955nobodyさん2012/11/20(火) 16:04:10.33ID:???
問題が出る最小の構成で試せない?
09569232012/11/20(火) 16:15:38.41ID:Uya9dRFt
>>955
再現してみます
09579232012/11/20(火) 16:34:36.20ID:Uya9dRFt
http://iki.snapmix.jp/iniget/
最小の構成でいくとこんなかんじです。
<hr>より上が実行結果で、下がソースコードです。

echo $lines[1] が BBS_TITLE=私のニュース速報@2ch掲示板
echo $kが空白
echo $vがArrayになります

localhostで実行した時は、$kにBBS_TITLEが入っているので、2行目は空白ではなく、BBS_TITLEになります
09589232012/11/20(火) 16:40:54.08ID:Uya9dRFt
すみません、ちょっとソースおかしかったですね・・・、直しました
$vは私のニュース速報@2ch掲示板です
連想配列のキーをforeachで抜き出せないみたいなんです。
0959nobodyさん2012/11/20(火) 16:59:57.99ID:???
そもそもサーバの方で外のサイトから取ってくるとこまでできてんの?
09609232012/11/20(火) 17:01:21.99ID:Uya9dRFt
>>959
echo $lines[1]が正常に動作してるので、そこまではいけてると思います
わざわざ外部から拾ってこなくても、直接文字列入れても良かったですね・・・
なおします
09619232012/11/20(火) 17:10:17.21ID:Uya9dRFt
http://iki.snapmix.jp/iniget/
foreachも関係なかったみたいです・・。
$keyに値が入ってませんね・・・。
0962nobodyさん2012/11/20(火) 17:21:39.37ID:???
strstr に渡してる$lines がなんで$lines[1]なのさ?
09639232012/11/20(火) 17:23:17.03ID:Uya9dRFt
>>962
すみません、コピペした後phpの方しか修正してませんでした。
ソースの方はちゃんと$linesになっています。
0964nobodyさん2012/11/20(火) 17:23:46.06ID:???
file で読み込みするならfopenいらないと思ったが…
ファイルポインタを取得して何処でも使ってないw

$lines = file($url); の後に var_dump($lines) を追加して中身みてみないとなー
0965nobodyさん2012/11/20(火) 17:26:48.19ID:???
そのレンタルサイトで strstr がうまく動いてない、ということかな。
アルファベットだけでやってみて
09669232012/11/20(火) 17:27:05.18ID:Uya9dRFt
>>964
あ、、ホントだ。
fopenは入りませんでしたね・・・。解説サイトのものをコピペ、改変して使ってたので気付きませんでした。
file読み込み関連ではないようです。
今、>>961のURLのソースまでエラーの範囲が狭まっていて、$keyに値が何故入らないのかわからない状況です
09679232012/11/20(火) 17:29:14.76ID:Uya9dRFt
>>965
多分、strstrが原因だと思いますが、$valの方には入って、$keyの方に入らないのはどうしてなのでしょうか
0968nobodyさん2012/11/20(火) 17:30:41.78ID:???
2chコピペサイトでも作るつもりかね
0969nobodyさん2012/11/20(火) 17:34:01.97ID:???
keyという名前も替えてみては
09709232012/11/20(火) 17:36:51.81ID:Uya9dRFt
>>969
ダメでした。
http://iki.snapmix.jp/iniget/
$b = strstr("abcd=efgh",'=',true);でも通らないので、strstrの第三引数をtrueにすると、ダメなようです。
0971nobodyさん2012/11/20(火) 17:45:45.77ID:???
まああきらめてsplitでも使ったら、、って非推奨になってたのか。
explode か preg_split でどうか。
0972nobodyさん2012/11/20(火) 17:46:04.34ID:???
>>961 でsyntax error でてないか?

echo $a;."<br>"; $a;. となっている部分 
0973nobodyさん2012/11/20(火) 17:49:05.03ID:???
パラメタに=があるとやっかいか、、2個以上になったら工夫がいるな
レス数が950を超えています。1000を超えると書き込みができなくなります。