【PHP】下らねぇ質問はID出して書き込みやがれ 123
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2012/09/25(火) 23:39:55.21ID:???過去スレ、関連スレ、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を表示させること。
・解決しなくても回答をもらった場合はお礼を言うこと。
(荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
0762nobodyさん
2012/11/07(水) 00:42:55.40ID:gzCebguYそれともローカルで開発が終わってからサーバにアップ?
俺は前者でやってるw
0764nobodyさん
2012/11/07(水) 00:53:15.80ID:???0766761
2012/11/07(水) 09:40:56.26ID:tumxuWL0functionの入ったphpをincludeすると呼んでないけど明らかに速度は落ちます
includeしなければ速度は上がります。
ですがfunctionが複雑に入り組んでいるのでバラすのも大変なので、ある程度を
分割してclassで読み込みが制御できるのであればと考えておりました。
0767nobodyさん
2012/11/07(水) 09:42:49.09ID:???0768nobodyさん
2012/11/07(水) 09:47:19.11ID:???もしくはリモートに接続してるとか
0769761
2012/11/07(水) 10:40:44.58ID:tumxuWL0ざっと見た限りですが1万5千行くらいあります
>>768
各処理を見てみましたが、基本的にすべてfunctionでラッピングされておりました
0770nobodyさん
2012/11/07(水) 10:44:34.22ID:???ifなと使って使う時だけ限定的にインクルードしていけ。
0771nobodyさん
2012/11/07(水) 10:48:54.38ID:???そしたら読み込み時はPHPでチェックされない。
0772nobodyさん
2012/11/07(水) 10:57:36.03ID:???HipHop VM開発に至る経緯
Facebookでは、爆発的なユーザー数の増加に対応するため、アプリケーション実行速度の高速化が急務とされていた。
問題は、これまでに蓄積されてきた膨大な量のPHPコードベースだった。
そこでFacebookが選んだのは、アプリケーションのコードに手を加えるのではなく、PHPの実装そのものを改善する方法だった。
そのための試みとして、同社では2010年より「HipHop for PHP」で2種類のPHPの実装を進めてきた。
ひとつはPHPコードをC++コードに変換し、そこからバイナリコードを生成するHipHop compiler、もうひとつは独自のPHPインタプリタ実装であるhphpiだ。
ネイティブ実行が可能な前者の方が圧倒的にパフォーマンスは高いが、静的なコード解析しか行うことができない上に、コンパイルの待ち時間が必要なことからPHPの手軽さが犠牲になる。
Facebookでは社内のソフトウェア開発にはhphpiを使用し、外部向けの本番環境にはhphpcによって生成したバイナリコードを配備するという形で使い分けてきたという。
開発用と本番用で実行基盤が異なるというのも、テスト工程の増加など様々な面で問題をはらんでいることは想像に難くない。
そこで同社が次の一手として開発したのがhhvmというわけだ。
hhvmはJIT(Just-In-Time)コンパイラを搭載し、実行時に動的にバイナリコードを生成する。
これによってhphpcのようにPHPコードをC++に変換することなく、直接高速に実行することができるようになる。
サービスの開発から公開までの全域にわたって効率化を実現できることから、Facebook社内での注目度は高いという。
Facebook社内ではすでにhphpiに代わってhhvmが使われはじめており、将来的にはすべてのPHP実行環境をhhvmに置き換える計画だという。
hhvmは従来のHipHop for PHPと同様にオープンソースで開発されており、GitHubにリポジトリが公開されている。
PHPの言語仕様そのものは変更されていないので、既存のPHPコードでも実行環境を置き換えるだけで利用することができる。PHPを使ったアプリケーションの高速化を求める開発者にとっては注目すべき取り組みと言えるだろう。
http://builder.japan.zdnet.com/script/35012295/
0773nobodyさん
2012/11/07(水) 14:25:56.37ID:2sStCN3Aたとえば
for($i=0;$i<10;$i++){
echo $test['test'.$i];
}
みたいにして、test1、test2、test3
っていうふうに変えたいんですが、上記の通りだとうまくいきません
どうすればいいでしょうか?
0775nobodyさん
2012/11/07(水) 14:39:51.50ID:???0776nobodyさん
2012/11/07(水) 16:45:41.79ID:???0777nobodyさん
2012/11/07(水) 16:47:02.77ID:2sStCN3Aわかりまりました
ありがとうござりました
0778nobodyさん
2012/11/07(水) 17:27:37.44ID:HSMtZo+3といった遷移がなされる場合に
BページでGoogleからの検索ワードが取得したい為
最初の(Googleでの)リファラが欲しいのですが
どのようにリダイレクトさせればいいでしょうか?
0779778
2012/11/07(水) 18:54:34.66ID:???header("Location: " . $url);
0782nobodyさん
2012/11/08(木) 12:56:19.26ID:???ブラウザはwindowsのIEです。
C:\Documents and Settings\ユーザ\Cookies
だと思ったんですが見当たりません。
$_COOKIE関数でセットした値を取得できるので、セット自体はされているのですが。
宜しくお願いします
0783nobodyさん
2012/11/08(木) 13:07:23.32ID:???すいません、自己解決できました。
setcookie関数の構文記述に誤りがあり、クライアント側に作成されていませんでした。
場所はC:\Documents and Settings\ユーザ\Cookiesでした。
0785nobodyさん
2012/11/08(木) 23:34:29.59ID:f/f3pzKJ先行バイトと後続バイトがはっきり区別できるUTF-8では問題ない、という解釈は合っているでしょうか。
置換がpreg_replaceやmb_ereg_replaceではなくstr_replaceで済むのならその方が楽ですし、
正規表現ではなくただの置換の方が内部の処理量も少なくて済むような気がするのですが。
0786nobodyさん
2012/11/09(金) 05:17:11.99ID:???0788785
2012/11/09(金) 08:26:28.79ID:fHegqpBvビット列10で始まるバイトが後続バイト、それ以外が先頭バイトだと思いますが、例外でもあるんでしょうか?
0789nobodyさん
2012/11/09(金) 16:54:02.12ID:SzfafX2yいや、PC用のページとスマホ用のページで振り分けたいだけですよ
0790nobodyさん
2012/11/09(金) 17:13:03.25ID:rpNskGII@ http://mankoumai.com/test.php
でこれまでアクセスしていたんですが
A http://mankoumai.com/test
でもアクセス出来る様にしたいです。
また、@でアクセスが来た場合にはAにリダイレクトさせるにはどうしたらいいでしょうか?
0791nobodyさん
2012/11/09(金) 17:37:28.37ID:???0792nobodyさん
2012/11/09(金) 23:14:28.63ID:???0793nobodyさん
2012/11/09(金) 23:18:13.73ID:VsVEo1TJコミュニティーサイトを作って
その中でメンバー同士がメッセージを送れる仕組みを用意したとします。
荒らしが現れたらスパムメッセージを送りまくるようになると思います。
それを防ぐためにメッセージ送信時にcaptcha認証を行うのは
一般的ですか?他に何かいい対策はありますか?
0794nobodyさん
2012/11/10(土) 00:21:55.25ID:???1分とか1時間に送れるメッセージ数に上限を設ける
一度に多数の人に送れないようにする
同じ内容を同じ人に続けて送れないようにする
NGワードを設ける
サイト外(のメールアドレス)には送れないようにする
とか考えたらいくらでも思い浮かぶのが普通
他のサイトがどうしてるか学ぶべき
0795nobodyさん
2012/11/10(土) 01:04:32.30ID:xD0ruwyN荒らすのが趣味な俺様が通りますね。
0796nobodyさん
2012/11/10(土) 01:08:09.64ID:/09E68J7貴重なご意見ありがとう
それらを規制するための具体的な数値でのルール決めが非常にシビアになってきますね。
0797nobodyさん
2012/11/10(土) 01:23:42.70ID:???0798nobodyさん
2012/11/10(土) 11:21:45.36ID:???ユーザー自身に嵐をブロックさせるとか
「この情報を管理者に報告」とかで荒らされた人に報告してもらって
NGレベルが一定より上がったら管理者が目視確認して対処すれば良い
そのあと強制退会とかさ
>>797
たまに見るね、今出てるのは安全なサイト構築とかだっけ?
「安全な…」とか言われると見なきゃいけないような気がしてくるw
0800nobodyさん
2012/11/10(土) 14:37:38.21ID:???お前の作った産廃なんて誰も使わないのに何でそれな心配してるの?
まさか産廃を使ってもらえると思ってるの?w
ウ\゙\ァ\カは無敵だなwwwwwwwwwwwwwww
0801nobodyさん
2012/11/10(土) 15:10:05.05ID:6XHTxJnVありがとう
>>800
現時点でもすでに3万人のアクティブユーザーがいて
その中には荒らしもいて困ってる
0802nobodyさん
2012/11/10(土) 15:43:46.49ID:+S6U6CYO$a = "piyo";
$b = "mage";
$a .= "hoge";
$b .= "hoge";
みたいなときに、.="hoge;をまとめられますか?
0806nobodyさん
2012/11/10(土) 15:55:14.63ID:+S6U6CYOそれってバージョン依存な書き方だったりしますか?
僕の5.3.5環境だと結果が$a=>"piyo",$b=>"magehoge";になります
0808nobodyさん
2012/11/10(土) 15:57:43.50ID:+S6U6CYO$a = "piyo";
$b = "mage";
$a && $b .= "hoge";
とやってもpiyoとmagehogeになります。。
0810nobodyさん
2012/11/10(土) 16:34:15.27ID:+S6U6CYO$a || $b .= "hoge"; はpiyoとmageのままです
ちなみにあなたの環境では&でできたんですか?
0812nobodyさん
2012/11/10(土) 23:08:00.59ID:+S6U6CYO要するにわからないってことですか・・・・
0813nobodyさん
2012/11/10(土) 23:46:58.31ID:slna0j84この状態でzeroにアクセスするにはどうしたらよいのでしょうか
$a->0や$a[0]は当然エラーが出てしまいますし
foreachで順番に回すしか無いのでしょうか。
また、この状態で"1"=>"one"を追加するにもどうしたらよいのでしょうか
これもやっぱり、$a[]="one"、$a->1="one"は出来ませんし…
0815nobodyさん
2012/11/11(日) 00:37:11.24ID:???PHPなんか使ってるからそんなところで無駄な時間使うんだろ
これ以上時間と労力を無駄にしたくなかったらさっさと他言語に移行しろ
人生を無駄にしたくて仕方ない場合のみPHPを使い続けろ
0817nobodyさん
2012/11/11(日) 01:41:38.05ID:???出来ないことで、いつまで荒らしと遊んでるの? さっさとNG
>>813
current($a) で
$a->{0}でアクセスできるんだけど、それは $a["0"]であって、
この方法で変換した場合は、 $a[0](のようなもの)なので、ソレを直接とる記法がない。
arrayに変換してやれば戻るけど
0819nobodyさん
2012/11/11(日) 07:13:11.33ID:???0820nobodyさん
2012/11/11(日) 14:06:46.12ID:A0HHXkrC<?php
$opt=array();
$opt['LIBXML_COMPACT']=LIBXML_COMPACT;
$opt['LIBXML_DTDATTR']=LIBXML_DTDATTR;
$opt['LIBXML_DTDLOAD']=LIBXML_DTDLOAD;
//$opt['LIBXML_DTDVALID']=LIBXML_DTDVALID;//DTD(Document Type Definition:文書型宣言)を利用することで、パーサがデータの妥当性を検証。
$opt['LIBXML_NOBLANKS']=LIBXML_NOBLANKS;
$opt['LIBXML_NOCDATA']=LIBXML_NOCDATA;
$opt['LIBXML_NOEMPTYTAG']=LIBXML_NOEMPTYTAG;
$opt['LIBXML_NOENT']=LIBXML_NOENT;
$opt['LIBXML_NOERROR']=LIBXML_NOERROR;
$opt['LIBXML_NONET']=LIBXML_NONET;
$opt['LIBXML_NOWARNING']=LIBXML_NOWARNING;
$opt['LIBXML_NOXMLDECL']=LIBXML_NOXMLDECL;
$opt['LIBXML_NSCLEAN']=LIBXML_NSCLEAN;
$opt['LIBXML_PARSEHUGE']=LIBXML_PARSEHUGE;
$opt['LIBXML_XINCLUDE']=LIBXML_XINCLUDE;
$opt['LIBXML_ERR_ERROR']=LIBXML_ERR_ERROR;
$opt['LIBXML_ERR_FATAL']=LIBXML_ERR_FATAL;
$opt['LIBXML_ERR_NONE']=LIBXML_ERR_NONE;
$opt['LIBXML_ERR_WARNING']=LIBXML_ERR_WARNING;
$opt['LIBXML_VERSION']=LIBXML_VERSION;
//$opt['LIBXML_DOTTED_VERSION']=LIBXML_DOTTED_VERSION;
@mkdir("txt");
$xmltxt=file_get_contents("http://www.dailymotion.com/rss/jp/1");
foreach ( $opt as $key => $val) {
echo "$key\n";
$rss = simplexml_load_string($xmltxt,"SimpleXMLElement", $val);
file_put_contents( "txt/$key.txt" , print_r($rss,true) );
}
0821nobodyさん
2012/11/11(日) 15:00:14.57ID:???<?php
include_once('simplepie/autoloader.php');
@mkdir("cache");
$feed = new SimplePie();
$feed->set_feed_url("http://www.dailymotion.com/rss/jp/1");
$feed->init();
$feed = $feed->data['child']['']['rss']['0']['child']['']['channel']['0']['child'][''];
echo "maximum of the allocated memory = " . memory_get_peak_usage(true)/(1<<20) . "M byte\n";
file_put_contents( "SimplePie.txt" , print_r($feed, true) );
0822nobodyさん
2012/11/12(月) 11:41:01.71ID:IhXlrx2Gブログサービスにはping通知のサービスがあると思いますが、
自分のドメインでそのpingを受信することはできないのでしょうか?
pingがどういう形式で送信されているのかがわかればできそうなんですが、
それがわかりません。
0823nobodyさん
2012/11/12(月) 12:34:19.69ID:???Google先生に「更新PING XML PHP」で聞けば
どういうフォーマットで送られてきているか
書いてあるサイトをわんさか教えてくれるぜ!
0824nobodyさん
2012/11/12(月) 13:02:34.44ID:IhXlrx2Gありがとうございます
<?xml version="1.0" encoding="UTF-8"?>
<methodCall>
<methodName>weblogUpdates.ping</methodName>
<params>
<param><value>自分のサイトのタイトル</value></param>
<param><value>自分のサイトのURL</value></param>
</params>
</methodCall>
こんな書式見つけたんですが、pingって更新した記事のURLは送ってこないのでしょうか?
事前にブログ運営者のRSSフィードURLを調べといて、更新通知があったらそっから最新記事を取得するって感じでしょうか?
0825nobodyさん
2012/11/12(月) 14:21:04.70ID:???さすがphpを選ぶだけのことはあるなw
0826nobodyさん
2012/11/12(月) 14:40:01.78ID:IhXlrx2Gお前もプログラミング始めたときはゴミだったんだよ
それを思い出せ
0827nobodyさん
2012/11/12(月) 15:14:44.52ID:???ミステリー
0828nobodyさん
2012/11/12(月) 15:53:34.36ID:???0829nobodyさん
2012/11/12(月) 18:45:43.66ID:Qov88rFj見辛いので継承というのは使ってみたいのですが、これはテーブルを変える度にクラスを作り直さないといけないですよね?
クラス内で関数を書き換える方法って他にありますか?
getDataという関数があったとしてテーブルを切り替えたときにgetDataも書き換えたいのですが・・
0830nobodyさん
2012/11/12(月) 18:50:43.05ID:???0831nobodyさん
2012/11/12(月) 21:03:43.88ID:0jsaB5ydPHPで日本語ファイル名を読み取って var_dump すると文字化けするんですけど
そのファイルの中身を読取TeraTerm上に吐き出した場合には
文字化けしていません。
lこれっていったい何が原因なのでしょうか?
0832nobodyさん
2012/11/12(月) 21:08:05.67ID:???0833nobodyさん
2012/11/12(月) 21:13:36.23ID:0jsaB5yd??? UTF-8にしてます。
また、ターゲットのファイルの中身も UTF-8 で統一しています。
何より、
read.php の中で 【ほげほげデータ.dat】 を読み込み
終了タイミングで
echo "データ読込に成功しました!!";
と記述した場合には、TeraTerm上に文字化けせずに正常に表示されます。
PHPの文字コードは、UTF-8に統一されているという認識ですが
間違っていますでしょうか?
0834nobodyさん
2012/11/12(月) 23:12:20.07ID:???まぁお前が好き好んで人生のうちの何時間かをその無駄なことに注ぎ込みたいのならいいだろ
0835nobodyさん
2012/11/12(月) 23:25:04.25ID:???teratermってことはどっかsshしてるんだろうけど
$ echo $LANG
とか
$ nkf -g data
とか
teraterm自体の設定を見てみるとかしてみて。
0836nobodyさん
2012/11/12(月) 23:31:29.31ID:???0837nobodyさん
2012/11/12(月) 23:43:44.35ID:0jsaB5ydやりたい事は出来るのでOKなんですが
コマンドを試してみたところ次のありさまでした。
% echo $LANG
LANG: Undefined variable.
%nkf -g data
data: No such file or directory
0838nobodyさん
2012/11/12(月) 23:46:43.05ID:???0839nobodyさん
2012/11/13(火) 02:25:13.36ID:???HT(水平タブ) is a white space.
LF(改行) is a white space.
FF(改頁) is a white space.
CR(復帰) is a white space.
(スペース) is a white space.
$arr = array(
"NUL(null文字)", "SOH(ヘッダ開始)", "STX(テキスト開始)",
"ETX(テキスト終了)", "EOT(転送終了)", "ENQ(照会)",
"ACK(受信OK)", "BEL(警告)", "BS(後退)",
"HT(水平タブ)", "LF(改行)", "VT(垂直タブ)",
"FF(改頁)", "CR(復帰)", "SO(シフトアウト)",
"SI(シフトイン)", "DLE(データリンクエスケープ)", "DC1(装置制御1)",
"DC2(装置制御2)", "DC3(装置制御3)", "DC4(装置制御4)",
"NAK(受信失敗)", "SYN(同期)", "ETB(転送ブロック終了)",
"CAN(とりけし)", "EM(メディア終了)", "SUB(置換)",
"ESC(エスケープ)", "FS(フォーム区切り)", "GS(グループ区切り)",
"RS(レコード区切り)", "US(ユニット区切り)", "(スペース)" );
foreach ( $arr as $val => $str) {
$t = preg_replace('/\s+/', '', chr($val));
if(strlen($t)===0) echo "{$str} is a white space.\n";
}
0840nobodyさん
2012/11/13(火) 02:28:40.86ID:???0841nobodyさん
2012/11/13(火) 03:25:03.45ID:???strip_tags関数の穴
例。
$str = "<b>余計な文字列</b>削除しないで><動く物も動かなくなっちゃうよ!";
echo strip_tags($str);
結果
余計な文字列削除しないで>
bタグはきちんと削除されていますが「しないで><」の後ろもタグと判断されて削除されちゃってます。
意図的に半角の不等号を使ったのですが、HTMLじゃない文字列まで削除されるのはちょっと困ります。
http://d.hatena.ne.jp/tek_koc/20080930/1222732987
0842nobodyさん
2012/11/13(火) 03:29:31.34ID:???0843nobodyさん
2012/11/13(火) 03:51:39.88ID:???$s = preg_replace("@<[\/\!]?[a-zA-Z]+[^<>]*>@s", '', $s );
0844nobodyさん
2012/11/13(火) 19:57:36.38ID:r7+OKuGHやり直し!
0845nobodyさん
2012/11/13(火) 21:50:58.10ID:???0847nobodyさん
2012/11/13(火) 23:14:24.94ID:B6JGLfv/?>書くとおかしくなる気がするんですが勘違いでしょうか?
0848nobodyさん
2012/11/13(火) 23:21:25.87ID:MQzA8bHkいろんなやり方あると思いますが、教えてください。お願いします
0849nobodyさん
2012/11/13(火) 23:30:05.71ID:B6JGLfv/0851nobodyさん
2012/11/14(水) 02:53:09.72ID:???0852nobodyさん
2012/11/14(水) 09:09:07.23ID:???VC9 x86 Thread Safe (2012-Nov-07 22:35:53)
http://windows.php.net/qa/
0853nobodyさん
2012/11/14(水) 10:37:53.58ID:???print vsprintf("%04d年%02d月%02d日" ,sscanf("2012-08-21","%d-%d-%d") );
0854nobodyさん
2012/11/14(水) 11:32:53.97ID:???自分のやってる正規表現で置換する以外の賢い方法を知りたかったので
>>851,853
おおー、両方とも知らなかったです
ありがとうございました
0856nobodyさん
2012/11/14(水) 12:48:39.37ID:???出たほうがいい場合が多いが
0857nobodyさん
2012/11/14(水) 13:30:38.94ID:???年月日じゃなくて年年日にしたいそうだぞ
0858nobodyさん
2012/11/14(水) 13:37:42.81ID:???0859nobodyさん
2012/11/14(水) 14:24:47.65ID:Yf+k1U8+【PHPのバージョン】5.2.3
【連携ソフトウェア】MySQL5.5
【質問内容】
phpとmysqlで情報処理系のWEBアプリを構築しているのですが、
DBへのインサート時、 〜 (波線)が入力されているとインサートに失敗してしまいます。
文字コードが怪しいと思いましたが、DB・phpどちらもUTF8になっており問題ありません。
どなたか思い当たりがある方いらっしゃいましたらご教授頂けると幸いです。
0860nobodyさん
2012/11/14(水) 14:28:32.15ID:???エスケープ、エンコードして入れるのが安全。
0861nobodyさん
2012/11/14(水) 14:31:16.69ID:???■ このスレッドは過去ログ倉庫に格納されています