トップページ⇒php
1001コメント279KB

【PHP】下らねぇ質問はID出して書き込みやがれ 136

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2014/08/06(水) 23:31:16.38ID:GyAfw2+q
質問者はまず>>1を良く読むこと(必須!)
過去スレ、関連スレ、FAQなどは>>2-10辺り
次スレは>>980が立てる。10分以内に立たない場合、宣言してから立てたい人が立てること。

◆前スレ
【PHP】下らねぇ質問はID出して書き込みやがれ 135
http://kanae.2ch.net/test/read.cgi/php/1405860979/

◆質問用テンプレ
【OS名】CentOS
【PHPのバージョン】5.5
【連携ソフトウェア】MySQL ImageMagick
【質問内容】

◆質問する時の注意
・ スレを上げて自分のIDを表示させること。(メール欄に何も記述しない。専ブラのsageチェックを外す)
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に関連リンクの公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
(PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。)

◆質問後の注意
・2回目以降は最初に質問した際のレス番号を入れて、偽者防止に必ずIDを表示させること。
・解決しなくても回答をもらった場合はお礼を言うこと。
(荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)

◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。

【その他諸注意】
・SQL・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
0705nobodyさん2014/08/31(日) 16:40:06.56ID:???
>>704
嘘回答で騙すための布石敷いてるから邪魔しないでくれる?
0706nobodyさん2014/08/31(日) 17:08:59.84ID:ytMktGeE
substr('あいう', 2, 2)  開始位置が2番目で、2バイト取得で
「い」が抜き出せるけど、
開始位置を文字列で指定する関数とかありますか?

あああいいいいうえええええええおおおおおかきくけこさ

「か」 が開始位置で6バイト取得したいです。
0707nobodyさん2014/08/31(日) 17:23:52.19ID:???
6文字じゃなく、6バイト?
0708nobodyさん2014/08/31(日) 17:32:57.22ID:???
マルチバイト文字使うならmb_substr使えや
あと最初の文字の場所を探すならstrstrとか使えばええ
これもマルチバイト文字ならmb_strstr使えばええ
0709nobodyさん2014/08/31(日) 17:34:48.90ID:???
文字数じゃなくバイト数だと、環境によって結果が変わりそう
0710nobodyさん2014/08/31(日) 17:49:19.37ID:VEqj7yji
面白いね
ぺちぴー開発者の姿勢とか頭の悪さがよくわかるよね(笑)
CVE-2014-3538 NOTE: this vulnerability exists because of an incomplete fix for CVE-2013-7345
CVE-2014-3587 NOTE: this vulnerability exists because of an incomplete fix for CVE-2012-1571
CVE-2014-3597 NOTE: this issue exists because of an incomplete fix for CVE-2014-4049

開発者ですらそんなだからね
ぺちぱーは相当酷いんだろうとだけは想像付くけど
どれだけひどいものかは想像だにできないね(笑)
0711nobodyさん2014/08/31(日) 18:17:37.07ID:???
その文で開発者の姿勢と頭の悪さがわかるってお前ただの馬鹿だろ
0712nobodyさん2014/08/31(日) 18:38:14.67ID:???
↑こいつ分からないんだってよwwwww
07137062014/08/31(日) 18:43:04.47ID:ytMktGeE
みんな教えてくれてありがとう。一応できたよ。
$moji = "nagesrgsergser@sergserges";
$domain = strstr($moji, "@");
$result = substr($domain, 0, 2);
echo $result;

