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

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

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

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

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

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

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

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

【その他諸注意】
・SQL・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
0577nobodyさん2013/11/27(水) 23:35:56.40ID:???
>>576
まぁまぁ
0578nobodyさん2013/11/28(木) 00:34:21.10ID:HGMmiVb1
皆さんのやり取りを見ていて一つ疑問が
exif情報を消して保存した後にauto orientをしたくなった場合はどうすれば良いのでしょうか?
つまりEXIF削除し元データとして保存しその後別のサイズで画像を作りたくなった場合です
根本的にorientation情報だけ残して他を消すという方法はないのでしょうか?
0579nobodyさん2013/11/28(木) 01:10:06.24ID:???
>>578
EXIF情報のorientationはおまけ
消したらその方向はもうわからない。

>根本的にorientation情報だけ残して他を消すという方法はないのでしょうか?
ない。

>つまりEXIF削除し元データとして保存しその後別のサイズで画像を作りたくなった場合です
リサイズするだけで良いでしょうに、元データと同じ方向にはなるよ
0580nobodyさん2013/11/28(木) 01:21:26.95ID:HGMmiVb1
>>579
非常に助かりました。ありがとうございます。
上記で言う所の元データ保存時には、auto-orientで方向の情報がついたものが保存されるということでしょうか
auto-orientというのはEXIF情報から違うところへ方向情報を移し替えるものという理解になりつつあります
0581nobodyさん2013/11/28(木) 01:24:20.70ID:???
>>580
>auto-orientというのはEXIF情報から違うところへ方向情報を移し替えるものという理解になりつつあります
auto-orientは実物の画像を回転させるの。物理的に

本来画像にEXIFで向きなんて必要ない。元の画像がその方向を向いてれば良いだけ。
0582nobodyさん2013/11/28(木) 01:27:33.55ID:HGMmiVb1
>>581
ありがとうございます。
PHPからは少し話題が外れてしまいますが、実践では欠かせないポイントとなりそうですね
助かりました。
0583nobodyさん2013/11/28(木) 01:35:55.37ID:???
>>582
EXIFに関しては>>448が完璧。これはEXIFの宿命

EXIFのorientation情報で回転させるかは要件次第だからむやみにやるものではないってのも認識すべき
0584nobodyさん2013/11/28(木) 01:45:42.77ID:HGMmiVb1
>>448さんのコメントからすると、とりあえず消してOKということですね
私の場合はユーザーが意図した方向を向いてアップロードされていれば良いという要件だけなのでauto-arientを活用させていただきたいと思います。
0585nobodyさん2013/11/28(木) 07:02:39.50ID:???
なんだ、ちゃんと質問できんじゃん
0586nobodyさん2013/11/28(木) 10:05:08.57ID:???
人格が入れ替わっトルw
0587nobodyさん2013/11/29(金) 11:14:51.89ID:???
久々に見に来てみたら、PHPと関係ない話で盛り上がってた。
95%以上、データ取扱の仕様の話じゃん。
0588nobodyさん2013/11/29(金) 23:35:44.90ID:???
>>587
そして俺とお前のようにゴミしかいなくなった
0589nobodyさん2013/11/30(土) 10:06:52.02ID:W5pThAv1
【OS名】FreeBSD 9.1-RELEASE-p7 amd64
【PHPのバージョン】5.3
[mysql]5.5

古いサーバーから新しいサーバーへサイトを移転したんですが、何故かDBのデータが表示出来ません。
Mysqlのデフォルト文字コードはutf8なんですが、set names ujisとデータベースに接続した時にクエリーを発行しています。
サイトの管理画面である設定を更新した所、DBへはデータが更新されてるんですがなぜかPHP経由で表示しようとすると出力出来ません。
(phpMyadminで確認)
set namesで以前は古いサイトを新しいサーバーへ移転した時は問題なかったんですが、今回のサイトだけは上手く行きません。
DBのデータをprint_rで見たところ、日本語だけ出力出来ないようです。
何か解決策はあるんでしょうか?
0590nobodyさん2013/11/30(土) 10:13:17.46ID:???
set names utf8
0591nobodyさん2013/11/30(土) 10:28:57.00ID:???
set names utf8 は使うな
0592nobodyさん2013/11/30(土) 12:14:34.97ID:???
http://jp.php.net/manual/ja/function.mysql-set-charset.php
0593nobodyさん2013/11/30(土) 12:58:27.16ID:R4pRLN+y
【OS名】win7
【PHPのバージョン】5.3

