【PHP】下らねぇ質問はID出して書き込みやがれ 109
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2011/07/28(木) 06:53:37.45ID:???過去スレ、関連スレ、FAQなどは>>2-10辺り
次スレは>>980が立てる。10分以内に立たない場合、宣言してから立てたい人が立てること。
◆前スレ
【PHP】下らねぇ質問はID出して書き込みやがれ 108
http://hibari.2ch.net/test/read.cgi/php/1309599473/
◆質問用テンプレ
【OS名】CentOS
【PHPのバージョン】5.3
【連携ソフトウェア】MySQL ImageMagick
【質問内容】
◆質問する時の注意
・ スレを上げて自分のIDを表示させること。(メール欄に何も記述しない。専ブラのsageチェックを外す)
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に関連リンクの公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
(PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。)
◆質問後の注意
・2回目以降は最初に質問した際のレス番号を入れて、偽者防止に必ずIDを表示させること。
・解決しなくても回答をもらった場合はお礼を言うこと。
(荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
【その他諸注意】
・SQL・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
0110nobodyさん
2011/08/01(月) 03:51:04.53ID:2XW3ucDq0113nobodyさん
2011/08/01(月) 05:13:48.22ID:???PHPのソースとcURLのAPIを読んだ方がいい
ざっと読んだがこんな感じじゃないだろうか
1-3: 通信準備
4: 前回の curl_multi_exec() の結果が正常、かつ実行中のハンドル数が1以上なら
5: 読み込みの準備が完了まで無限ループ
6-8: 読み込み実行、終わったら4に戻る
0114nobodyさん
2011/08/01(月) 09:29:12.01ID:Nj6qDJQl$binary = fread(fopen($_FILES['upfile']['tmp_name'], "r"), filesize($_FILES['upfile']['tmp_name']));
$file = base64_encode($binary)
とエンコードをしてMySQLに保存するコードを作りました
この画像を今まで表示させるのに
<?php
header("Content-type: image/png");
echo = base64_decode("mysql出力");
?>
とやってたのですが訳あって"./img/img_user/".$user_name."png"
という風にMySQLとは別にサーバーに保存しようと思ってるのですが
move_uploaded_fileなどを使って「デコードされた文字列をpngとして名前を付けて保存する」やり方に悩まされています
もし解決方法があったらお願いします
0115nobodyさん
2011/08/01(月) 09:36:17.53ID:???デコードする意味が俺には分からんけど。
0116nobodyさん
2011/08/01(月) 09:52:02.44ID:???ってあるから訳があるんじゃねーの?
画像うpろだみたいに引き出す時だけ一定時間保存するとか
0117nobodyさん
2011/08/01(月) 10:37:51.60ID:???0118nobodyさん
2011/08/01(月) 10:50:47.70ID:???こうしたいけど、こうなってしまう、とか事例無いかね
0119114
2011/08/01(月) 11:16:15.45ID:Nj6qDJQl$hoge = base64_decode("mysql出力(例:R0lGODlhAQAAAAAALAAABAAEAAAICRAEAOw==)");
$user_name = "hoge122";
if(move_uploaded_file($hoge, "./img/img_user/".$user_name.".png")) {
echo "画像を復帰させました。";
}
とやってみたりしたんですがどうもうまくいかず
デコードされた文字列をpngとして名前を付けて保存するやり方はどの本に載ってなかったので
0120nobodyさん
2011/08/01(月) 11:32:50.99ID:???0121nobodyさん
2011/08/01(月) 12:32:10.24ID:???$str = "あ";
$str = mb_convert_encoding($str, 'HTML-ENTITIES', 'UTF-8');
としても期待通りの結果を得る事ができません。
期待は$amp;#12354;ですが「あ」が得られます。
おそらくphp.iniのを見直す必要があると思うのですが、それを含めどうすれば期待通り得れる様になるのでしょうか?
PHP5.3.6です。
0122nobodyさん
2011/08/01(月) 12:32:51.00ID:???正)期待は?ですが「あ」が得られます。
0123nobodyさん
2011/08/01(月) 12:34:36.65ID:???0124nobodyさん
2011/08/01(月) 12:38:31.95ID:???0125nobodyさん
2011/08/01(月) 12:54:57.17ID:???0127114
2011/08/01(月) 13:13:31.94ID:Nj6qDJQl出来ました!ありがとうございます!!
何日間も悩んでたんですが、こんな簡単なことだったとは
ここに来て正解でした。本当にありがとうございます!!
0128nobodyさん
2011/08/01(月) 22:17:14.90ID:7/D+jIWOちょっと仕事でそう言うのに関わりそうなんでどうゆうのがあるのかイメージだけでも掴んでおきたいんですわ
個人でも企業でも構わないです
0129103
2011/08/01(月) 22:22:55.11ID:WocIZ6afありがとうございました!
0130nobodyさん
2011/08/01(月) 22:24:10.13ID:WocIZ6af2番目に小さい値を取り出すにはどうしたらいいでしょうか?
0131nobodyさん
2011/08/01(月) 22:53:39.03ID:???グーって送信したら「負けました」って返ってくるようなのとかしか思いつかん
0132nobodyさん
2011/08/01(月) 23:08:24.46ID:???0133nobodyさん
2011/08/01(月) 23:08:39.50ID:???0134nobodyさん
2011/08/01(月) 23:11:25.13ID:???0136nobodyさん
2011/08/01(月) 23:14:11.90ID:???<?php
$array = range(0, 10);
shuffle($array);
echo var_export($array, true), PHP_EOL;
$values = array_values($array);
$keys = array_keys($array);
array_multisort($values, SORT_DESC, SORT_NUMERIC, $keys);
echo implode(' > ', $keys), PHP_EOL;
0137nobodyさん
2011/08/01(月) 23:17:21.62ID:???送信→結果返ってくる→送信って物凄い退屈になりそうだ
ドラクエの動作する度に読み込みしなきゃならんという
0139nobodyさん
2011/08/02(火) 00:38:18.62ID:HmxmiA4/call_user_func($this->'hoge'); // ?
private function hoge()
{
}
0140nobodyさん
2011/08/02(火) 00:39:56.79ID:???それほど難しくないでしょ。
0141nobodyさん
2011/08/02(火) 00:42:42.94ID:???http://php.net/manual/ja/function.call-user-func.php
>さらに、オブジェクトのインスタンスのクラスメソッドをコールするには、 array($objectinstance, $methodname) をこのパラメータに渡します。
書いてあるまんま
privateを呼ぶならリフレクション使わないと無理だと思うよ
0142nobodyさん
2011/08/02(火) 00:45:02.22ID:???ttp://php.net/manual/en/function.call-user-func.php#example-4339
0143nobodyさん
2011/08/02(火) 00:50:29.97ID:HmxmiA4/ありがとうこざいますm(__)m
0144nobodyさん
2011/08/02(火) 01:15:53.15ID:???0146nobodyさん
2011/08/02(火) 04:13:18.97ID:???$matches = array();
preg_match($regex, $url, $matches);
最初の初期化って必要?
0147nobodyさん
2011/08/02(火) 04:20:20.72ID:???0148nobodyさん
2011/08/02(火) 05:57:50.94ID:pX4Rbkp4mb_send_mailをsendmailまねーるでSMTP認証すると送れました。
質問します。画像やpdfを添付ってどうやってやるのですか?
0149nobodyさん
2011/08/02(火) 09:08:19.40ID:???PHPに関係あんのかそれ
0151nobodyさん
2011/08/02(火) 18:18:20.03ID:pX4Rbkp4sendまね〜る(sendmane.exe)の使い方
http://homepage1.nifty.com/yito/anhttpd/faq/sendmane.html
>>150
やってみます
0152nobodyさん
2011/08/02(火) 21:10:35.32ID:???0153nobodyさん
2011/08/02(火) 21:11:39.21ID:???どうしてもWindowsでやりたいならxmailにしろ
0154nobodyさん
2011/08/02(火) 23:07:29.75ID:pX4Rbkp4sendまね〜るを非推奨は何か理由があるのですか?
0155nobodyさん
2011/08/02(火) 23:47:13.83ID:???PHPに関係あんのかそれ
0156nobodyさん
2011/08/02(火) 23:48:59.76ID:???0157nobodyさん
2011/08/03(水) 00:51:46.47ID:???0158nobodyさん
2011/08/03(水) 01:59:01.60ID:???どうしてもWindowsでやりたいならAjaxにしろ
0159nobodyさん
2011/08/03(水) 10:48:11.05ID:???どうなんだ。それが本当に必要ならともかく、
よくわかってないから入れてみました、じゃあなあ
0160nobodyさん
2011/08/03(水) 10:51:49.49ID:???回答もらっておきながら結果なりを報告せずに別の質問しに来るあたりクズだと思うけど
0161nobodyさん
2011/08/03(水) 12:15:08.13ID:???お前はお礼を言ってもらいたくて回答してんのか
0162nobodyさん
2011/08/03(水) 12:16:18.34ID:???どうしても〜で使いたいなら〜にしろ」
はコピペか
0163nobodyさん
2011/08/03(水) 12:19:36.66ID:???おまえは回答が欲しくて質問してんのか
0165nobodyさん
2011/08/03(水) 12:47:56.43ID:???その程度の事もわからなくて見当違いの方向に進んで
見当違いの質問をするやつもどうかと
0167nobodyさん
2011/08/03(水) 17:23:13.01ID:???0171nobodyさん
2011/08/03(水) 23:48:52.38ID:???0172nobodyさん
2011/08/04(木) 05:35:26.09ID:lnwKvGgA0173nobodyさん
2011/08/04(木) 08:51:10.70ID:???0174nobodyさん
2011/08/04(木) 09:03:04.88ID:???0175nobodyさん
2011/08/04(木) 10:24:57.92ID:x+2SSW45error_reporting(E_ALL);
$a = array();
for($i=0;$i<=10;$i++) {
print "a($i) = $a[$i]\n";
}
上記のようなスクリプトを書くと、
Notice: Undefined offset: 0 in /home/name/tmp/a.php on line 5
a(0) =
:
Notice: Undefined offset: 10 in /home/name/tmp/a.php on line 5
a(10) =
という警告が出ます。
$配列=array(); で、空の配列で初期化できるとググって調べたサイトには
書かれてるのですが、これは正しいのでしょうか?
ちなみに $a = array(); を$a = NULL; で置き換えると警告が出ず、意図した通り動作します。
どちらが正しいのでしょうか?
0177nobodyさん
2011/08/04(木) 10:48:58.81ID:???> $a = NULL; で置き換えると警告が出ず、意図した通り動作します
意図したとおりに動作するならそれでいいじゃん
0178nobodyさん
2011/08/04(木) 10:53:32.66ID:???0179nobodyさん
2011/08/04(木) 10:59:25.37ID:???nullの場合は nullへの配列アクセスがnull返してるだけですので、意味が違います。
どちらが正しいということではありません。
0180175
2011/08/04(木) 11:21:24.21ID:???>>178-179
回答ありがとうございます。
array()で「未定義の状態に」初期化されるということだったんですね。
借りてるサーバーでphp.iniの設定が変わったのか、やたらこの警告が
出るようになったので、error_reporting等でエラー制御してもいいんですが、
放置しておくのも気持ち悪いので、配列を空白または0として認識するよう初期化する
方法を検証してたんですよね。
配列のサイズは可変なので、array_fill等を使わずに検証してますが、
>>179さんの説明見る限りでは、= NULL; では意図した初期化になってない気がしますね。
0181nobodyさん
2011/08/04(木) 11:31:18.07ID:???print "a($i) = ". (isset($a[$i])?:"") ."\n"; とか
0182nobodyさん
2011/08/04(木) 11:34:10.08ID:???0183nobodyさん
2011/08/04(木) 11:35:39.13ID:???0184nobodyさん
2011/08/04(木) 11:38:25.15ID:???0185nobodyさん
2011/08/04(木) 12:42:21.82ID:???error_reportingでとりあえず対処してる。
PHPで食べてるプロの方々は、どう対処してるんでしょ?
鯖の設定もクライアントによって様々だろうし・・・
error_reporting(1)にしてるけど、問題ないのか自分としても自信がないし
0186nobodyさん
2011/08/04(木) 12:44:08.88ID:???とりあえずって自分で言ってるから、分かってるんだとは思うけど。
0187175
2011/08/04(木) 13:20:29.10ID:???うーん。サイズが可変である以上は、やはりスクリプト中で毎回
変数をチェックするしかないですかね。
>>182
クラスでできるもんなんですか?
>>185
私も同じです。
error_reportingでの対処で問題ないか自信がないので初期化を検討してます。
0188nobodyさん
2011/08/04(木) 13:28:13.82ID:???0189nobodyさん
2011/08/04(木) 13:28:17.87ID:???0190nobodyさん
2011/08/04(木) 13:39:30.10ID:???http://php.net/manual/ja/class.arrayaccess.php
この辺使えばできるんじゃない?使った事ないけど
0191nobodyさん
2011/08/04(木) 13:41:46.56ID:???既存のプログラムを手直ししてられないならerror_reportingしかないんじゃない?
Noticeが出る場所が少ないんなら手直しすべきだなぁ
0192nobodyさん
2011/08/04(木) 13:49:13.03ID:???てか定数で指定しろよ
E_ERROR=1ってWARNINGまで抑制してるんじゃないの
0193nobodyさん
2011/08/04(木) 13:54:00.62ID:???「また、PHPなどで、実行する場合は、SETと、本SQLの2本を同時実行できないっぽい・・」
とありますが出来る方法をご存知の方いらっしゃいましたら教えてください・・・
0195nobodyさん
2011/08/04(木) 14:11:49.21ID:???方法論というか考え方がわかっていなくて・・・
>>175はエラーがでるのは明らかでわかるのですが、
たとえば条件分岐していて、値が入っている時と入っていない時がある場合に
issetで判定しようとするときにもでてたような記憶があるのですが、
そうした場合の初期化はあらかじめ全て0などの値をいれて初期化しておくべきなのでしょうか?
0196nobodyさん
2011/08/04(木) 14:13:43.33ID:???0197nobodyさん
2011/08/04(木) 14:18:13.81ID:???0198175
2011/08/04(木) 15:05:45.99ID:???ありがとうございます。
一応、地道に警告出ないように書きなおします。
>>190
ありがとうございます。
こちらも試してみます。
>>195-197
試してみたところ、issetでは警告でないようですね。
is_nullでは警告が出ました。
0199nobodyさん
2011/08/04(木) 19:14:55.20ID:???バカヤロー
0201nobodyさん
2011/08/04(木) 19:29:17.08ID:???POSIXじゃないってことか?これでも読め
http://www.php.net/manual/ja/pcre.pattern.php
0202nobodyさん
2011/08/04(木) 21:09:11.26ID:???0203nobodyさん
2011/08/04(木) 23:49:49.51ID:???0204nobodyさん
2011/08/04(木) 23:59:19.75ID:???・Windows PCしか持っていない
・Linuxを知らない、覚える気が無い
こういう人でもPHPを利用できるということだろう
そもそもOSに依存しないのが理想的とも言える
0205nobodyさん
2011/08/05(金) 00:05:56.98ID:???0206nobodyさん
2011/08/05(金) 00:30:42.60ID:???・Linux PCしか持っていない
・Windowsを知らない、覚える気が無い
・複数台のPCに入れるWindowsの金がない > 俺
こういう人でもPHPを利用できるということだろう
0207nobodyさん
2011/08/05(金) 01:10:24.19ID:???0208nobodyさん
2011/08/05(金) 01:52:58.08ID:i/Iug6bTecho preg_replace("/([も])/","$1あ","まみむめも");
とすると「?あ???あ???あ?あ??あ?あ??あ?あ?あ」と出ました。
「まみむめもあ」に置き換えるつもりですが、どうしてこうなるのでしょう?
簡単なことかもしれませんが調べても分かりません。
0209nobodyさん
2011/08/05(金) 01:53:37.67ID:???phpを最初に勉強するとき参考にしたサイトとか
あれば教えて下さい。公式マニュアルサイト以外で
■ このスレッドは過去ログ倉庫に格納されています