でもじつは文字列で開始位置を指定するのは良かったんだけど
開始位置より前の文字列を取得したいんだ。
afsdafkadsjfokasdjflksjdfoiejfowiejfoiwejfoiejfoiejfo;ld@vvvsss
開始位置を指定して前の文字列を取得することはできるかな?
ちなみに開始位置は同じ文字が複数ありすぎて指定できない。
0714nobodyさん2014/08/31(日) 18:55:14.49ID:???
substrの例ちゃんと読んでこい
07157132014/08/31(日) 19:04:59.43ID:ytMktGeE
自己解決できそうなんだけど
エラーが出るんだ。なんでだろう?
$moji = "nagesrgsergser@";
$mojisuu = strlen($moji);
$result = SUBSTRB($moji, $mojisuu , -2);
0716nobodyさん2014/08/31(日) 20:02:02.48ID:???
>>715
お前の頭に欠陥があるからだろ
そんなことも分からないのかゴミが
0717nobodyさん2014/08/31(日) 20:19:11.97ID:???
>>713
list($local , $domain ) = explode("@" , $moji );
0718nobodyさん2014/08/31(日) 20:44:11.20ID:???
ソース乞食に餌をやることで自己顕示欲を満たしてるのかw
哀れだなw
0719nobodyさん2014/08/31(日) 20:57:51.18ID:RpbU96wx
>>701
>>702

ありがとう
nginxを使っていて
タイムアウトの設定の変更も試していたんですが無意味でした 

なので、これ以上おもいつく節がありません
0720nobodyさん2014/08/31(日) 21:02:43.84ID:???
>>719
エクスポートをテーブル単位、それでもだめなら、大きなテーブルは複数に分割してやってみたら?
0721nobodyさん2014/08/31(日) 21:15:16.54ID:RpbU96wx
>>720
毎回そんなに面倒なことをしなきゃだめですか?
以前は一括エクスポートで150MBほどでした
0722nobodyさん2014/08/31(日) 21:20:25.72ID:???
>>719←馬鹿が真に受けて設定変えてやんの
0723nobodyさん2014/08/31(日) 21:21:22.70ID:???
>>721
面倒ならやめちまえよ知能障害
0724nobodyさん2014/08/31(日) 21:34:09.41ID:???
タイムアウトしてるってのは可能性として一番高いと思うけど
どこでタイムアウトしてるのかというとOS httpd MySQL PHPといろいろ原因があるからなぁ
0725nobodyさん2014/08/31(日) 21:34:14.73ID:???
>>721
phpでMySQLでテーブル叩いてそのまま吐かすか、
zipで固めて出力するコードを作ればいいんじゃね?
これで異常なら、そもそものデータやMySQLのアプグレが異常と言うことで。

副作用で、phpmyadmin経由でバックアップする作業から卒業できる。
phpmyadminでポチポチ操作することこそ「毎回面倒」だわ俺は
0726nobodyさん2014/08/31(日) 21:35:08.38ID:???
phpmyadminなら、zipで出せるんですがね
0727nobodyさん2014/08/31(日) 21:43:21.85ID:???
メモリ不足やろ
0728nobodyさん2014/08/31(日) 22:00:17.72ID:???
>>716
あれがふざけた質問だって分からないんだな。
0729nobodyさん2014/08/31(日) 22:07:16.52ID:???
>>719
必ず8MBで中断ならタイムアウトじゃなくて出力とかメモリとかの制限に引っかかってるんだろ。
phpmyadminかphpかnginxか何が原因か調べてみないと分からん。
0730nobodyさん2014/08/31(日) 22:35:43.31ID:???
>>719
単純にバックアップ目的ならmysqldumpコマンドをPHPから発行してみれば。
あるいは、bashなどから直接mysqldumpコマンドを実行するとか。
0731nobodyさん2014/09/01(月) 00:00:18.83ID:???
>>725
> phpでMySQLでテーブル叩いてそのまま吐かすか、
> zipで固めて出力するコードを作ればいいんじゃね?
うそだといってよバーニィ