PHP+MYSQLで掲示板を作成・運営してます。所が、外国の人から
スパムコメントをされる事があり、日本語以外のコメントは受付ないように
設定した所、英語+ソニーのようにこちらの対応をかいくぐってスパム
コメントを残されてしまいました。
当然、ipでその都度BANしているのですが、イタチごっこです。
やはり画像認証等を導入すべきでしょうか?
0594nobodyさん2013/11/30(土) 13:47:43.76ID:???
>>593
それはお前が決めることだ
0595nobodyさん2013/11/30(土) 14:36:43.64ID:???
ドメインで、国外を排除したら?
0596nobodyさん2013/11/30(土) 15:06:05.97ID:???
>>595
.comはどうすんの?
0597nobodyさん2013/11/30(土) 15:08:12.49ID:???
ipで国判定して弾くとか
geoipってあったきがする
0598nobodyさん2013/11/30(土) 15:15:38.61ID:???
掲示板やブログコメで画像認証ってハードル高いよな
「じゃあ書くのやめるわ」って思われるのがオチ
0599nobodyさん2013/11/30(土) 15:21:56.14ID:???
お前らが今書き込んでる2chはどうやって海外IPを弾いてるかも知らんのか・・・
まともな解答者いねーな、ここは。
0600nobodyさん2013/11/30(土) 15:30:01.18ID:???
>>599
海外IPを弾くのがベストアンサーとは限らんだろ。
海外に住んでる日本人や外国人と交流するサイトもあるんだから。
自分の視野の狭さに気づかず上から目線とか恥ずかしいね。
そもそも英語のコメが海外のIP発とも限らんし。
0601nobodyさん2013/11/30(土) 15:30:01.43ID:???
2chは海外ipウェルカムでしょアメリカ合衆国とかドイツとか
地域表示欄に度々表示されてるがな
0602nobodyさん2013/11/30(土) 15:48:55.88ID:???
>>599
恥ずかしいw
0603nobodyさん2013/11/30(土) 15:54:24.18ID:???
>>593
スパムがbotなら、JavaScript+PHPでbotか人かを判別できるよ。
たとえば、投稿ボタンがクリックされたら、仕込んだトークン値をJavaScriptで加工してからPOSTで送信。
PHPでは、その加工したトークンの値が正しいかを確認。
これだけでも随分スパムは減るよ。
0604nobodyさん2013/11/30(土) 23:11:17.51ID:HGPAKAoD
(>>)1,2,3は「array(1,2,3)」、(>>)4-10は「array(4,5,6,7,8,9,10)」
というように2chの投稿にある安価の数字から配列を作りたいのですが、
(>>)1,2,3,4-10,11,12
というようなアンカーを処理するにはどうすればいいでしょうか?

カンマでexplode()して配列ループ、ハイフンがあったら分割して
range()する三度手間しないといけないでしょうか?
0605nobodyさん2013/11/30(土) 23:55:12.81ID:???
>>604
どんな風になったらいいと思ってるの?
0606nobodyさん2013/12/01(日) 22:09:29.70ID:???
>>603
JavaScriptオフの人は・・・
まあ今どきそんな人考えなくてもいいのかね
0607nobodyさん2013/12/01(日) 22:33:57.70ID:AEFe7KWl
YouTubeのリンク先の動画が消されてるかどうかを調べる事ってPHPでできる?
0608nobodyさん2013/12/01(日) 22:39:02.70ID:???
>>607
×できる?
○できますか?
0609nobodyさん2013/12/01(日) 23:19:23.69ID:???
>>607
出来る。
でもめんどくさい
0610nobodyさん2013/12/01(日) 23:23:31.98ID:???
>>606
ワンタイムトークンをhiddenに入れときゃいい
トークンまで読み取るSPAMなら負けを認める
0611nobodyさん2013/12/02(月) 03:01:40.84ID:???
JavaScriptを解釈するHTTPクライアントは難しいけど
hiddenフィールド読みとりは簡単で対策にはならんな
0612nobodyさん2013/12/02(月) 06:49:31.44ID:dhG1eR96
$fp = fsockopen('tls://smtp.gmail.com', 465, $errno, $errstr);
//echo fread($fp, 4096);
fwrite($fp, "EHLO localhost\r\n");
echo fread($fp, 4096);

