【PHP】下らねぇ質問はID出して書き込みやがれ 133
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2014/04/19(土) 08:04:54.26ID:???過去スレ、関連スレ、FAQなどは>>2-10辺り
次スレは>>980が立てる。10分以内に立たない場合、宣言してから立てたい人が立てること。
◆前スレ
【PHP】下らねぇ質問はID出して書き込みやがれ 132
http://nozomi.2ch.net/test/read.cgi/php/1390166591/
◆質問用テンプレ
【OS名】CentOS
【PHPのバージョン】5.5
【連携ソフトウェア】MySQL ImageMagick
【質問内容】
◆質問する時の注意
・ スレを上げて自分のIDを表示させること。(メール欄に何も記述しない。専ブラのsageチェックを外す)
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に関連リンクの公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
(PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。)
◆質問後の注意
・2回目以降は最初に質問した際のレス番号を入れて、偽者防止に必ずIDを表示させること。
・解決しなくても回答をもらった場合はお礼を言うこと。
(荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
【その他諸注意】
・SQL・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
0352nobodyさん
2014/05/13(火) 08:01:48.19ID:???0355nobodyさん
2014/05/13(火) 12:23:41.91ID:???0356nobodyさん
2014/05/16(金) 15:52:47.54ID:???http://blog.livedoor.jp/kinisoku/archives/4066761.html
0357nobodyさん
2014/05/16(金) 21:44:03.71ID:???0358nobodyさん
2014/05/21(水) 00:09:07.61ID:cY0Url6Nちなみにフレームワークは、Cake1.3使ってる。こっちも一緒に上げないとだめ?
0359nobodyさん
2014/05/21(水) 01:15:39.27ID:p5gLXcKW【PHPのバージョン】5.3
【質問内容】
SJISでmb_convert_caseをMB_CASE_UPPER使おうとしたら
'�d'が文字化けしてしまいます。'c'が入ってると勘違いされてるようですが
マルチバイト専用関数なのになんでこんなにアホなんでしょうか?
mb_ereg_replace_callbackはバージョンが合わず使えませんでした
一種類ずつ置換しようと思いましたが遅くて使えなかったので
どうしたらいいか教えてください
0360nobodyさん
2014/05/21(水) 01:29:03.25ID:???書いてるコード次第。
まあ細かい問題が出てくるのは確実だから、実環境でアップデートする前にテストしないとダメ。
>>359
http://fdays.blogspot.jp/2011/03/php-sjis-sjis-win.html
0361nobodyさん
2014/05/21(水) 01:36:57.31ID:p5gLXcKWありがとうございます!ずばり解決しました!
0362nobodyさん
2014/05/21(水) 01:39:23.43ID:???糞みたいな文字コード開発したクズどもは全員死刑にしろ
0363nobodyさん
2014/05/21(水) 02:21:43.06ID:YqBasNtt【質問内容】
phpでプロキシを経由してサイトを閲覧し、
閲覧してるサイトのフォームに自動入力するプログラムを作りたいのですが、
どうしたらいいのかわかりません アドバイスもらえませんか
0364363
2014/05/21(水) 02:25:46.61ID:YqBasNttフレーム2のphpファイルに渡すところまではできました。
ですがそこから詰まりっぱなしです
0365nobodyさん
2014/05/21(水) 05:32:07.00ID:L2j3cLUW変更によってphpエラーが出力されているページの一覧を簡単に調べたいです。
調べる方法やツールはありますか?
0366nobodyさん
2014/05/21(水) 06:25:46.96ID:???今だからそういう事言えるけど昔はいかに少ないバイト数で表現出来るかが重要だったわけで
>>363
( ^ω^)
>>365
拡張子phpを持つファイルをコンソールで実行して結果を返すようなバッチ処理を仕込んでみたらいかがか
0367nobodyさん
2014/05/21(水) 08:44:33.57ID:???find -exec で php -l すればいいんじゃないの。
もしくは、バージョン管理サーバーのコミットバッチに何か仕込むとか。
0369nobodyさん
2014/05/21(水) 09:29:18.80ID:vX6qhClkhttp://fishki.net/upload/post_temp/201405/16/001.jpg
稲城サッカースポーツ少年団(稲城SSS)
http://fishki.net/upload/post_temp/201405/16/1_111.jpg
稲城サッカースポーツ少年団(稲城SSS)
http://fishki.net/upload/post_temp/201405/16/500.jpg
早稲田住友商事
http://fishki.net/upload/post_temp/201405/16/001.jpg
早稲田住友商事
http://fishki.net/upload/post_temp/201405/16/1_111.jpg
早稲田住友商事
http://fishki.net/upload/post_temp/201405/16/500.jpg
0370nobodyさん
2014/05/21(水) 09:49:26.04ID:???過去は過去だよ
今SJISを使ってる奴がアホであり
SJISに変換できない文字が何かを知らない奴がアホであるのだよ
メールも統一されないかね
0372nobodyさん
2014/05/21(水) 10:41:35.42ID:???0374nobodyさん
2014/05/21(水) 10:58:07.86ID:???0375nobodyさん
2014/05/21(水) 11:01:42.13ID:???化けるよ
WindowsのカーネルがUnicodeをShift_JIS(Windows-31J)に変換してアプリに渡してるからな
FAT32はShift_JISな
0380nobodyさん
2014/05/21(水) 13:50:47.36ID:???0381nobodyさん
2014/05/21(水) 14:31:00.30ID:???0382nobodyさん
2014/05/21(水) 14:50:26.72ID:kJPXkf8bSJISでもアクセスできるようになっている。
0383nobodyさん
2014/05/21(水) 14:53:34.37ID:???時代についていけなさ過ぎだろ
0384nobodyさん
2014/05/21(水) 15:00:31.21ID:???対策しきれないやつが吠えてるだけだろ
あとは専スレでやってくれ
0386nobodyさん
2014/05/21(水) 17:21:37.31ID:???0387nobodyさん
2014/05/21(水) 19:04:40.06ID:???場違いな阿呆がよく使う言葉だな
0388nobodyさん
2014/05/21(水) 19:52:47.06ID:???0389nobodyさん
2014/05/21(水) 20:23:30.07ID:???PHPを絡めてるならまだしも独立しちゃってるしん
ていうかここで文字コードの話してるやつのレベルなんてたかが知れてるし
勉強したいなら専スレ行ったほうがためになるんじゃないのかね?
http://toro.2ch.net/test/read.cgi/tech/1354248962/
0392nobodyさん
2014/05/21(水) 21:39:19.94ID:???あ、自分>>383じゃないんで。
0393nobodyさん
2014/05/21(水) 22:37:33.56ID:???標準化団体とかいううさんくせえ利権団体のカスどもは仕事しろクズが
0396nobodyさん
2014/05/22(木) 00:13:04.31ID:???0397nobodyさん
2014/05/22(木) 07:34:27.11ID:???SJISにしなくてもUTF16で扱えるよ
入出力は入力、出力側依存でなんでも扱える。
cmdとかはunicode対応してるしな
外部はSJISというのも、
ファイル名がSJISというのも、
入出力がSJISというのもあってない
0398nobodyさん
2014/05/22(木) 07:57:26.09ID:TVKVAMsHPHPでファイルリスト取得しようとしても、UTF16LEを含むファイル、ディレクトリは無視される。
これがwindowsで使う際の昔からの弱点と思ってる。
0399nobodyさん
2014/05/22(木) 08:14:14.31ID:???0400nobodyさん
2014/05/22(木) 08:20:25.61ID:???0402nobodyさん
2014/05/22(木) 08:29:13.61ID:???0403nobodyさん
2014/05/22(木) 08:31:24.95ID:???http://www.php.net/manual/ja/mbstring.encodings.php
0404nobodyさん
2014/05/22(木) 08:57:43.32ID:TVKVAMsHPHP6開発 UTF-16化を断念、5.3へロールバック | マイナビニュース
PHPの次期メジャーバージョンはPHP6になるとみられてきたが、問題を打破するために開発ブランチを5.3ベースへ巻き戻すという対処が実施された。
Rasmus Lerdorf氏がphp.internals: PHP 6においてPHP6 Unicodeの実装が失敗したことを伝えている。
PHP6ではエンジン内部の処理がUTF-16に統一される計画になっていたものの、関係者からはこの方針は間違っているのではないかという指摘もあった。
これまでの取り組み
PHP6で取り組む基本的な内容として、PHPエンジン内部におけるエンコーディングをすべてUTF-16で実施するという方針が決定した。
しかし実際に取り組んでみるとCPU負荷が高い上にメモリも食うことが判明。
しかもどのエンコーディングが使われているか判断する実装が難しく、さらに後方互換性も失われるという問題がでてきた。
mbstringといった程度の対応でいいユーザにとって不利益が多すぎるうえ、開発者が開発版を使いたがらないという状況に陥った。
http://news.mynavi.jp/news/2010/03/17/053/
Windows API - Wikipedia
Unicode対応
Windows NT系では当初からUnicodeが用いられている一方、Unicodeに対応していないWin16と互換性を取るために、
Win32 APIから同じAPIに対してマルチバイト文字版とUnicode版の2つを用意し、C/C++のマクロを駆使してコンパイル時にどちらを使うか選択できる仕組みが採用されている。
その場合、マルチバイト文字列を与えるべき関数・構造体は末尾に「A」を付け、ワイド文字列を与えるべき関数・構造体は末尾に「W」を付けて区別している。
0406nobodyさん
2014/05/22(木) 09:31:09.45ID:TVKVAMsHPHP開発は、主にPOSIX準拠(UNIX、LINUX)で行われていて
開発者が意図して、Windows(UTF-16)の対応を進めない限りは対応しないはずだ。
POSIX準拠のC言語関数をそのまま使えば、Windows(S-JIS)にしか対応してない。
0407nobodyさん
2014/05/22(木) 14:54:59.02ID:???0408nobodyさん
2014/05/22(木) 17:50:52.86ID:???だからUnicode対応ではないよ
自分でコンパイルしたらわからんけど
0409nobodyさん
2014/05/22(木) 19:07:36.37ID:???どこが出してるPHPとApache使うのがお勧め?
0411質問者己
2014/05/23(金) 12:40:05.00ID:LR3HrDkXif (strpos($haystack, $needle) !== false) {
//ある場合の処理
}
ある場合が false とか !== とかスマートと思えない。
一番普通の書き方は?
または一番読みやすくコスト安い良い書き方は?
0412nobodyさん
2014/05/23(金) 12:49:09.81ID:???0413nobodyさん
2014/05/23(金) 13:18:59.02ID:???http://www.php.net/manual/ja/language.types.boolean.php
http://www.php.net/manual/ja/function.strpos.php
PHPでは、FALSEは数値判定しようとすると0になる。
また、strposで最初の一文字がヒットすると数値の0になる。
なので、型判定つきでFALSEかどうかを評価するのが一番
記述は簡単で済む。
その逆をやろうとすると、返り値が数値型で、かつ0以上で
あることをどこかで判定しなきゃいけないので記述が長くなる。
でもまぁ、判定の根拠を明示するために、長い記述にするのは
悪くないことだと思うよ。やってみては。
0414nobodyさん
2014/05/23(金) 13:42:28.26ID:???それがスマートに見えないなら関数自前すれば?
主観のスマートさを例を提示しないで出されても困るだけだよ
0415nobodyさん
2014/05/23(金) 13:44:04.37ID:8/EeaipCCを経験してない人には分かりにくいという話に過ぎないので、
気になるなら好きな名前でラッパー書くなり関数足せばいいと思う
スマートかどうかはさておいて、十分読みやすいよ
0416nobodyさん
2014/05/23(金) 13:48:21.38ID:???0418nobodyさん
2014/05/23(金) 14:05:06.26ID:???0419nobodyさん
2014/05/23(金) 15:02:08.27ID:???意味づけだけで考えるとこっちが近いかもね
0420nobodyさん
2014/05/23(金) 15:06:25.77ID:DKlNZ22O・変数の中身がNULLである
という条件だとします。
if (isset($data)) {
// 変数が存在する場合の処理
}
これだとissetはFALSEになるので、処理が実行されません。
変数がNULLでも変数がセットされているので処理を実行させたい場合、
どういう書き方が適切でしょうか?以下のような書き方で良いのでしょうか?
isset($data) || !is_null($data)
0421nobodyさん
2014/05/23(金) 15:28:34.35ID:???じゃあ、 (((何とか === false) === true) !== false)
ここまでやってくれよ、手順変わらんのだろ。
0423質問者己
2014/05/23(金) 15:45:22.93ID:LR3HrDkXおぉ、ありがとう。
if (substr_count($haystack, $needle)) {
//ある場合の処理
}
これの方が好みだ。
(countだから、文字列最後までみる無駄は承知)
p.s.
if (!is_bool(strpos($haystack, $needle))) {
書けることに気付いた。
他の返信者もThankyou!
PHP初心者なので、普通の書き方?があるのかな、と思っていた。
自前関数つくれば?、というのはごもっとも。
(boolean isExist($haystack, $needle); とか)
でも、大抵のこと、やりたいことだけを書けばよいPHP。
その生産効率の高さに感激していたのに、ここはこれ?ってのに違和感あった。
0424nobodyさん
2014/05/23(金) 15:45:36.30ID:???http://www.php.net/manual/ja/language.types.null.php
> 変数は、以下の場合に NULL とみなされます。
> ・定数 NULL が代入されている場合。
> ・まだ値が何も代入されていない場合。
> ・unset() されている場合。
変数がセットされてないはNULLがセットされてると同じなので
変数に参照する方法だと無理です
グローバル変数であれば、$GLOBALSにarray_key_existsを利用する方法があります
ローカル変数だと、compactを利用する方法があります。
どちらにしろあまり推奨できる方法ではありません
0426質問者己
2014/05/23(金) 17:12:17.62ID:LR3HrDkX//ある場合の処理
}
最終的にこうした。
他あればご教授よろしく。
0427nobodyさん
2014/05/23(金) 17:19:10.52ID:/68HgEjXhttp://qiita.com/hummer/items/a6d220e69f47175bd200
0431420
2014/05/23(金) 17:38:40.05ID:DKlNZ22O「変数が呼び出されている」「しかし変数はNULLである」
という条件をTRUEとするため、何か良い書き方はないでしょうか?
issetだと駄目なので、どうやって書けばいいか悩んでいます・・・
0432nobodyさん
2014/05/23(金) 17:50:12.41ID:???そもそも なんで未定義をチェックしないといけないの?
nullが入ってくるかもしれない変数をnullかチェックしたければ、あらかじめなんかnullじゃない値
入れとけばいいじゃん。
0433420
2014/05/23(金) 18:12:13.36ID:???0434nobodyさん
2014/05/23(金) 18:19:22.90ID:???そういうのは連想配列でやるべき
0435nobodyさん
2014/05/23(金) 20:05:29.06ID:???0436nobodyさん
2014/05/23(金) 20:12:47.37ID:???0437nobodyさん
2014/05/23(金) 20:38:41.78ID:???0440nobodyさん
2014/05/24(土) 04:52:42.90ID:???空改行なんかしてるやついたらモニタでしばき倒すわ
0441nobodyさん
2014/05/24(土) 06:19:59.04ID:???これ守ってないと動かないツールがたまにある
0442nobodyさん
2014/05/24(土) 06:30:42.43ID:???0443nobodyさん
2014/05/24(土) 07:01:38.32ID:???0444nobodyさん
2014/05/24(土) 07:07:35.49ID:???最後が改行で終わっていないというウォーニングが
延々と出るよねw
0447nobodyさん
2014/05/24(土) 09:27:13.22ID:bHZkuXrt【PHPのバージョン】5.4.7
【連携ソフトウェア】xamppでテスト中
【質問内容】
あるhtml要素を取得後、body要素内のテキストを配列に取得、そのテキストをforeachで処理したいと思っています。
(最終的にはふりがなを付けたいと思っています)
ですが各要素内のテキストがうまく取得できません。正規表現が間違ってると思うのですが、どのように直せばよいでしょうか?
コードは以下です。
<?php
$a ="disuse<html>disuse<head>disuse</head>disuse<body style='background-color:#550'>need1<ul><li>need2</li>need3
<li>need4</li></ul>need5</body>disuse</html>disuse";
$pattern = "#<body[\s\S]*?>[\s\S]*?>[\s\S]*?<[\s\S]*?</body>#u";
preg_match_all ($pattern, $a ,$b);
/* 配列の処理 */
foreach($b[0] as $c){
echo $c;
echo"<br>";
};
?>
echoの結果は以下になります。
<body style='background-color:#550'>need1<ul><li>need2</li>need3
<li>need4</li></ul>need5</body><br>
0450nobodyさん
2014/05/24(土) 22:56:26.95ID:Bs4j7gAXなぜPHPが終了タグ直後の一つの改行のみは許す仕様になっているのか考えたことはないのか。
ついでに、インデントはタブじゃなくて4スペースでお願いします
0451nobodyさん
2014/05/24(土) 23:03:44.97ID:???なんなんアレ
TABだとフォントによって崩れる(キッ
じゃねえよ
んな糞フォント使うなって話だよ
ついでにMSゴシック縛りはなんなんだよ
メイリョKEもしらんのかハゲと言いたい
いくら大企業で給料良くても、糞みてえな規約には従いたくないわ
■ このスレッドは過去ログ倉庫に格納されています