普通にコマンドたたけよ
0732nobodyさん2014/09/01(月) 00:15:48.77ID:???
叩くなよ
もうちょっと嘘回答でこのヴァカをからかって遊ぶんだからさ
いなくなるとまた退屈になるw
0733nobodyさん2014/09/01(月) 01:04:31.29ID:UOoFEm8c
>>717
ありがとう!
一応自己解決はできたけど教えてもらった関数使ったら
プログラムがシンプルですっきりしたよ。
本当にありがとう!
0734nobodyさん2014/09/01(月) 02:49:50.88ID:UOoFEm8c
データがあれば正常に動くけど
データがないとファイルを開くとかなるんだけどどうして?
特にエラーメッセージが表示される訳でもない。
0735nobodyさん2014/09/01(月) 02:52:33.91ID:???
>>1読まないと怒られるよ
0736nobodyさん2014/09/04(木) 09:24:18.53ID:GBg0xN89
php+MySQLでブログを作って、1から勉強したいです。環境はお名前.comです。
そんなブログのソースが載っている本を教えて下さい。
0737nobodyさん2014/09/04(木) 09:29:01.32ID:90EbB4mu
本じゃないがワードプレスを改造して使う
0738nobodyさん2014/09/04(木) 09:50:00.78ID:GBg0xN89
>>737
つか、ワードプレスからソースをパクるとか出来るのは、超上級者だと思うんですよね。
なので、本でお願いします。
0739nobodyさん2014/09/04(木) 10:06:22.35ID:???
>>736
1から勉強したいなら、まずググって自分の欲しい情報を探せるようになるんだ。
まずPHP 入門 でぐぐればええがな。
RDBMSは、MySQL入門以前、中古で買ってくるほうがベターかな。
0740nobodyさん2014/09/04(木) 10:09:21.16ID:GBg0xN89
>>739
なんか、ブログと言えば、ワードプレス、ってなっちゃってて、
php+MySQLでブログのソースが載ってる本って新しいのではないんですかね?
0741nobodyさん2014/09/04(木) 10:11:21.08ID:90EbB4mu
ワードプレスをデータベース不要に改造してくれ。
ページを静的HTMLファイルにキャッシュして高速化するプラグインがあるくらいだ。
データベースなくともやれるはずだ。
0742nobodyさん2014/09/04(木) 10:14:24.63ID:90EbB4mu
動けば良いんなら簡易なやつをネットで探ればいい。
商用とかワードプレス並の仕上がりが目標ならワードプレスのハッキングくらい出来ないとダメだろう。
0743nobodyさん2014/09/04(木) 10:15:01.04ID:???
で、車輪の再発明か。
0744nobodyさん2014/09/04(木) 10:27:59.58ID:???
車輪の再発明とかいうやつは、せめて車輪が発明出来るだけの技量をつけろよ
0745nobodyさん2014/09/04(木) 10:32:18.53ID:???
データベース使うほうが楽だもんな。
ファイルでブログ作るのなんて考えるだけでいやになるわ。
0746nobodyさん2014/09/04(木) 11:04:13.50ID:???
>>740
言っていることが支離滅裂なんだが、
1からPHPを学んで覚えてブログを置きたいのか、
ブログのコードが書ければいいのか、はっきりしてくれ。

後者だとしても大凡、自分でコード書くなら1から学ぶハメになるので、
ブログのソースがどうたらとか、えらい先なんだが。
0747nobodyさん2014/09/04(木) 11:28:50.79ID:???
多人数が絡むオープンソースプロジェクトなんてのは、
コードがケチャップになりがちだからおすすめしない。
一人が開発してるやつのを参考にしたほうがいい。
ブログなんて掲示板が作れればその応用で作れるから、
掲示板を作れるようにするんだな。
0748nobodyさん2014/09/04(木) 11:53:58.40ID:GBg0xN89
>>746
1、とりあえず使えるブログのソースが欲しい
2、そのソースに関して解説がしてある
の2つの欲求に答えてくれるのは本だと思うんですよね。
0749nobodyさん2014/09/04(木) 12:04:11.05ID:???
最近の本のチェックしてねーからわかんないよ。

