【PHP】下らねぇ質問はID出して書き込みやがれ 113
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2011/11/29(火) 19:55:27.17ID:???過去スレ、関連スレ、FAQなどは>>2-10辺り
次スレは>>980が立てる。10分以内に立たない場合、宣言してから立てたい人が立てること。
◆前スレ
【PHP】下らねぇ質問はID出して書き込みやがれ 112
http://hibari.2ch.net/test/read.cgi/php/1320005469/
◆質問用テンプレ
【OS名】CentOS
【PHPのバージョン】5.3
【連携ソフトウェア】MySQL ImageMagick
【質問内容】
◆質問する時の注意
・ スレを上げて自分のIDを表示させること。(メール欄に何も記述しない。専ブラのsageチェックを外す)
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に関連リンクの公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
(PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。)
◆質問後の注意
・2回目以降は最初に質問した際のレス番号を入れて、偽者防止に必ずIDを表示させること。
・解決しなくても回答をもらった場合はお礼を言うこと。
(荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
【その他諸注意】
・SQL・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
0490nobodyさん
2011/12/16(金) 21:44:16.48ID:???検索したり検索結果をソートしたりするにはDBはいいけど。
たとえば動画や画像はデータベースに入れないだろ。
なんでもDBにいれればいいわけではない。
0491nobodyさん
2011/12/16(金) 21:51:10.07ID:???テーブルロックするわけじゃあるまいし。
ファイルアクセスならアクセス待ちが起こらないってのもへんな話。
まぁ、会員が数万人なら、長い目で見ても10億件くらいでテストすればいいんじゃないか?
んで、DBとファイルとどっちがよいかを検討すればよい。
俺ならDB
0493nobodyさん
2011/12/16(金) 22:12:34.91ID:???ファイルへのパスやURLだけ追加しとけば十分。
0494nobodyさん
2011/12/16(金) 22:16:17.15ID:iBDY3MbIそういうことか。
$ret = mysql_db_query("localhost",$sql);
↓
$ret = mysql_db_query("mysql",$sql);
で出来ました。
マジ感謝です。
0495476
2011/12/16(金) 22:21:39.60ID:h9+fuNNVありがとうございました。
0496nobodyさん
2011/12/17(土) 00:29:21.58ID:???0497nobodyさん
2011/12/17(土) 01:25:40.44ID:bKvSYMrD文末から逆順で正規表現の検索はできますか?
0498nobodyさん
2011/12/17(土) 01:40:44.00ID:???正規表現 Part9
http://hibari.2ch.net/test/read.cgi/tech/1323566370/
0499nobodyさん
2011/12/17(土) 06:03:16.70ID:???preg_matchだとstrlen-N〜strlenになる。
0500nobodyさん
2011/12/17(土) 14:32:17.37ID:???0501nobodyさん
2011/12/17(土) 15:56:48.17ID:???【MySQL】下らねぇ質問はID出して書き込みやがれ 2
http://toro.2ch.net/test/read.cgi/db/1322402682/
0502nobodyさん
2011/12/17(土) 16:11:17.20ID:bPlXPOXmつまり、以下を1つの関数で行えますか?(キーは保持しなくてよいです)
$arr_c = array_merge( $arr_a, $arr_b );
$arr_c = array_unique( $arr_c );
0503nobodyさん
2011/12/17(土) 16:30:23.23ID:???0504nobodyさん
2011/12/17(土) 16:49:55.12ID:bPlXPOXm10万くらいの配列が元で、1万ぐらいの配列からarray_diffしたら止まりました。
そもそも無茶だったかな?
0505nobodyさん
2011/12/17(土) 16:54:38.98ID:sPFPpSkQ他にクライアントIPを取得する方法はありますか?
0508nobodyさん
2011/12/17(土) 17:23:45.16ID:sPFPpSkQSSLとphpはcoreserver (xrea)に設置してます
検索したところサーバーのIPになるのは正常みたいですが・・
0509nobodyさん
2011/12/17(土) 19:36:32.56ID:A5TEnh+5"Undefined index: log4php.threshold"とでます
0510nobodyさん
2011/12/17(土) 20:48:58.19ID:???0511nobodyさん
2011/12/17(土) 21:58:06.60ID:???"Undefined index: log4php.threshold"と出るんですね?
0513nobodyさん
2011/12/17(土) 23:50:37.11ID:D3Nl9AMj0514nobodyさん
2011/12/18(日) 01:39:49.23ID:???それ書かなきゃ分かんないよ。
0515nobodyさん
2011/12/18(日) 04:48:11.98ID:???log4phpで
"Undefined index: log4php.threshold"とでます
原因と解決方法を聞いているのですが。
0517505
2011/12/18(日) 05:09:47.88ID:KlBUbzzu0518nobodyさん
2011/12/18(日) 06:27:11.95ID:r5XCNL9Mアイデアありがとうございます!
つまり、キーと値を入れ替えるといったことでしょうか?
0519nobodyさん
2011/12/18(日) 08:55:46.14ID:TZzNKfzxとforeachの中で変数に$allの中身を展開していて、
中身のほとんどはひとつの変数にひとつのデータが入ってるんですが、
ひとつだけ$item->categoryは中身が配列なんです
こういう場合、
$category = $item->category;
では配列の先頭のひとつしか取り出せないのですが、
うまいことやり方はないでしょうか
【PHPのバージョン】5.3
0520nobodyさん
2011/12/18(日) 09:30:46.68ID:???foreach ($all->page->item as $item) {
if (is_array($item)){
foreach ($item as $valeu) {
$echo $valeu;
}
}
}
次に「動けこのポンコツマシン」と叫びながらenterキーを押します
0521nobodyさん
2011/12/18(日) 10:03:02.25ID:3BlI9Ok7【PHPのバージョン】5.2.0
【質問内容】
サイトを参考にしながらtwitterのbotを作っているのですが、
Notice: Trying to get property of non-object
というエラーが出て困っています。
該当箇所は
$timeline = $Bot->Get_TL("home_timeline",$since_id,50);
で、Get_TL関数は
function Get_TL($type,$sid = null,$count = 30){
$opt = array();
$opt['count'] = $count;
if($sid){$opt['since_id'] = $sid;}
$req = $this->Request("statuses/".$type.".json","GET",$opt); // JSON形式の方がちょっと扱いやすい
if($req){
if($req->Code != "200"){die("Error: ".$req->Code);}
$result = str_replace(":NULL,",':"NULL",',$req->Body);
} else {die('Get_TL(): $req is NULL');}
$result = json_decode($result);
if($result->error){die($result->error);}
return array_reverse($result);
}
こんなかんじです。
エラー内容を調べたところNULLの扱いが良くないみたいなんですが、どういうふうに直せばいいか検討が付きません
ご教授願います
0522nobodyさん
2011/12/18(日) 10:07:55.46ID:TZzNKfzxできました
ありがとうございます
0523nobodyさん
2011/12/18(日) 10:42:16.96ID:???echo "ガッ";
>>522
スクリプトがちゃんと動いたら 「よーし いい子だ」 のセリフも忘れないようにしましょう
0525nobodyさん
2011/12/18(日) 11:58:40.87ID:3BlI9Ok7巧妙なぬるぽしてましたか私…\(^o^)/
>>524
えーっと、
class Twitter_Bot{}
の中に先ほどのGet_TL関数がはいっていて、
$Bot = new Twitter_Bot($user,$consumer_key,$consumer_secret,$oauth_token,$oauth_token_secret);
と宣言してるんですが、これではダメでしょうか…?
というかこういうことじゃなかったらすいません
0526nobodyさん
2011/12/18(日) 12:00:59.32ID:3BlI9Ok7すいません追記です。
function Twitter_Bot($usr,$consumer_key,$consumer_secret,$oauth_token,$oauth_token_secret){
$this->user = $usr;
$this->TO = new TwitterOAuth($consumer_key,$consumer_secret,$oauth_token,$oauth_token_secret);
$this->times = array_sum(explode(" ",microtime()));
}
もいれてます。
0528nobodyさん
2011/12/18(日) 12:17:36.17ID:???http://www.city.hitachi.ibaraki.jp/viewer/list-notice.html
コメントの入ってない古代兵器のリプレイスはイヤでござる
0529nobodyさん
2011/12/18(日) 12:32:55.35ID:3BlI9Ok7かなり長いのでちょっと無理です…。
もっと勉強して出直します
>>528
日立市になにが起きてるんでしょうか…
0530nobodyさん
2011/12/18(日) 12:41:02.98ID:???職員がきっと作ったんだな
0531nobodyさん
2011/12/18(日) 13:01:28.97ID:???↓
phpがバージョンアップとかセキュリティホール発見とか
↓
フレームワークの開発者が行方不明で対応しない OR
WEB屋が行方不明で対応できない
↓
他のWEB屋に発注
↓
なんとか動いてる状態
ネットバブルの遺産であり 仕事のタネ
0533nobodyさん
2011/12/18(日) 21:02:41.90ID:WFHhC1hOcURL等にてFlashコンテンツ(動画とか音声とか)を取得したいと思うのですが、可能なのでしょうか?
対象のHTMLソースを確認してもアドレスなど指定方法が分かりません
画像なんかのように簡単にはいかないと思いますが、どのようにすればいいのでしょうか?
0534nobodyさん
2011/12/18(日) 21:05:38.00ID:???0535nobodyさん
2011/12/18(日) 21:06:20.40ID:???0536nobodyさん
2011/12/18(日) 21:15:53.47ID:WFHhC1hOhttp://www.cbsnews.com/
は普通に
http://www.cbsnews.com/common/includes/CBSNews_v2_Remote.swf
のように書いているので取得できそうですが(今プログラミング出来る環境にいないので試せないのですが)、
http://www.nhk.or.jp/gogaku/english/business2/index.html
これなんかはサッパリ解決法が分かりません
どのような指定をすればいいんでしょうか?
ただ単にcURLにてこのページを全部取得するだけではFlashコンテンツは取得できないと思うのですが
0537nobodyさん
2011/12/18(日) 21:34:30.67ID:???0538nobodyさん
2011/12/18(日) 21:50:09.44ID:???プログラムとも関係ない
取得手順の自動化部分だけなら関係ある
0539nobodyさん
2011/12/18(日) 22:04:33.79ID:???ソースが幾つかここにあるから参考に。
http://darkknightlabs.com/download.html
0540nobodyさん
2011/12/18(日) 22:49:28.92ID:???0542nobodyさん
2011/12/19(月) 06:04:43.36ID:qDZa6/Q1PHPのスクリプトが入っているディスクをhome2とした場合に
home1にPHPとスクリプト両方が入っている時よりも遅くなったりします?
例えば
/home1/bin/php
/home1/www/index.php
/home2/www/index.php
こんな感じの状態でのindex.phpの処理速度はどうなんでしょうか?
PCで言うCドライブとDドライブの状態です。
0543nobodyさん
2011/12/19(月) 06:07:55.48ID:???けど、PHP本体は大抵メモリに乗っかりっぱなしになると思う。あ、php.soとかならね。
0544nobodyさん
2011/12/19(月) 06:48:32.81ID:kmf6/4Wj0545nobodyさん
2011/12/19(月) 08:15:46.23ID:???0546nobodyさん
2011/12/19(月) 08:17:46.50ID:qDZa6/Q1なるほど。
ってことは、そんなにかわらないって感じですかね?
0548nobodyさん
2011/12/19(月) 08:29:50.39ID:qDZa6/Q1APCつかったら変わらないとかのレベルの話?w
0549nobodyさん
2011/12/19(月) 10:05:09.48ID:???ここの大阪弁のおっさん、誰か何とかしてください
0551nobodyさん
2011/12/19(月) 12:45:21.76ID:???0552nobodyさん
2011/12/19(月) 16:39:48.23ID:???誰か何とかしてください
0554nobodyさん
2011/12/19(月) 17:36:25.70ID:yf0vv6CT【質問内容】 すみません。質問をさせて下さい。
下の二つの処理が返す $buffer の中身が、同じものなのかどうか知りたいのです。
1.一つ目の処理 -------------------------------------------
$fp = fopen('http://localhost/test.gif', 'rb');
$buffer = '';
while (!feof($fp)) { $buffer .= fread($fp, 10000); }
fclose($fp);
2.二つ目の処理 -------------------------------------------
$fp = fopen('http://localhost/test.php', 'rb');
$buffer = '';
while (!feof($fp)) { $buffer .= fread($fp, 10000); }
fclose($fp);
test.php ----
<?php
Header("Content-Type: image/gif");
fopen('./test.gif', 'rb'); // <-- http://localhost/test.gifと同じもの
fpassthru($fn);
------------------------------------------------------------
ダンプしたりgettypeしてみたりしたのですが、同じ文字列にしか見えませんでした。
文字列としては一致しているのですが、ming に上記の $buffer を渡すと
上側の処理では画像が表示されて、下側の処理では画像が表示されませんでした。
数日悩んでいるのですが答えが導き出せず困っております。
よろしくお願い致します。
0555nobodyさん
2011/12/19(月) 17:48:53.26ID:???0556nobodyさん
2011/12/19(月) 17:52:05.05ID:yf0vv6CTとりあえず今はXAMPPでテストしているところなのです。
0557nobodyさん
2011/12/19(月) 18:03:35.93ID:???0558nobodyさん
2011/12/19(月) 18:11:12.29ID:???気のせいなんじゃないかなぁ。
>>557
そうかい?
常に本番環境と同じものを開発用に用意できるなら、うらやましいとは思うが、場所に困りそうだなぁとも思う。
0560nobodyさん
2011/12/19(月) 18:15:06.87ID:???0561nobodyさん
2011/12/19(月) 18:24:25.51ID:???とりあえずファイルに落としてdiff取ってみては
0562nobodyさん
2011/12/19(月) 18:28:11.75ID:???0563nobodyさん
2011/12/19(月) 18:39:25.98ID:???echo var_dump($buffer);
で
処理1だと string(54) "GIF89a???????!?, ???????FZh3+;"
処理2だと string(358) " "
と表示される
0564nobodyさん
2011/12/19(月) 19:32:13.23ID:yf0vv6CTはい。挑戦してみます。
>>563
私の環境では var_dumpしても同じサイズものが表示されました。
良く見たらソースをコピーするときにファイルポインタの部分を
書き忘れていたのでそのせいかも知れません。
すみません。
皆さまありがとうございました。
もう少し自分で調査してみます。
0565nobodyさん
2011/12/19(月) 20:06:50.44ID:ePa6iLqx未定義の変数を使うとエラーというか、警告が出ますが、
なぜ未定義の変数を使うことは推奨されないのですか?
0566nobodyさん
2011/12/19(月) 20:53:21.45ID:???プログラムってのは最初にメモリー上に変数やら定数やらの領域を確保してから作業を始めるものだから
言語を開発する時はそういう順番で処理するように作ると処理が速い
phpも最初はそうだったんでない?
「5.xxでつくったそのコードは前のバージョンだと動かない可能性がありますよ」ってことじゃないのかな
0567nobodyさん
2011/12/19(月) 21:11:48.78ID:???スペルミスだったり、既にあると勘違いした変数を使用したり。
定義済、初期化済みの変数以外は警告出す設定ならそういったミスが判明する。
0568nobodyさん
2011/12/19(月) 21:20:56.99ID:???0569nobodyさん
2011/12/19(月) 23:14:43.18ID:???0571nobodyさん
2011/12/20(火) 04:22:28.90ID:???$path = "パスです。";
$kaisu=20;
$timer=new timer;
for($n=0;$n<$kaisu;$n++) $lineA = file( $path,FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES );
unset($timer);
$timer=new timer;
for($n=0;$n<$kaisu;$n++) $lineB = explode("\n",file_get_contents($path));
unset($timer);
$timer=new timer;
for($n=0;$n<$kaisu;$n++) $lineC = preg_split("/[\r\n]+/", file_get_contents($path) );
unset($timer);
var_dump( $lineA[0] );
var_dump( $lineB[0] );
var_dump( $lineC[0] );
class timer {
protected $time, $global;
function __construct() { $this->global = $this->time = microtime(true); }
function __destruct() { $this->pr_sub("GlobalTime",$this->global); }
function reset() { $this->time = microtime(true); }
function pr() { $this->pr_sub("ProcessingTime",$this->time); $this->reset(); }
function pr_sub($text,&$t) { echo "$text ".sprintf("%.5f\n", microtime(true)-$t); }
}
0572nobodyさん
2011/12/20(火) 06:39:53.00ID:???0573nobodyさん
2011/12/20(火) 08:19:37.82ID:???function filesize_ex( $path ) {
$size=@filesize($path);
if($size!==FALSE) return $size;
$str = <<<TEXT
@SET FNAME="$path"
@CALL :sizeoutput %FNAME%
@GOTO :EOF
:sizeoutput
@ECHO %~z1
@EXIT /B
TEXT;
file_put_contents("tmp.bat",$str);
$output=exec("tmp.bat");
unlink("tmp.bat");
return intval($output);
}
0574nobodyさん
2011/12/20(火) 08:29:12.14ID:???function filesize_ex( $path ) {
$size=@filesize($path);
if($size!==FALSE) return $size;
$str = <<<TEXT
@SET FNAME="$path"
@CALL :sizeoutput %FNAME%
@GOTO :EOF
:sizeoutput
@ECHO %~z1
@EXIT /B
TEXT;
file_put_contents("tmp.bat",$str);
$output=exec("tmp.bat");
unlink("tmp.bat");
if(stripos($output, "ECHO")!==FALSE) return FALSE;
return intval($output);
}
0575nobodyさん
2011/12/20(火) 11:11:49.92ID:wrUI7SmP0576nobodyさん
2011/12/20(火) 12:30:04.67ID:???> $_SERVER を取得する
取得したいのは、$_SERVER そのもの?それとも中身?
$_SERVER は、スーパーグローバルだから get 何たらで取得したりしないよ
0577nobodyさん
2011/12/20(火) 12:33:29.60ID:???0578nobodyさん
2011/12/20(火) 12:34:49.19ID:???Windowsで動かしている限り、どう設定しても回避出来ないだろ。
0580nobodyさん
2011/12/20(火) 13:29:11.13ID:???0581nobodyさん
2011/12/20(火) 15:31:21.98ID:???仕様になっていた。初期化しないと致命傷になりかねないのでその名残では
ないだろうか。
どちらにしろ初期化する癖をつけておかないと予想外の動作をして困る時が
あるので初期化する習慣をつけておいた方が良い。
0582nobodyさん
2011/12/20(火) 16:04:56.93ID:???マルチバイトであること、というか、エンコードさえわかっていれば問題は起こらないんだけどね。
>>579
ん?
>>581
今でもその設定はできるよ
0583nobodyさん
2011/12/20(火) 16:53:53.67ID:XCA10mib時間を表示させたいのですが、どのように行なったら良いのでしょうか。
プログラムは以下の通りです。
実行結果は、[Array]のみ表示されてしまいます。
<?php
$today[] = date("His", strtotime("+1 hour"));
print($today);
?>
0584nobodyさん
2011/12/20(火) 18:03:57.36ID:???0585nobodyさん
2011/12/20(火) 18:20:21.00ID:???0587nobodyさん
2011/12/20(火) 20:08:12.93ID:6+E46BaCXSSのテストをしようとテキストボックスに
<script type="text/script">alert("XSS");</script>
と打ち込んでボタンを押してもアラートがポップされないのですがどうすればポップできるようになりますか?
ちなみに「<b>XSS</b>」と打ち込むと太字で表示されます。またPOSTをGETにしても駄目でした
<div>
<form method="POST" action="">
<input type="text" name="ex" value="初期値">
<input type="submit" value="決定">
</form>
<?php
echo @$_POST['ex'];
?>
</div>
0588nobodyさん
2011/12/20(火) 20:08:16.60ID:???<?php
$mojiretsu1 = "His";
$mojiretsu2 = "+1 hour";
$kansuu1 = "date";
$kansuu2 = "strtotime";
$kotae = "today";
${$kotae} = $kansuu1($mojiretsu1, $kansuu2($mojiretsu2));
echo $today;
?>
0589nobodyさん
2011/12/20(火) 20:16:43.72ID:???<?php
echo @$_POST['ex'];
?>
↓
<?php
if (get_magic_quotes_gpc()) {
echo stripslashes($_POST['ex']);
}
?>
でどうだろか
■ このスレッドは過去ログ倉庫に格納されています