こんな感じで2行目のfreadをコメントアウトすると
4行目のfreadには3行目のEHLOのレスポンスは含んでおらず
1行目でソケット接続した際のwelcomeメッセージが返ってくるだけになり
スクリプトが進行していないように思えます
これはソケット接続の際とfwriteをした際には
毎回freadを使わないといけないのでしょうか?
0613nobodyさん2013/12/02(月) 06:57:23.29ID:???
は?
0614nobodyさん2013/12/02(月) 11:57:12.20ID:???
配列定義のリテラルが十年も拒否られ続けた理由って何?
一度聞いた気がするけどあまりに昔のことなので忘れてしまった
0615nobodyさん2013/12/02(月) 13:19:06.81ID:???
>>614
同じ事をするために複数の構文は要らない
0616nobodyさん2013/12/02(月) 14:03:16.04ID:???
>>612
4行目のfreadの後でもう一回freadしてみ
0617nobodyさん2013/12/02(月) 19:40:09.11ID:dhG1eR96
>>616
レスありがとうございます
fsockopenの1回+fwriteした回数分freadしたら全部表示されました
ということはちゃんとリクエストは到達してるということなんですね
fread使うのは直前のコマンドのレスポンスでエラー処理や条件分岐なんかをするだけで
正常に実行されてるなら使わなくても問題なさそうですね
どうもありがとうございました
0618nobodyさん2013/12/02(月) 20:08:52.31ID:???
>>614
あの言語とかあの言語っぽくなるから
0619nobodyさん2013/12/02(月) 20:42:19.34ID:???
>>617
直前のコマンドのレスポンスが返ってくるの?
君の質問と矛盾しているように見えるが
0620nobodyさん2013/12/02(月) 21:04:34.95ID:???
>>619
お前言いたいことはわかってるのにわざと揚げ足取る友達いないタイプだろ
0621nobodyさん2013/12/02(月) 21:59:28.38ID:???
いや、fsockopenの仕様なんて知らないけど文章読んでるだけで矛盾があったから聞いただけだけど・・・
何なのこの人・・・
0622nobodyさん2013/12/02(月) 23:57:27.93ID:???
>>617
やろうとしてることって、直前のレスポンスが取れるまでぐるぐる読むってことだよね。
気持ち悪いしメモリにも悪いんで都度レスポンスは読んでください。
内部使用しらないけど、ソケットバッファあふれてもしらないよ
06236122013/12/03(火) 02:01:56.77ID:Fpfk36ag
日付変わってるのでID変わってると思いますが612です

>>619
freadを使う目的としての話をしました
コマンド実行後freadすれば直前のが返ってくるという意味ではありません

>>622
fsockopenの使用例と関連関数ではいまいち使い方がわからなくて
おかしなこと書いてたらすみません
>>617は>>616にヒントを頂いてそう書いたのですが
都度レスポンスを読むとは>>612の最後の2行で言ってることでよいということなのでしょうか?
それともfreadの使い方や使う関数間違ってますか?
0624nobodyさん2013/12/03(火) 02:53:04.73ID:???
>>623
向こうが送ってきたデータは読み取り用のバッファに消えずに蓄積されると思いなさい
06256122013/12/03(火) 07:21:36.31ID:Fpfk36ag
>>624
なるほどだいたいイメージが掴めました
レスポンスが必要なくてもfreadは使ってどんどんデータを消していくってことですね
レスポンスが必要ない場合>>612のコメントとechoを外した感じのソースでやろうと思います
ありがとうございました
0626nobodyさん2013/12/03(火) 15:49:16.46ID:???
https://paiza.jp/poh/ec-campaign

言語 最速実行時間 最遅実行時間 受験数
Java 0.07 秒 0.59 秒 293
PHP 0.01 秒 9.08 秒 295
Ruby 0.02 秒 9.47 秒 274
Python 0.08 秒 9.61 秒 302
Perl 0.02 秒 8.56 秒 183
C 0.01 秒 0.08 秒 205
C++ 0.01 秒 2.05 秒 453
C# 0.04 秒 2.95 秒 159