なんか本かって、やってみて分からんことあったら聞いて。
0750nobodyさん2014/09/04(木) 12:18:29.58ID:GBg0xN89
>>749
どうもです。
0751nobodyさん2014/09/04(木) 12:43:34.83ID:???
>>748
それ、どれくらいの部数売れる思う?
0752nobodyさん2014/09/04(木) 12:48:01.74ID:???
>>751
5000部は売れると思う。
結構売れる方だね。
0753nobodyさん2014/09/04(木) 14:13:38.44ID:???
AWSに関するスレはないのでしょうか?
0754nobodyさん2014/09/04(木) 14:59:13.00ID:???
レンタル鯖板じゃないの?
0755nobodyさん2014/09/05(金) 20:05:58.71ID:???
function abc(){}
$b= abc()->a;
var_dump($b);

この時syntax errorにならずに、var_dump($b)でNULLが返ってきます。
abc()->aの部分では何が行われているのでしょうか?
0756nobodyさん2014/09/05(金) 20:06:39.11ID:7KMpAsD4
すいません、ID出し忘れました。
0757nobodyさん2014/09/05(金) 20:20:13.28ID:???
PHP4使ってんの?
0758nobodyさん2014/09/05(金) 20:35:57.32ID:7KMpAsD4
現在はPHP5ですが、このコードが書かれていた当時はPHP4だったかもしれません
前任者の残したコードなのです。
また、大きなエラーも起こらない箇所だったためずっと発見されませんでした(別件で眺めていたら偶然見つかりました)。
たまたまうまく動いていたのか、これが意図したものなのかもわからず、そもそもこれがどういう動作なのかも分からない次第です。

他にも
if( $check == ok ){
・・・}
というやや変わった書き方をする方でした
(この場合、okが文字列定数として宣言され、$checkには"ok"が入ります)
0759nobodyさん2014/09/05(金) 20:56:21.13ID:???
コピペコードで特に意図がないってのが正解だろうな
PHP5なら今ちゃんとNOTICE出るでしょ?
エラーレポートきってなければ
0760nobodyさん2014/09/05(金) 21:38:04.31ID:???
>>755
abc(){}の処理の中身はどうなってる?
0761nobodyさん2014/09/05(金) 21:39:53.88ID:???
>>760
質問者とは別人だけど、>>755 をそのまま動かしたら確かに NULL になったよ
0762nobodyさん2014/09/05(金) 21:58:42.00ID:???
Fatalじゃないから実行はされるんじゃね
0763nobodyさん2014/09/05(金) 22:00:28.79ID:???
rubyスレかと思った
abc()をオブジェクトと解釈してるのか?
phpは変なところでザルだな
0764nobodyさん2014/09/05(金) 22:02:06.98ID:???
マジックメソッドの話か?
0765nobodyさん2014/09/05(金) 22:27:27.57ID:???
>>763
abc()の返り値が単にオブジェクトなんじゃない
そのプロパティaを$bに代入してるだけ
中身がないなら実装しかけて途中で止めたように思う
その結果aと$bがNULLになってるだけ
0766nobodyさん2014/09/06(土) 07:05:33.93ID:???
>>765
function abc(){}
$b= abc();
var_dump($b);

でもNULLになるよね
だとすると、

$b= abc()->a;

は何をやってるの?

$b = NULL->a;

だとsyntax errorになるし

こういうとこはPHPの謎仕様だよね
0767nobodyさん2014/09/06(土) 12:19:35.24ID:1c97VfqG
https://book.mynavi.jp/ec/products/detail/id=24503
よくわかるPHPの教科書 【PHP5.5対応版】
これのpdf版を買った場合、
1、パソコン、スマートフォン、両方で見れるか?
2、テキストのコピペは出来るか?
ご存じの方がいたら教えてください。
0768nobodyさん2014/09/06(土) 13:06:14.47ID:???
>>766
>$b= abc()->a;
>は何をやってるの?

abc()はnullを返しているが、その後、プロパティaを呼び出そうとしている。
そのため、その時点でabc()の返り値がオブジェクトに自動型変換されている。
多分だけどね。

