PHP質問・雑談スレ4【初心者お断り(ROM歓迎)】 [無断転載禁止]©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
PHPに関する質問や雑談をするスレです。
初心者お断り(ROM歓迎)と書いてますが、初心者用のスレが用意されているからで、
難しい質問や話題をしなければいけないわけではありません。
PHPマニュアルの読み方を概ね理解していて、関数リファレンスが正しく読める方用のスレです。
PHP未導入の方や、手取り足取りが必要な初心者の方はム板のくだスレへどうぞ。
http://mevius.2ch.net/tech/ (【PHP】で板内を検索)
前スレ
http://medaka.2ch.net/test/read.cgi/php/1486956982/
その他リンク
・PHPマニュアル
https://secure.php.net/manual/ja/index.php
・コードテスト・貼り付け用
http://ideone.com/
・プログラミングのお題スレ (求PHPer参戦)
http://mevius.2ch.net/test/read.cgi/tech/1480579110/
このスレで扱う話題
・PHPのコード,設定や設定値に関する質問
・常識的範囲内でのコードレビュー依頼・改良相談
・PECL,PEARに関する質問
・PHP新機能やPHP関連トレンドの話題
(FWや非公式ライブラリの話題や特徴比較は良いが使い方から先の話題は専スレへ)
・PHPのバグ発見報告・公式に報告する前の検証依頼
このスレで扱わない話題
・直接関係ない○○特有の質問(専スレへ)
(HH,エディタ,IDE,サーバ,OS,DB,SQL,FW,テンプレート,非公式ライブラリ・アプリケーション等)
・PHPの改造 サーバー変えたら動かなくなりました。
OSアップデートしたら動かなくなりました。
OS変えたら動かなくなりました。
WEBサーバー変えたら動かなくなりました。
WEBサーバーにパッチプログラムをあてたら動かなくなりました。
DB変えたら動かなくなりました。
DBをアップデートしたら動かなくなりました。
PHPのアップデートプログラムを更新したら動かなくなりました。
PEARのバージョン変えたら動かなくなりました。
PEARのアップデートプログラムを更新したら動かなくなりました。
WordPressのバージョン変えたら動かなくなりました。
WordPressのプラグインのアップデートプログラムを更新したら動かなくなりました。
Railsアップデートプログラムを更新したら動かなくなりました。
Rubyアップデートプログラムを更新したら動かなくなりました。
高負荷になったら動かなくなりました。 無償で修理してください。損害も請求します。
しばらく放置していて、最近動かしたら動かないです。原因はわかりません。これは御社の不具合なので無償で修理してください。
5年後ごとに起こるであろうこと PHPバージョン変えたら動かなくなりました。無償で修理よろしく
3年後ごとに起こるであろうこと Railsバージョン変えたら動かなくなりました。無償で修理よろしく
1年後ごとに起こるであろうこと Rubyバージョン変えたら動かなくなりました。無償で修理よろしく
無償で修理してください。損害も請求します。無視するなら瑕疵担保責任法で訴えるぞ!
納品先の会社 10社から同時に
重大な脆弱性が現バージョンから発見されました。こちらでアップデートしたところ、起動ができなくなりました。
至急弊社に来て修正作業をお願いします。なおお金は払わない。また営業に損失が出たので損害請求もします。 瑕疵担保責任(かしたんぽせきにん)
瑕疵担保責任のポイント
民法改正で事実上期限が「無制限」になった
バグや設計のミスなどは、瑕疵担保責任
納品物に不具合があれば損害賠償を請求される可能性もある
不具合を指摘されたらすぐに行動をとるべし
軽微なミスでも先延ばししない
http://www.atmarkit.co.jp/ait/articles/1706/26/news014.html
http://itpro.nikkeibp.co.jp/atcl/news/17/052601508/?rt=nocnt
改正法では欠陥に気付いてから1年以内にITベンダーに通知すれば、
通知後5年以内は修正や報酬の減額などを求められるとしている
全ベンダーが泣いた民法改正案を解説しよう その1
http://www.atmarkit.co.jp/ait/articles/1609/14/news009.html
http://www.atmarkit.co.jp/ait/articles/1609/14/news009_2.html
http://www.atmarkit.co.jp/ait/articles/1609/14/news009_3.html
ポイント1:修補や損害賠償、契約解除の期限がなくなる
従来あった「瑕疵担保期間は引き渡しから1年」という考えはなくなる。
条文にある通り、注文者は成果物が契約の目的に適合しないことを発見したら、
その「発見したときから1年以内」ならさまざまな請求ができる。発見が10年後なら、
11年後まで請求可能なのだ。
もっとも、現実のユーザーとベンダーの関係でも、たとえ契約書に「瑕疵担保責任期間は納品から1年と」明記されていても、
「2年目以降は不具合の修正に対応しない」と主張するベンダーはまれだ。多くの場合は、納品から何年たっても、
バグが見つかればユーザーのところに飛んで行き、無償で改修するだろう。 >>6
じゃあ瑕疵担保責任法で訴えるまでだ。損害賠償請求もする おまえら世間ではペチパーと言われてバカにされているんだよ。
バカにバカと言っているだけだよ 豊田真由子の新音声公開されたけど
たぶんあんな感じの自分エリート周り糞みたいな思考のやつなんだろう Aを渡すとBに変換する関数
Bを渡すとAに変換する関数
しかしこの関数の中身は同じなのです
例えばAからBをencode
BからAをdecodeとすると
Bをencoderに渡してもAになってしまうのです
こんな関数はおかしいですか?
なんかいい関数名ないですか? 前スレ埋めろ
AとBが確実に二分できて機械的に判定可能なのかによる >>16
お遊びで作ったソース難読化です
function give_me_a_name($src){
$hex=bin2hex($src);
$len=strlen($hex);
$buf="";
for($i=$len-1;$i>=0;$i--){
$tmp=15-hexdec($hex[$i]);
$buf.=dechex($tmp);
}
return hex2bin($buf);
} 今日はム板のスレ立てるまでもない〜スレでくだらないゴミみたいなオレオレ解釈法律談義相手してもらえてよかったね >>17
0-9a-fだけで構成された、しかし難読化を経たものではない $srcが指定されたらどうすんの
ソース難読化なら$srcに<や;が含まれてるかどうかなどによって
自動判別する関数をお前が作るのは自由だし、それは特におかしい関数ではない
しかし、全ては目的、用途、処理次第であるため、
その手の変換および自動判別を行う、汎用的な関数の存在を期待するのはおかしい 向こうじゃ話ついていけなくてぺちぱースレに戻ってきたぺちぱー()
法律オジサンちゃんとこっちでしっかり軟禁しとけよ 的を得ない自分勝手なオナニー講釈たれるアスペ野郎はどこでも嫌われるんだなw
なんか見ててちょっとお気の毒 質問させてください
PHPで受信メールを解析しています。
添付ファイルなしで本文取得は出来るのですが
添付ファイルありだと本文の取得が出来ません
下記がコードです。よろしくお願いします。
switch(strtolower($data->ctype_primary)){
case "text":
$text = $data->body;
break;
case "multipart":
foreach($data->parts as $part){
switch(strtolower($part->ctype_primary)){
case "text":
$text = $part->body;
break;
case "image":
$type = strtolower($part->ctype_secondary);
break;
}
}
break;
} >>26
できあいのparser使った方がいいと思う >>27
レスありがとうございます
できあいのparserでも結果は同じでした
マルチパートの本文の取得方法がわかりません…
よろしくお願いします >>28
なにをどう試してどう失敗したかを書くと
答えやすいと思うよ \r\n\r\nで区切ってみりゃいいんじゃね
共通ヘッダ テキストヘッダ テキストボディ 添付1ヘッダ 添付1ボディ 添付2ヘッダ 添付2ボディ・・・
みたいな感じになってる気がするけど
メールのことは詳しくないしRFC読むの面倒だから適当回答ですまんが parser自分で書いてるなら
添付ファイル付きメールをparserと同じように手で解いていって確認すりゃいいだろよ・・・ >>28
> できあいのparserでも結果は同じでした
何使ったの? シングルトンパターンってなぜ必要なんでしょうか?
例えばとあるソースでHttp通信(RESTAPI通信)を行っているクラスがシングルトンパターンで
作られているのを見かけたことがあったんですが
複数のインスタンスが作られると何がまずいんでしょうか? なぜ必要か
どんな状況にも通じる絶対的な必要性などないし使われてる状況による
とあるソースで 〜〜 何がまずいか
んなもん書いた奴に聞けマジで >>37
dbやcurlなどの接続を開始するためにコネクタクラスを毎回newしていると、
無駄にメモリ消費が増える。
インスタンスの共有が問題にならない局面でのみ有効な考え方。 たいてい、DBマネージャーとか、何々マネージャーと言う、
何かを管理するオブジェクトは、シングルトンにする
もし、2つあると、管理できないから >>40
管理できないのはhogefugaマネージャの実装の問題で(仕様とも言えるが)、
本質的にシングルトンにすべきかどうかの問題じゃないと思うが。 正論
だがそれ以前にシングルトンについての質問であってphpの質問ではないように思われる シングルトンって同じリソース使いまわす時に使うんでないの?
ユニキャストやらマルチキャストやらスレッドやら非スレッドやら同期やら非同期やら
その辺で使い分けるようなきがするがよくわかっていない >>39
>>>37
>
>dbやcurlなどの接続を開始するためにコネクタクラスを毎回newしていると、
>無駄にメモリ消費が増える。
>インスタンスの共有が問題にならない局面でのみ有効な考え方。
毎回newしても
ガベージコレクタがいい感じにメモリ解放してくれるからあまり問題にはならないんじゃないの?
違うの?
だれか詳しい人教えて! インスタンスを作っては削除し、これを繰り返すのは、
ループ内で、10万回もするなら、性能低下を引き起こす
回数が少なければ、気にならない for($i = 0; $i < 100000; $i++)
{
$dbh = new PDO();
$dbh->query("INSERT INTO tbl(id) VALUES({$i})");
unset($dbh);
} [NEET@]$ sudo pecl upgrade --force
pear.php.net is using a unsupported protocol - This should never happen.
PEAR Version: 1.10.1
PHP Version: 7.0.18-0ubuntu0.16.04.1
Zend Engine Version: 3.0.0
bosukete
Downloader.phpからエラーメッセージ追っとる;;; >>44
PHPやJAVAのガベージコレクションはどこまで信頼できる?
タイミングを含め盲目的な依存は危険だろ。
>>46
10万回って数を持ち出してくるとは恐れ入るなw
一般的にDBに設定されてる同時最大接続数を知らないとしか思えん。
貴重なリソースを一人占めするんじゃないぞ。 phpの話というよりDBの話になってるような
gcがどんな感じでも、1つのプログラムが長時間実行され続けることが
多くないphpにおいては、DB接続とgcはあんまり関係ない気がするんだが
javaのgcとは状況が色々と違うべ
むしろ全体でコネクションプーリング考えなきゃかなとかそっちのほう お前ら手動でビルドしてるのかよー。頼むから教えてくださいお;; お前らとか言ってすんませんした。pecl詳しい人居たら教えてくださいよろしくお願いします。 HLSネイティブサポートがSafariだけとかで、
そんな中でもいち早く対応プレイヤー登場させたクロスプラットフォームなFlashさんもとうとう死ぬんか・・・
これからが真のブラウザ競争の幕開けやなぁ
ブラウザにネイティブPHPサポート入れたら流行るでえ なんでcsv関係関数もSplFileObjectも全部、改行コードの指定がないんだろう >>56
> なんでcsv関係関数もSplFileObjectも全部、改行コードの指定がないんだろう
別に指定しなくても読めるから >>57
enclosureだってRFC的にはencloseは " だから指定なくても読めるけど変更可能じゃん?
エスケープ文字は…\と""連続があるからまあわかる
区切り文字はtsvを読みたい人もいるだろうからなのかな strpos(string haystack, string needles)
なんだよhaystackって干し草の山?意味わからんでえ while (!feof($fp)) {
fgets($fp);
}
fclose($fp);
これが終わらない$fpにはどうしたらベストですかね? EOFが返ってこないもの(/dev/zeroとか/dev/urandomとか)を読むなら終了条件がEOFまで読んだらってのがおかしい >>61
すみません説明不足でした
fsockopenで開いたwebサーバですね
サーバによっては返さないみたいで
その場合どうしたらいいのかなと え、keep-aliveの話?
http(s)で繋ぐだけならfile_get_contentsやcurlでいいじゃん
ストリーミングだっつーなら・・・・・・ あーkeep-aliveですか
てことはconnection: close送ればいいのかな fsockopen使っててconnection: close送ればいいのかな、って
自分でkeep-aliveを明示的に送ってんじゃないんかい? >>65
送ってないです
connectionは未指定でした とりあえず低レベルに手を出すなら今どうなってるか自分で確認せんと
聞くならなんのリソースでどんなプロトコルでどんなリクエスト送っててどういう状況になってるかはじめから書かんと
HTTP/1.1を送ってて1回1回切りたいならkeep-aliveを指定してなくてもconnection: close
cURLでいいような気がするが >>67
ありがとうございます
connection: close送ってもだめでした
いうこと聞いてくれないサーバなのかもしれません
file_get_contentsだとcontext指定しても期待した結果が返って来ず
cURLは面倒くさそうだったのでスルーしてましたがcURLでも試してみます guzzlehttp/requestとかじゃダメなんか guzzleって使ってなんかcurlにはない良いことあるの keep-aliveって、こっちがcloseしたら相手がsocketを破棄するとかそういうのじゃないよ HTTPなら読み込み終了条件はContent-Lengthヘッダがあればそのサイズだけ読んだとき, Transfer-Encoding:chunkedのときはサイズ0の空チャンクを読むまでだろ
規格外の規約で通信するなら知らんが >>75
RFC7230とRFC7540あたりを読む >>76
おう、面倒だから代わりに読んできてくれや
お前さんのスキルアップに一役買うためにネチゴロして待ってんよ やーよ俺はcURLとかguzzlehttp/requestを使う fsocketとcurlでcurlの方が面倒とか言っちゃうんだから察しろ 実際面倒だろ
カスタマイズ性には劣るが生のhttpヘッダ送るほうが簡単に決まってる 自宅にWebサーバ立てたのですが
FireWallとかよくわからないので
そのまま自作Webサイトを公開しているんですが
FireWallあるのと無いのでは何が違うんでしょうか?
一応現時点では80番ポートのみ開放しているのでそれで十分かと思ってるのですが
想定される不正アクセスはどのようなものがあるのでしょうか? >>86
手書きで ../../ とか親ディレクトリをたどられないかとか、
存在しないURL・ファイル名指定されて index一覧をダダ洩れさせてしかも親へ移動できちゃわないようにしっかりチェックしてね
まぁ面倒なら .htaccessでがちがち設定にしとけばいいよ >>88
それってFireWallとは関係ない話なんだがw >>89
>想定される不正アクセスはどのようなものがあるのでしょうか?
って書いてあるからその状態(port80のみ開放)ではどんないたずらを速攻でされ易いかという意味で合ってるだろ それはそうだwディレクトリ掘りの後にクエリ捏造でphpの出番が来るけどな php側のセキュリティはphpコード側で何やってるかがまず問題だしなあ
セキュリティよく分からないのに自宅鯖とか
愚劣を極めてるやつにピンポイントであれこれ教えても無意味 スレ違いなの分かってるけどどうしてもこれだけは言っておきたい
普通の意味でファイアウォールと言ったらTCP/UDPレイヤでの操作だけども, 80と443以外のポートはきちんと閉じていますか, と
22とかまともに設定せずに開放してたら踏み台にされてるんじゃねーのか ルーターはハードウェアファイアーウォールだし、
サーバ側にソフトウェアファイアーウォールが入ってなくても問題はない。
外に持ち出しして、不明な構成の外部ネットワークからつないだりしたら問題になるかもしれんが。
ただ↑の指摘のようにsshは気軽に誰でもアクセスできちゃうと、
パスワード突破されたらサーバが乗っ取られるので、
ポートは22以外を使うのと(スキャンされにくい1024以降)、lan内と外から使うかもしれない一部プロバイダ以外からは遮断する。
その細かな制御は高性能のルーターじゃないと出来ないので、ソフトウェアファイアーウォールが必要になる。
まぁWindowsサーバだろうし、sshとかも入れてなさそうだけど。なんにしてもスレチだな。 xxx.xxx.[0-255].[0-255]正規表現でこのような指定は出来ないので、
if ($yourip == fn("xxx.xxx.0.0/16"))
このようなサブネットマスクでIPを調べれる関数とかありませんでしょうか? >>98-99
ありがとうございます
さすがにまんまなものはなかったんですね
>>99さんのリンクのを使わせていただきます ■ このスレッドは過去ログ倉庫に格納されています