PHPってCやC++と同じくらい速いんだな(驚愕)
Ruby(笑)Python()
0627nobodyさん2013/12/03(火) 16:08:23.59ID:???
多言語を貶す人ってちょっとおかしいよね。
0628nobodyさん2013/12/03(火) 16:42:06.00ID:c8Q9t4rO
formからボタン押して、PHPでファイルのダウンロードダイアログを出した時って、
画面の更新されないけど、これってダウンロードダイアログ出さずに意図的に行えないですか?
ダウンロードとは全く関係ない、formからのボタンを押した際、画面の更新無しで処理進めてほしいんだけど。
0629nobodyさん2013/12/03(火) 16:51:33.64ID:???
>>626
あの記事に450人は釣られたってことか
何やってんだか
0630nobodyさん2013/12/03(火) 17:28:16.50ID:???
>>626
CとC++は2.5倍の試行回数じゃないか?
0631nobodyさん2013/12/03(火) 17:48:59.09ID:???
PHPがJavaやC#に勝てるはずないじゃん。
実行時に文法チェックしてんだから。
0632nobodyさん2013/12/04(水) 00:34:32.24ID:???
定期的にこういう話題出るけどもう秋田
0633nobodyさん2013/12/04(水) 03:38:21.32ID:RQaJn6C5
捨て台詞を標準エラー出力に吐いてプログラムを終了する関数ってありますか?die()みたいな感じのです
fputs(STDERR,"aa")を使って自前で作るしか無いですかね?
0634nobodyさん2013/12/04(水) 04:21:08.49ID:???
http://php.net/manual/ja/function.exit.php
0635nobodyさん2013/12/04(水) 07:20:30.17ID:???
die()
0636nobodyさん2013/12/04(水) 08:49:45.88ID:???
>>635
通報した
0637nobodyさん2013/12/04(水) 12:34:33.47ID:PBvUKlOP
>>628ですけど答えがわからず困ってます。
他で聞いてみますありがとうございました。
0638nobodyさん2013/12/04(水) 13:43:53.74ID:???
>>637
セキュリティのためだから無理
0639nobodyさん2013/12/04(水) 13:44:56.75ID:???
ってダウンロードの話じゃないのか
Ajaxで
0640nobodyさん2013/12/04(水) 18:51:38.51ID:???
rssで画像表示させたいんだけど、simplexmlって関数じゃ出来ないかな?
0641nobodyさん2013/12/04(水) 23:58:15.96ID:???
言語も関数も関係ないわ。RSS 仕様 でググれ。
0642nobodyさん2013/12/05(木) 00:13:39.15ID:???
PHPの関数なら実装しかねないからなそういうの
0643nobodyさん2013/12/05(木) 00:59:46.01ID:???
文字列の加工は正規表現でいいじゃん
正規表現使えるならxml関数使う必要ない
0644nobodyさん2013/12/05(木) 03:49:17.06ID:???
>>1読まないやつに答えるな
0645nobodyさん2013/12/06(金) 04:34:47.39ID:KKHOJGxq
file get contentsをログインが必要なサイトで使いたいです
ログイン画面でurlにidとpasswordのパラメータ含めてログインして、目的のページに遷移してからfile get contentsしてもログインしてない状態のhtmlを取得してしまいます
何か知恵を下さい お願いします
0646nobodyさん2013/12/06(金) 06:15:05.28ID:???
第三引数のcontextを作成してクッキー食わせろ
まぁcurlでやるのがより簡単だろう
0647nobodyさん2013/12/06(金) 09:59:38.77ID:Z8WCy1ZX
超初心者ですみません。
ファイルを読み込んで、ファイルの中身が10文字以下の場合、アラートを出したいのです。
以下のようにしてしまうと、一行が10文字以下の場合になってしまいます。
hogehoge.txt全体で10文字以下の場合にアラートを出すようにするには、どのようにしたらよいでしょうか?

$file_name = "hogehoge.txt";

$fp = fopen($file_name, "r");
while ($line = fgets($fp)) {
アラートを出す処理;
}
fclose($fp);
0648nobodyさん2013/12/06(金) 10:09:43.12ID:???
10文字ってのが10バイトでいいならfilesizeでやれば?
そのコードでやるならwhile内で文字数カウントしてループ外でアラートを出せばいい
0649nobodyさん2013/12/06(金) 10:10:14.01ID:???
whileの後
0650nobodyさん2013/12/06(金) 10:23:34.34ID:???
マルチバイト文字は考慮するのかうんぬん
0651nobodyさん2013/12/06(金) 11:47:05.85ID:???
>>647
$data=file_get _contents("./hoge.txt")