http://php.net/manual/ja/language.types.object.php#language.types.object.casting
オブジェクト以外の型の値がオブジェクトに変換される時には、
stdClass というビルトインクラス(予めPHPの内部で定義されているクラス)の
インスタンスが新しく生成されます。
その際、値が null の場合は新しいインスタンスは空となります。
0769nobodyさん2014/09/06(土) 14:08:06.36ID:???
>>768
はー、なるほどね
暗黙の型変換をそんなとこでやりますかって感じだね
Warningが出るようにはなってるようだけど
0770nobodyさん2014/09/06(土) 14:14:17.34ID:???
>>766,768,769
PHP Notice: Trying to get property of non-object
                        ~~~~~~~~~~
0771nobodyさん2014/09/06(土) 14:22:11.96ID:???
>>770
768は俺だけど、そういうエラーが出るなら768の説明は誤りだね。
ゴメンなさい。
単純にプロパティを取得できなかったからnullってことかな。
0772nobodyさん2014/09/06(土) 14:24:26.39ID:???
>>771
そ。変換もしていない

if (UNEXPECTED(Z_TYPE_P(container) != IS_OBJECT) ||
  UNEXPECTED(Z_OBJ_HT_P(container)->read_property == NULL)) {
  zend_error(E_NOTICE, "Trying to get property of non-object");
  ZVAL_NULL(EX_VAR(opline->result.var));
} else {
0773nobodyさん2014/09/06(土) 15:20:59.58ID:???
>>772
あー、なるほど
でも普通ならエラーで落とすよね、そういうの…
なんでNotice出してNULL返してるんだろう
0774nobodyさん2014/09/06(土) 15:37:00.11ID:???
undefinedのNoticeと同じノリでしょ。
0775nobodyさん2014/09/06(土) 16:10:52.18ID:???
ゆるさではなかなかのものである JavaScript でもさすがに null.a はエラーになるな…
0776nobodyさん2014/09/06(土) 17:09:18.43ID:dSDmY/HD
【OS名】windows server 2012
【PHPのバージョン】5.x
【連携ソフトウェア】Apache PostgreSQL
【質問内容】
Windowsでphp使う場合オススメバージョンとか
あるのでしょうか?
5.3だとmb_系で問題が出やすいとか聞いたことがあります
Apacheを利用するWebシステムを考えてます
0777nobodyさん2014/09/06(土) 17:35:15.40ID:???
>>776
ない
なぜならPHPという時点で全てゴミだから

どのバージョンでもセキュリティホールがあって使い物にならない

IT犯罪者にお前のサーバーを踏み台として提供したいなら
どのバージョンでもおすすめ
0778nobodyさん2014/09/06(土) 18:59:44.46ID:???
>>776
SQL Serverも使うなら、32bit版5.4
使わないんだったら、64bit版で5.5以降。
0779nobodyさん2014/09/06(土) 20:52:48.11ID:g9801Nhj
if($a == 1 or $a == 2 or $a == 3)てかくけど
括弧の中を短くすることはできる?
0780nobodyさん2014/09/06(土) 21:11:16.31ID:krxgWugX
できるよ
0781nobodyさん2014/09/06(土) 21:17:32.10ID:???
用途によって
preg_match
in_array
is_int
などなど
0782nobodyさん2014/09/06(土) 21:56:21.18ID:???
あいうえお かきくけこ さしすせそ

上記の文字をランダムに時にはあいうえお、時にはかきくけこ時にはさ(ry
っていうふうにするにはどうすればよいのですか?
シャッフル巻数を使っても難しかったです
0783nobodyさん2014/09/06(土) 22:11:06.89ID:???
>>1
0784nobodyさん2014/09/06(土) 22:16:47.65ID:???
shuffle使ったってことは配列にしたってことだろ?
そしたらちゃんとランダムに並び替わるだろ
それを1行目のように全角空白でわけてくっつけたいってことなら
implodeでも使え
0785nobodyさん2014/09/06(土) 22:58:17.31ID:t0tdVzSH
配列の任意のキーのみを残してそれ以外は解除するような
組み込みの関数ってありますか?

$arr = array('cat' => '猫', 'dog' => '犬');
$newArray = 関数($arr, array('dog', 'human'));
// $arr から、`dog` と `human` のキーのみを(存在すれば)残し、それ以外は解除

宜しくお願いします。
0786nobodyさん2014/09/06(土) 22:59:48.60ID:t0tdVzSH
あ、書き込みが不十分でした。
上記の操作の場合の $newArray に期待される戻り値は

Array('dog' => '犬')

です。
0787nobodyさん2014/09/06(土) 23:20:53.74ID:krxgWugX
>>786
$newArray = $arr['dog'] + $arr['human'];
0788nobodyさん2014/09/06(土) 23:33:51.01ID:???
なんでも自分の都合にいい関数があるわけないんでforeachなりコールバック使ってやって下さい
0789nobodyさん2014/09/06(土) 23:53:32.58ID:t0tdVzSH
>>788
自作して使いまわしてたんだけど、ひょっとしたらあるのかな?
ということで質問しました。

ありがとう
0790nobodyさん2014/09/06(土) 23:54:44.63ID:???
array_filterのコールバックでキーを取得できればできそうなんだけど
0791nobodyさん2014/09/06(土) 23:59:43.57ID:???
コールバックって自分で関数作ってるのと同義だから
例えそれで出来たとしてもビルトインでどうにかするって趣旨とちょっとずれとる
0792nobodyさん2014/09/07(日) 02:41:04.02ID:???
は?
0793nobodyさん2014/09/07(日) 03:08:27.92ID:???
>>786
$arr = ['cat' => '猫', 'dog' => '犬'];
$newArray = array_intersect_key($arr, array_flip(['dog', 'human']));
var_dump($newArray);
0794nobodyさん2014/09/07(日) 06:25:32.76ID:???
遅そう
07957862014/09/07(日) 09:22:19.39ID:NG+JTjgm
>>793
ありがとう。
これが一番シンプルですね!
これから書きかえます。
0796nobodyさん2014/09/07(日) 10:54:13.04ID:x9VgIn4E
array_flip&array_intersect_keyが一番シンプルw
0797nobodyさん2014/09/07(日) 13:20:42.73ID:???
配列操作は無駄が多いし普通にforeachでやったほうがいいよ。
コードは長くなるけどコストもパフォーマンスも断然上。
0798nobodyさん2014/09/07(日) 14:17:05.48ID:???
組み込み関数だけを組み合わせたほうがパフォーマンスが良いのはあり得るだろ。
可能性として。

それともソース読んだか、あるいはベンチマーク取って断言してんの?
0799nobodyさん2014/09/07(日) 14:58:16.13ID:???
いくら組み込みが早くても無駄な処理挟めば遅くなる
この場合array_flipとか結果を完成させるには必要でも強引で冗長な関数である
ケースバイケースで$arrを増やす分には>>793が早いが
array_flipの中の配列を増やせば逆転してforeachのほうが早くなる

まぁ気にしなくていいんじゃない?そんなアホみたいに配列増やさんでしょ。
0800nobodyさん2014/09/07(日) 15:01:26.56ID:???
パフォーマンスとか遅さとか全く気にする必要ないだろ
気にするならそもそもPHPを使ってる時点で異常
0801nobodyさん2014/09/07(日) 15:01:32.23ID:x9VgIn4E
つーか1万回ループさせるわけでもないし、どんだけパフォーマンス上のメリットあるのよ
可読性や保守性が高いコードのほうがよっぽど良いコード
0802nobodyさん2014/09/07(日) 15:05:35.13ID:x9VgIn4E
プログラミング初心者が陥りやすい自己満足コードだわな
無駄にワンライナーで書いてみたり
0803nobodyさん2014/09/07(日) 15:08:05.15ID:???
>>801
それ言うならシンプルとか言ってるけど>>796は100%ないだろ
0804nobodyさん2014/09/07(日) 15:09:16.51ID:???
array_flip(['dog', 'human'])→['dog'=>'', 'human'=>'']
にすれば早いけどこれはバッドプラクティスだな
■ このスレッドは過去ログ倉庫に格納されています