if(strlen($data)<10){
echo "alert";
die();
}
0652nobodyさん2013/12/06(金) 11:56:38.20ID:???
マルチバイト考慮するならmb_strlenを使う
10文字以下なので<=もしくは11にする
echoのあとにdieとか冗長die('alert')でよい
0653nobodyさん2013/12/06(金) 12:48:47.10ID:???
curlでcookie使う時にCURLOPT_COOKIESESSIONってcookie受信する時はtrueで
送信する時はfalseでいいですか?
0654nobodyさん2013/12/06(金) 13:21:29.61ID:KKHOJGxq
>>646
ありがとうございます
できればそのcurlでの具体的なプログラムを記述して頂ければ幸いです
0655nobodyさん2013/12/06(金) 13:26:01.71ID:???
curl php cookieとかでぐぐれよ
0656nobodyさん2013/12/06(金) 13:32:47.14ID:KKHOJGxq
ごめんなさい
ググってきます
0657nobodyさん2013/12/06(金) 19:59:55.57ID:bFPQLUri
質問です
curlでログイン処理をしているのですが、ログイン失敗してもエラーが出ません。
どうしたらエラーがでますか?よろしくお願いします。
0658nobodyさん2013/12/06(金) 22:49:00.32ID:???
>>657
ID変わってるが>>654だろ?
>>1-4 を読め。テンプレうめろ。ルールも守れないなら人に頼るな。
自分の仕事を人に無料で書かせてコピペで済ませようとすんな。
0659nobodyさん2013/12/07(土) 02:33:21.08ID:f05rVb/u
>>658
656ですけど657は私ではありませんよ
0660nobodyさん2013/12/07(土) 02:52:12.25ID:epRjxDfQ
いや私が656です
自己解決しました
0661nobodyさん2013/12/07(土) 07:57:51.95ID:???
ログイン失敗してもエラーが出ないってそりゃそうだろ
PHP側で問題がおきてるわけじゃないしな
相手サイトのログイン失敗時のメッセージでもソース中から探し出すしかないわな
0662nobodyさん2013/12/07(土) 08:01:32.52ID:Pb/7pHpN
みなさん騙されないでください、私が本人です。
違う場所で質問して回答貰えたのでここでの回答受付は終了します。
0663nobodyさん2013/12/07(土) 08:11:31.96ID:???
つまらないし誰もそんな低レベルな自演煽りなんて相手にしないのでさっさと帰りな
0664nobodyさん2013/12/07(土) 12:46:47.91ID:???
回答受付って何様こいつ。心配しなくても誰も答えんよ。
0665nobodyさん2013/12/07(土) 21:18:32.99ID:???
header関数でページ遷移したいのですがうまく行きません。
a.phpからb.phpに遷移したいのですが、遷移せずにhtmlとbodyだけが出力された状態になります。(エラーメッセージは出ません)

しかし、不思議なことにローカルホスト上では正常に動きます(遷移します)


わかる方いたら教えて下さい!
0666nobodyさん2013/12/07(土) 21:54:27.10ID:???
>>665
テンプレ読もうな
0667nobodyさん2013/12/07(土) 22:27:54.64ID:???
お前はそれで質問してるつもりなのか?
0668nobodyさん2013/12/07(土) 23:32:44.66ID:???
しまった、ここにはゴミクズしかいなかったか
0669nobodyさん2013/12/08(日) 16:07:21.67ID:???
arrayの内容がkey=>valueの配列でkeyがstringであった場合において
そのkeyが存在する要素が先頭から何個目のindexなのか調べる関数は
あるのでしょうか?

無いから大人しく回そうかと思います。
0670nobodyさん2013/12/08(日) 16:25:39.77ID:???
連想配列として使うなら順序が保証されない前提でプログラムした方がいい。
順序が必要ならキーを別の配列に入れておくか値をオブジェクトにして順序をつっこんでおいた方がいいんじゃないかな。
06716692013/12/08(日) 16:34:31.90ID:???
無いから → 無いなら

>>670
構造体だとindex管理が面倒なのでclassで作った方がよさそうですね
ありがと
0672nobodyさん2013/12/08(日) 20:01:06.71ID:???
連想配列に順序なんてねぇよなw
0673nobodyさん2013/12/08(日) 21:23:55.40ID:???
http://www.php.net/manual/ja/language.types.array.php
> PHP の配列は、実際には順番付けられたマップです。
0674nobodyさん2013/12/08(日) 23:22:42.65ID:???
PHPの配列は順番保証されるよ
この程度も知らんでおまえらよくやってるな
PHPしかやってないからかえってPHPのことがよくわかってないのでは?
0675nobodyさん2013/12/08(日) 23:42:44.31ID:???
何のために順番保障してんの?
0676nobodyさん2013/12/08(日) 23:44:05.67ID:???
順番が保証されないと思ってるのは>>672だけか。。がんばりな。
言語仕様マジ重要。
■ このスレッドは過去ログ倉庫に格納されています