トップページtech
1002コメント357KB

【PHP】下らねぇ質問はここに書き込みやがれ 4 [無断転載禁止]©5ch.io

レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん2016/03/12(土) 23:25:33.88ID:j4grSBgs
PHPに関する下らない質問用避難スレです。
まず読むこと【PHPマニュアル】
http://www.php.net/manual/ja/

前スレ
【PHP】下らねぇ質問はここに書き込みやがれ 3
http://echo.2ch.net/test/read.cgi/tech/1447495088/
次スレは>>980が立てる。10分以内に立たない場合、宣言してから立てたい人が立てること。
0002デフォルトの名無しさん2016/03/12(土) 23:27:11.25ID:j4grSBgs
◆質問用テンプレ
【OS名】CentOS
【PHPのバージョン】5.5
【連携ソフトウェア】MySQL ImageMagick
【質問内容】

◆質問する時の注意
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に関連リンクの公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。

◆質問後の注意
・ 解決しなくても回答をもらった場合はお礼を言うこと。
(荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)

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

【その他諸注意】
・ SQL・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
0003デフォルトの名無しさん2016/03/13(日) 18:01:24.11ID:9dwDTtH+
関連リンク
■本家マニュアル   http://www.php.net/manual/ja/
■日本PHPユーザ会 http://www.php.gr.jp/
■PHPNG        https://wiki.php.net/phpng
■PEARマニュアル  http://pear.php.net/manual/ja/
■メーリングリスト   http://ml.php.gr.jp/mailman/listinfo/
■ZFマニュアル    http://framework.zend.com/manual/ja/
■Smartyマニュアル  http://www.smarty.net/manual/ja/

(以下英語)
■Zend本家      http://www.zend.com/
■Zend Framework  http://framework.zend.com/
■php | architect   http://www.phparch.com/
■Smarty       http://www.smarty.net
■Smartyマニュアル http://smarty.php.net/manual/en/
■PECL本家(英語) http://pecl.php.net/
0004デフォルトの名無しさん2016/03/13(日) 18:29:54.00ID:kS6/ihj4
POSTで受け取った値でprepara+bindvalueを自動作成する方法を自分で作ってみたのですが、
$stmt = $pdo -> prepare($sql);の部分でエラーが出てしまいます。[42000]
改善策をお願いします。

$table = "$_GET['table']";
$clmname = '';
$valname = '';

foreach ($_POST as $key => $value) {
$clmname .= $key.", ";
$valname .= ":".$key.", ";
}
unset($key);

//末尾のコンマと空白削除
$clmname = substr($clmname, 0, -2);
$valname = substr($valname, 0, -2);

$sql = "INSERT INTO $table($clmname) VALUES($valname)";

$stmt = $pdo -> prepare($sql);
foreach ($_POST as $key => $value) {
$stmt -> bindValue(":$key", $clan_policy, PDO::PARAM_STR);
}
$stmt -> execute();
0005デフォルトの名無しさん2016/03/13(日) 18:56:27.35ID:PAomMvms
>>4
とりあえずSQL文吐いてみ

というかそれ以前にテーブル名やらカラム名やらを外部入力で受け取るとか正気の沙汰じゃないから
0006デフォルトの名無しさん2016/03/13(日) 19:23:29.33ID:kS6/ihj4
?INSERT INTO scouts_a(gender, age, active) VALUES(:gender, :age, :active)

$sqlは上記のような感じで、特に支障はない模様です。
※便宜上パラメーターを3つにしましたが、10ぐらいあり、内容もテーブル名によって変動します。
そのため自動作成したいと考えています。

foreachも間違っていたので修正しておきます。
foreach ($_POST as $key => $value) {
$stmt -> bindValue(":$key", ${$key}, PDO::PARAM_STR);
}

検索してみてもpdo文を自動作成するソースが見つからなかったため、
この方法はひょっとして非推奨なのでしょうか?

手動でも出来なくはない量なのですが、メンテナンス性や可読性のために挑戦してみました。
0007デフォルトの名無しさん2016/03/13(日) 19:31:11.69ID:GjqBj5dI
→に半角スペースはいらない。
$stmt = $pdo -> prepare($sql);
$stmt = $pdo->prepare($sql);
0008デフォルトの名無しさん2016/03/13(日) 19:40:29.09ID:GjqBj5dI
スペースと中括弧を入れて変数を明確にする。
{$table} ({$clmname}) VALUES ({$valname})";
0009デフォルトの名無しさん2016/03/13(日) 20:27:39.52ID:PAomMvms
>>6
PHPのバージョン, 利用するRDBMSとバージョン。
名前付きプレイスホルダで42000エラーが発生することがあった。

その方法で自動生成を実装するとSQLインジェクションのいい的だぞ
自前で実装するならDataMapperでSQLをカプセル化する手法を採るべきだし, テーブルの変更が頻繁ならテーブル生成とActiveRecordクラス生成を同時に行うようにすべき(手動では弄らない)
あんまりテーブル構造変更が頻繁ならそもそも設計を見直すべきだろうが
何れにせよテーブル名を外部入力から受け取るなんてのはまともな実装とは言えない
0010デフォルトの名無しさん2016/03/15(火) 00:55:48.95ID:vuaCyoYo
俺一人で作るWebサービス、初フレームワークだけどFuelPHPでいい?
0011デフォルトの名無しさん2016/03/15(火) 01:00:58.09ID:Yu+x6j+1
vimなら許可する
0012デフォルトの名無しさん2016/03/15(火) 01:39:32.63ID:XuEL3mf6
フレームワークも自前で
0013デフォルトの名無しさん2016/03/15(火) 12:00:31.00ID:vuaCyoYo
自前でやってたけどセキュリティ関係が不安…
0014デフォルトの名無しさん2016/03/15(火) 17:35:49.44ID:M/KZKru9
半日程費やしたのですが、もしかしてwindows環境で64bit版のPHP7とapache2.4の組み合わせは無理ですか
0015デフォルトの名無しさん2016/03/15(火) 18:52:30.10ID:6Fnnrg8u
ウェブブラウザで動くPHPのプログラムを、サーバーなしのWindowsソフトに変換する方法を教えてください。
0016デフォルトの名無しさん2016/03/15(火) 19:07:10.09ID:Yu+x6j+1
.exeにするとして画面どうすんの引数授受どうすんのjavascriptどうすんの
0017デフォルトの名無しさん2016/03/15(火) 19:47:53.75ID:0p8ka/G8
htaでいいじゃん
javascriptに変える必要があるけど
0018デフォルトの名無しさん2016/03/15(火) 20:20:47.01ID:61Q7YxSP
PHPって5年後も開発されてると思う?
0019デフォルトの名無しさん2016/03/15(火) 20:39:21.88ID:O2FU5DmM
Webの仕組みが大きく変わらないなら、残っているでしょうね
0020デフォルトの名無しさん2016/03/15(火) 21:49:01.86ID:6tnBTcMG
>>15
Nabetapって言うのがある。
これはexeには変換できないけど自分のソフトのようには見せれる

>>16
CGIは元々コマンド引数ないよ。
Nabetap使うと画面出てPHPとjavascript使えるよ
0021デフォルトの名無しさん2016/03/15(火) 22:15:38.87ID:bRerDqNG
PDO で LIKE を使った部分一致検索をするとき、値そのものに % なんかが含まれてる場合のエスケープってどうやってる?
泥臭く strtr かなんかでやるしかない?
0022デフォルトの名無しさん2016/03/15(火) 22:26:34.65ID:Yu+x6j+1
addcslashesの第二引数に指定してやるとか

>>20
GETやPOST、それと考え方によっちゃcookieなんかも引数だろうというのはおいとくとしても
簡易Webサーバ&(IE利用の)簡易Webクライアントを「サーバなしのWindowsソフト」というのはどうなんだ
bcompilerって手もあるが
0023デフォルトの名無しさん2016/03/15(火) 23:05:03.91ID:g1PqSQB6
>>21
str_replace を使ってる。
%は\\%に置き換える。_は\\_に置き換える。
strtr でも同様だろう。
他にやりようが有れば知りたいね。
0024デフォルトの名無しさん2016/03/16(水) 00:52:15.32ID:YUxkRKsr
>>22
ネットつながってなくても動くんならWindowsソフトでいいんじゃない?
0025デフォルトの名無しさん2016/03/16(水) 01:20:47.41ID:BN+Lq3m+
配列に対してある操作をする時って、
foreachとarray_*関数使うのはどっちが早いの?
例えばある配列から特定のキーと値だけを取り出す場合、
foreachで回して取り出すのか、array_searchで取り出すのかで処理スピードに差は出てくる?
0026デフォルトの名無しさん2016/03/16(水) 01:22:13.55ID:W+A3q4l0
なぜ試さないのか
0027デフォルトの名無しさん2016/03/16(水) 03:07:40.77ID:6pUenI4F
>>22
プロセス間通信にhttp使ったらそれはもうサーバなしのソフトとはいえないだろ的な?
0028デフォルトの名無しさん2016/03/16(水) 09:42:43.04ID:31XCK0BE
そういえば毎回処理速度を計測するの面倒だけどみんなちまちま計測してるの?
俺は関数あればそっち使って、問題ありそうなら回してるって基準だけでやってる。
よほど大きなデータじゃなければいちいち計測なんかしてない。
0029デフォルトの名無しさん2016/03/16(水) 10:44:00.47ID:Ny+vSnKw
普通は速度よりもコードの読みやすさを重視する
関数があれば関数を使う
速度が要件を満たさない場合にボトルネックの発見と改善のために計測する
0030デフォルトの名無しさん2016/03/16(水) 11:31:36.06
二重ループになってるところくらいしか計測しないっすわ
データベースはデータベースで計測出来るし
0031デフォルトの名無しさん2016/03/16(水) 13:01:21.01ID:uy33h+7U
phpに詳しい方、教えてください

現在JavaScriptでロード時(リロード時)に特定のhtmlタグの値を書き換えるコードを使用しているのですが、訳あって使うことができなくなります

phpは使うことができるのですが、上記の動作と同じようなものは作成可能でしょうか

よろしくお願いします
0032デフォルトの名無しさん2016/03/16(水) 16:57:24.73ID:WJMGp9Ue
詳しい状況がわからないけど、出来るかできないかといえば出来る。
ただそれがあなたの思ってるとおりのものなのかは保証できない。
最初から書き換えたものを使えばいいのでは?という疑問に答えてくれれば、
もっといいアドバイスが出来ると思う。
0033デフォルトの名無しさん2016/03/16(水) 17:34:10.57ID:uyHrsjE6
>>31
PHPを使おうと使うまいと、普通のウェブブラウザを使う限りJavascriptは使えると思うが。

PHPはリロード痔にタグを書き換えるどころか、全く違うHTMLを出力することもできる。
常に全く同じHTMLを出力するだけなら、HTMLでよく、PHP使う必要ないでしょ。
だから、できると思うが、できるんですか?と聞いている人にできるかどうかは分からないよ。
0034デフォルトの名無しさん2016/03/16(水) 19:56:53.04ID:08Q65Pye
いやこれは答えとしては出来ないだろうな
phpはhtmlそのものを書き換える事は出来るけどタグだけなら書き換え出来ない
0035312016/03/16(水) 20:02:58.06ID:uy33h+7U
>>32
>>33
お二方、レスありがとうございます

>>32
個人的なことなのですが、正確には書き換えるではなく削除するでした
htmlの話になるので割愛しますが、textareaタグの初期値をロード時に削除しないとplaceholder属性を使用することができないため、JavaScriptを使って削除していました。
本題の初期値を指定しなければいいという話になりますが、指定せずにいるとバリデーターにて構文エラーが出て気持ちが悪いという本当にただの個人事です。

>>33
おっしゃるとおりJavaScriptは使おうと思えば使えます。
使うことができないという理由はこちらもhtmlの話になるので割愛しますが、doctype宣言をhtml4.01からiso-htmlに切り替えるためということになります。
iso-htmlではJavaScriptを使用することができないため、phpでできないかと考えたしだいです。

お二方のアドバイスからphpでも可能と判断しました。
これから参考書を買ってきます。
レスをくださり、ありがとうございました。
0036デフォルトの名無しさん2016/03/16(水) 21:26:32.52ID:bVagARgS
>>34
はあ?タグを書き換えられないだと? 意味不明。

#!/usr/bin/php

print "<html><body>";

if($tag_default){
print "<tag 1>";
}
else{
print "<tag 2>";
}

print "</body></html>";
0037デフォルトの名無しさん2016/03/16(水) 21:34:35.21ID:/m4HeSgG
それPHPのコードじゃないw
0038デフォルトの名無しさん2016/03/16(水) 21:38:12.31ID:08Q65Pye
>>36
上の人曰くロード時にjsを使ってタグを書き換えると書いてある
なら最初からタグを書き換えた"html"をphpで吐けばいいと言う話でそちらの例文通りなんだが
わざわざタイミング的にロード時に"タグ"を書き換えるというなら出来ないと
0039デフォルトの名無しさん2016/03/16(水) 21:38:16.49ID:6pUenI4F
>>35
なんか不安になる流れだけど、言葉を借りながら書くと、ロード後に何か変更することはできないよ。
0040デフォルトの名無しさん2016/03/16(水) 21:39:18.20ID:TswKIM7e
>>36
いやぁ>>35の要求は無理でしょ
バリデーションエラー抑制なんだから読まれるHTMLそのものにはtextareaの初期値が設定されている必要があり, onload或いはreadyイベント時にクリアする必要があるわけでしょ
クライアントサイドのお仕事なんだからサーバサイドではどうにもならん
0041デフォルトの名無しさん2016/03/16(水) 21:42:40.76ID:1Ad9HLvE
>>40
form部品のidだかnameだかを動的に変えてやってcacheも無効にすればあるいは
0042312016/03/16(水) 21:54:52.61ID:uy33h+7U
みなさんレスをくださり、ありがとうございます。
荒らしてしまったようで申し訳ありません。

>>38
補足として、ロード時にタグを書き換えるではなく、ロード時にタグの値を削除するです。
before:<textarea>hoge</textarea>
after:<textarea></textarea>
紛らわしかったですね。ごめんなさい。

>>39
ロード後というよりはロード時なのでScript系でいうonload的な何かトリガーになる関数やメソッドがないかなと思いまして。
0043デフォルトの名無しさん2016/03/16(水) 22:41:03.47ID:TswKIM7e
>>41
実装案あるなら詳しく知りたい
0044デフォルトの名無しさん2016/03/16(水) 22:41:21.24ID:uh2T6fm3
>>37
PHPじゃなければなんだ?
PHPは、printf("abcdefg\n"); と書いても動くで。

>>40
リロードされるということはサーバーが情報出すわけでどうにでもなる。
もちろん、リロードさせないで変えることは、PHPというより、CGIではできない。

<html><body>
<?php
なんか処理
?>
</bdoy></htm>

だと、bodyタグは書き換えられないけど、

print "<html>"
if($default){
print "<body>";
}
else{
print "<aaaa>";
}
print "</body></.html>"

だと書き換えられるだろ。
タグ書き換えられないなら、もはやCGIの意味ないだろ。
書き換える条件は、GETまたはPOSTで受け取れるだろ。何言っているのか意味不明だよマジで。
0045デフォルトの名無しさん2016/03/16(水) 22:54:25.28ID:TswKIM7e
>>44
何でCGIとか言い始めたのか分からんのだけど
で, >>35の要求はクライアントサイドでの書き換えだと読めるわけだし, それは>>42でもそうだということが分かるわけだけど, サーバサイドで何するの?
0046デフォルトの名無しさん2016/03/16(水) 23:06:42.52ID:uh2T6fm3
>>45
「ロード時」って言っているんだからサーバーだろ。

というか、おまえのブラウザはPHPプラグインでもあるのかよ?
聞いたことねーぞそんなの。
どこに、ブラウザのクライアントサイドでPHP使っている奴がいるんだよ。
話にならんわマジで。
PHPはJavascriptみたいにクライアントサイドでは動くわけない。
そんな低次元な話を言いたいわけ?当たり前じゃん
0047デフォルトの名無しさん2016/03/16(水) 23:13:18.12ID:TswKIM7e
>>42
とまぁサーバサイドからすればロード後もロード時もレスポンス送出後の話なので関与出来ない。
当然JavaScriptで操作するイベントハンドラもサーバ側からは全く見えない。
0048デフォルトの名無しさん2016/03/16(水) 23:21:29.98ID:yE3DB2AT
つまりクライアントサイドPHPという方向
0049デフォルトの名無しさん2016/03/16(水) 23:28:54.37ID:UiCQsACT
>>46
既にあるシステムの出力をいじりたいんだろ?
サーバサイドを自由にできるなら既存の出力処理に手を入れる話だろ。
PHP がどうとかいうレベル以前のことなわけで。
0050デフォルトの名無しさん2016/03/16(水) 23:29:40.46ID:uh2T6fm3
まあ、ここにバカがいることから分かるように、
サーバーとの通信で成り立っているから、
クライアントだけで完結するプログラムで簡単にできることも、CGIとなると難しいんだよ。
できるんですか?って聞いているような人にはできないから諦めなよ。
バカにかかるとできることもできなくなる。
それはどんな言語でもどんなプログラムでも同じ。
0051デフォルトの名無しさん2016/03/16(水) 23:42:41.54ID:UiCQsACT
バカは誰なんだかw
後半には同意だがな
0052デフォルトの名無しさん2016/03/16(水) 23:50:29.07ID:t34HQYxh
>>31
>上記の動作と同じようなものは作成可能でしょうか
PHPでは無理。不可能。

>>42
>Script系でいうonload的な何かトリガーになる関数やメソッドがないかなと思いまして
PHPには無い。

だから参考書は買わなくていいぞ。
0053デフォルトの名無しさん2016/03/16(水) 23:52:26.23ID:TswKIM7e
もうNGしちゃったけど, 見てて恥ずかしいから補足しておくと, 多くの場合PHPはmod_phpで実行されるからCGIではない
CGIとはCommon Gateway Interfaceの略で, Apacheならばmod_cgiやfastcgiモジュールがPHPインタプリタを叩いて実行するもの
0054デフォルトの名無しさん2016/03/17(木) 00:04:39.60ID:SrjbyMW+
ちょっとこのひとすごすぎない ID:uh2T6fm3

> ロード後というよりはロード時なのでScript系でいうonload的な何かトリガーになる関数やメソッドがないかなと思いまして。
onloadはロード直後に動くイベントなのでロード後ですよ。
で、まぁ、PHPでそれは無理。
0055デフォルトの名無しさん2016/03/17(木) 02:10:23.89ID:E3PmrLA5
>>54
Javascript使わないって言っているんだから、onload関係ないでしょ。
それはJavascriptなんだから。
リロードかかるということは、サブミットかかったってことだから、
サブミット(Enter)で、サーバー側に情報送って、サーバー側のPHPが処理すればいいの。
ロード後はそりゃ何もできないよ。
でも必ずロードされるんだから、ロード前に処理ができるでしょ。
Javascript使わないって言っているのに、ロード後、ロード後って気でも狂ったの?
Javascript使わないならJavascriptの処理はできないが、それは当然のことで君がわざわざ言う理由が分からん。

>>53
いつの時代の話してるんだよ。
もうPHPはCGIが普通になっている。
詳しい事情はよく知らないが、もうモジュール版はほとんど使用されてない。
今はモジュール版しか使えなかったレンタルサーバーも、逆にPHPはCGIでしか使えなくなってるよ。
PHP側がCGI推奨してモジュール版非推奨になったんじゃないの?
最新のPHPでもモジュール版ってあるの?
0056デフォルトの名無しさん2016/03/17(木) 04:16:17.63ID:+pOWXd9M
>>43
実装と言えるほどのもんじゃないけど
ブラウザがform部品の値を維持するのって、「同じform部品である」と認識してるからでしょ
受諾htmlソースに差異がないから「同じform部品である」と認識されて、んでF5押しても値を引き継ぐと
厄介なことにブラウザごとにこの維持条件が多少違うから、大昔からformのリロード問題が面倒だったわけで

だから、
<html><body><form action="form.php" method="post"><textarea name="<?= (string)(mt_rand(15123313, 75123313)) ?>"></textarea></form>
実際にこんなん書いたら手元に環境では素のF5押下でtextareaの値がクリアされた
真面目に実装するなら、<?= 'textarea'.( (string)(mt_rand($start,$end)) ) ?> とかにしといて
submitされて値を受け取るform.phpで$_REQUESTなり$_POSTや$_GETなりをforeachして値があるかチェックすりゃいい
その程度
0057デフォルトの名無しさん2016/03/17(木) 04:21:00.26ID:RyL0OfbX
>本題の初期値を指定しなければいいという話になりますが、指定せずにいるとバリデーターにて構文エラーが出て気持ちが悪いという本当にただの個人事です。

textareaにそんなルールあったっけ?
0058デフォルトの名無しさん2016/03/17(木) 04:30:16.22ID:+pOWXd9M
あー、一応56の補足
>>35のレスから、textareaで、placeholderを有効にするためにリセットしたい、と読んだからこう書いたけど
別にtextareaじゃなくてinputでもinnerHTML/textContentsじゃなくてvalueの中身でも好きにしていいと思う

それとDOMツリーが何基準で構成されてるか知らんからアレだけど、もしかしたら
<textarea>ではなく<form>のほうの、あるいはnameだけでなくidも、変えてやる必要があるかもしれない

>>57は自分も興味ある。iso-html使ったことない
0059デフォルトの名無しさん2016/03/17(木) 04:42:48.51ID:RyL0OfbX
iso-htmlは知らないけど一応html5でやってきた
結果は問題なくパスしたし仕様書にも特に初期値入れろなんて書いてないような
(隅々まで読んだわけじゃないけど)
例にも初期値入れてないサンプルが書かれてるし不要なんだと思う
ただW3Cのバリデーターでは問題なかったけどAnother HTML-lintでは指摘されるね
どっちを信用するかといったら自分はW3Cを信用するけど
0060デフォルトの名無しさん2016/03/17(木) 04:50:59.99ID:+pOWXd9M
え、バリデータが云々ってそういうことなのか
ユーザが入力した内容がリロード時に残ってそれが何かのチェックに引っかかるのかと勘違いしてた
だからhtmlの話なのか……>>56,58まったく意味ないわすまん iso-htmlじゃスクリプトの類使えないらしいしなあ
0061312016/03/17(木) 09:35:54.48ID:7bUuFC4K
おはようございます。
みなさん沢山のレスをくださり、ありがとうございます。

>>47
関与できないのですか
phpはサーバーサイドで動くので あるいはと思たのですが

>>52
不可能ではしょうがないですね
でもphpは学びたいので参考書は買うことにします。

>>54
phpではロードがトリガーになるタイプの関数などはないのですか

>>57
>>59さんのおっしゃるとおり http://openlab.ring.gr.jp/k16/htmllint/htmllint.html
では指摘される箇所です。w3cの構文チェックでは問題ありません。

>>58
アドバイスありがとうございます
inputだけならvalueは空でも問題が発生しないのですが、textareaだけは融通が利かず困っております。

問題の解決には時間がかかりそうですが、妥協せずに努めます。
>>31の質問についてはここで〆させていただきます。
皆さん本当にありがとうございました。
0062デフォルトの名無しさん2016/03/17(木) 15:09:51.59ID:tyGZO1LH
>>54
マニュアル読んでないの?
http://php.net/manual/en/install.unix.commandline.php
0063622016/03/17(木) 15:10:32.51ID:tyGZO1LH
>>54じゃないわ>>55
失礼
0064デフォルトの名無しさん2016/03/17(木) 15:33:57.91ID:C8WQ31QC
>警告
>Apache2 の MPM マルチスレッドモードを実運用環境で使用することは推奨されません。
>代わりに prefork MPM を使ってください。
>これは Apache 2.0 および 2.2 におけるデフォルトの MPM です。
>prefork MPM を使う理由については、 マルチスレッド版 MPM の Apache2の FAQ エントリを参照してください。

意訳
worker使うにはfastcgi入れてね

今nginx+fastcgiで構築中
0065デフォルトの名無しさん2016/03/17(木) 23:09:31.14ID:tyGZO1LH
分かった, 多くがmod_phpという点は撤回しよう
0066デフォルトの名無しさん2016/03/18(金) 02:50:58.31ID:VCEknKj5
>>55 の人は状況を理解できたのかな。
0067デフォルトの名無しさん2016/03/18(金) 16:25:00.45ID:b9TT5Thu
PHPで掲示板作りたいんだけどどうやって作ればいい?
0068片山博文MZ ◆T6xkBnTXz7B0 2016/03/18(金) 16:34:07.36ID:Ap+aghgX
>>67
SQLを勉強。
データベースを元にレス一覧を表示するページを作る。
データベースにレスを追加する機能を付ける。
個人認証とアクセス規制の機能を付ける。

RoRの方が簡単だよ。
0069デフォルトの名無しさん2016/03/18(金) 16:36:42.93ID:6oRuSaMu
>>67
まずは基礎的なことを学べばいい
ファイルの読み書きとPOST,GETの概要がわかれば作れる
0070デフォルトの名無しさん2016/03/18(金) 16:42:05.89ID:R++Q/oTK
こんなとこで聞くような人にはどっかに落ちてたこんなので十分
<?php
$fp = fopen('log.csv', 'a+b');
if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['name']) && isset($_POST['text']) ) {
fputcsv($fp, [$_POST['name'], $_POST['text']]);
rewind($fp);
}
$rows=[];
while ($row = fgetcsv($fp)) $rows[] = $row;
fclose($fp);
function h($str) {
return htmlspecialchars($str, ENT_QUOTES, 'UTF-8');
}
?>
<html>
<meta charset="UTF-8">
<title>掲示板</title>
<h1>掲示板</h1><h2>新規</h2>
<form method="post">
名前: <input type="text" name="name" value=""><br>
本文: <input type="text" name="text" value=""><br>
<input type="submit" value="投稿">
</form><h2>一覧</h2><ul>
<?php foreach ($rows as $row){ ?>
<li><?=h($row[1])?> (<?=h($row[0])?>)</li>
<?php } ?>
</ul>
0071デフォルトの名無しさん2016/03/18(金) 17:07:51.15ID:tFp6SKta
>>70
試しにそのスクリプトを動かして見たんだが、log.csvには何も書き込まれん。
動かんぞ
0072デフォルトの名無しさん2016/03/18(金) 17:37:32.82ID:ylD08sGN
全くの初心者でこれを作るのに3ヶ月かかった恥ずかしいけど晒すぜ
<?php
header('Content-Type: text/html; charset=UTF-8');
date_default_timezone_set('Asia/Tokyo');
$log = 'log.txt';
$name = 'nanashi';
if (@$_POST['name'] && @$_POST['comment']) {
$name = $_POST['name'];
$now = date('y/m/d H:i');
file_put_contents($log, mb_convert_encoding("{$_POST['name']}<>{$_POST['comment']}<>{$now}\n", 'UTF-8', 'UTF-8'),

FILE_APPEND | LOCK_EX);
}
$read = file($log);
array_map(function($a){
return mb_convert_encoding($a, 'UTF-8', 'auto');
}, $read);
$len = count($read) - 1;
?>
<form method="post">
Name;<input type="text" name="name" size="10" maxlength="10" value="<?php echo $name; ?>">
Comment:<input type="text" name="comment" size="50" maxlength="50">
<input type="submit">
</form>
<ul>
<?php
for ($i = $len; $i >= 0; $i--) {
$src = explode('<>', $read[$i]);
echo '<li>' . htmlspecialchars("{$src[0]}:{$src[1]}({$src[2]})", ENT_QUOTES, 'UTF-8') . '</li>';
}
?>
</ul>
0073デフォルトの名無しさん2016/03/18(金) 18:16:32.51ID:Ncw6iORz
Route::post('/task', function (Request $request)

larevelの上記コードで
http://localhost/laravel/public/から
http://localhost/laravel/public/taskに行くと思うのですが、

http://localhost/taskに移動して404が出てしまいます。
初フレームワークでいまいちピンと来ないのでご教授願います。
0074デフォルトの名無しさん2016/03/18(金) 18:18:38.48ID:ylD08sGN
http://tamae.2ch.net/test/read.cgi/php/1358215310/
こっちで聞いたほうがええで
0075デフォルトの名無しさん2016/03/18(金) 18:27:28.59ID:kCkFI5Um
閉じ括弧足りてへんで
0076デフォルトの名無しさん2016/03/18(金) 18:44:41.00ID:4GbB4r0Q
掲示板のスクリプトが全然動かねぇ…
ファイル書き込みできない理由がわからんな…
0077デフォルトの名無しさん2016/03/18(金) 18:56:49.98ID:ylD08sGN
親ディレクトリやログファイルのパーミッションが正しくないんちゃいます
0078デフォルトの名無しさん2016/03/18(金) 19:11:37.81ID:Ncw6iORz
php artisan serveでした。
こんなのドキュメントにさえ書いてなかったぞ
0079デフォルトの名無しさん2016/03/18(金) 19:15:56.65ID:VCEknKj5
http://localhost/laravel/public/
そもそもこんなアクセスが可能な時点で何か間違えてる
0080デフォルトの名無しさん2016/03/18(金) 19:19:01.05ID:Ib/Six5x
>>77
いや、単純なファイルへの書き込みプログラムは動くんだがここで上がっている掲示板が動かん。
Macだからログファイルを777に設定してみたが無駄だった
0081デフォルトの名無しさん2016/03/18(金) 19:28:18.96ID:VCEknKj5
>>80
試してないけど、少なくともphp5.4以降じゃないと動かないかと
0082デフォルトの名無しさん2016/03/18(金) 19:52:51.02ID:PmB3GW7n
>>81
後方互換性はあるよね?
PHP 7.0.4 (cli) (built: Mar 6 2016 20:04:17) ( NTS )
Copyright (c) 1997-2016 The PHP Group
Zend Engine v3.0.0, Copyright (c) 1998-2016 Zend Technologies
0083デフォルトの名無しさん2016/03/18(金) 20:15:10.33ID:VCEknKj5
内容的に、試してるのって>>70でいいんだよね。
動かしてみたら動いたよ。
0084デフォルトの名無しさん2016/03/18(金) 20:25:43.68ID:fETB3aTj
symfony1を使うことになった… 今更propelだなんて、石器時代に戻ったようだ…
0085デフォルトの名無しさん2016/03/18(金) 21:05:02.39ID:ylD08sGN
なーんもエラーメッセージ出てないの?
action先指定してないせいとかそんなんだったりして
0086デフォルトの名無しさん2016/03/18(金) 22:19:38.49ID:1/+/M8CG
>>85
何も出てないね。
action先指定してもダメ
調べたらPOSTされた値の取得失敗してる
よくわからん
0087デフォルトの名無しさん2016/03/18(金) 23:51:19.80ID:VCEknKj5
スーパーグローバルの中身それぞれ確認してみたりした?
0088デフォルトの名無しさん2016/03/19(土) 10:23:11.43ID:RdVsRxwn
PHPによるwebアプリ開発を主目的とした場合、オススメのパソコンありますか?
現在は一人でwindowsのVistaを使っていますが買い替える予定です。
開発者はmacの方が多いんでしょうか?
0089デフォルトの名無しさん2016/03/19(土) 10:53:37.88
>>88
VisualStudioにPHP Toolsを入れるのが一番捗るぞ
Windowsでよろしい
0090デフォルトの名無しさん2016/03/19(土) 12:07:25.47ID:TH+k+4Mf
PHPってなんでこんなに最高な感じなんですか?
0091デフォルトの名無しさん2016/03/19(土) 12:39:27.23ID:7KrQRChZ
>>88
開発バリバリやっている人ならMacがおすすめ。
ただし、Macは値段高いよ。
俺はmid2015 16GBのMBP使ってる
brewで簡単にいろいろ入れられるのは便利だね
IDE使っているとすぐメモリ10GB近く食われてるから8GBだときついかも
0092882016/03/19(土) 13:09:06.17ID:KQyZU1EN
>>89
ありがとうございます。参考になります。
10ならIDEのもっさり感がないと期待したいです。

>>91
調べてみたら爆速との評価で羨ましいです。
ただお高いですね・・・
今はWindows10を買って、Macの購入は今後の目標にするのが現実的みたいです。
ありがとうございました。
0093デフォルトの名無しさん2016/03/19(土) 13:17:01.38ID:KP8Apys+
>>92
持ち運ぶ事がなければデスクトップ、持ち運びたいならノート
メモリーは 8G 以上、16G あれば十分。当然OSは64ビット版。
デスクトップであればHDD 2台内蔵しておくと何かと便利。

OSはWindowsかLinux、より多く使う可能性があるものをインストール。
その後、他方をVM使ってインストールする。

これで1台のPCで2台分になり、サーバー・クライアント環境が実現できる。
0094デフォルトの名無しさん2016/03/19(土) 14:01:59.09ID:uL3uF0Qy
>>87
プログラムは>>72のやつなんだかやっぱりだめだわ
$_POSTに値が入っていない
postでリクエストを受け取っているのに値がないってどういうこっちゃ
フォームにhiddenで値を仕込んでみたりしたが値が入ってなかった。
0095デフォルトの名無しさん2016/03/19(土) 15:22:31.48ID:S6HwApMW
試しに@抜いたら?
0096デフォルトの名無しさん2016/03/19(土) 15:32:07.50ID:JCgDTcvT
>>95
Undefinedだね。
issetで見ても入ってないしどうなってるんだ…
0097デフォルトの名無しさん2016/03/19(土) 15:38:28.26ID:S6HwApMW
php,Web鯖が動き、簡単なpostが入らないてもう設定ファイルを疑うレベルやな
鯖の再起動は?
0098デフォルトの名無しさん2016/03/19(土) 15:40:12.50ID:KlqJkaFE
まずは他のブラウザやスマホからPCへと閲覧環境を変えたりしてみる
そこで問題がなければサーバ側に問題があると予想ができる
phpかwebサーバの設定が濃厚だけど
問題がosまで及ぶと一般人には難しいかもしれん
0099デフォルトの名無しさん2016/03/19(土) 16:01:53.57ID:TH+k+4Mf
(´・ω・`)
0100デフォルトの名無しさん2016/03/19(土) 16:05:51.16ID:OXv0vTm9
>>97
PHP自体は動くんだが値を受け取れない状態だからもうよくわからん
PHPStormのビルトインサーバーでデフォルト状態のままなんだがなぁ…
再起しても意味なかったで。
わからんから他で質問してみたわ。
0101デフォルトの名無しさん2016/03/19(土) 16:14:40.54ID:8q6oCiAL
var_dump($_POST)はemptyなの?
0102デフォルトの名無しさん2016/03/19(土) 16:45:48.19ID:FPRwOkHw
>>101
array(0) { } だった
0103デフォルトの名無しさん2016/03/19(土) 17:29:32.94ID:MsPwdRrK
なぜフレームワークの簡易サーバで試す
ぐぐったら$_POST always empty とか腐るほど出てくる
0104デフォルトの名無しさん2016/03/19(土) 17:54:45.58ID:8q6oCiAL
>>102
そもそもinputのvalueに値は入ってるのかな?
ためしにhiddenで適当な値を渡してみてはどうだろう。
それでダメならサーバ設定かなあ
0105デフォルトの名無しさん2016/03/19(土) 17:58:17.54ID:8q6oCiAL
いや違うか。
空でもvar_dumpしたらname=>''ってなるか。
0106デフォルトの名無しさん2016/03/19(土) 18:27:23.31ID:69KMUp3G
>>103
まさにこれだった。
https://www.reddit.com/r/PHPhelp/comments/3uxapu/phpstorm_local_php_5616_post_always_empty/

$post = file_get_contents('php://input');を追加して$postから値をとったらできたわ
0107デフォルトの名無しさん2016/03/19(土) 22:25:45.21ID:FGEWUki8
どなたかご教授ください。

http://codezine.jp/article/detail/937

この記事の一番上にある黄色い枠内のPHPコードについてなのですが、コードの内容としては「変数emailに格納されたメールアドレスをエンティティ化してURLと一緒に吐き出している」という感じでいいのでしょうか。
よろしくお願いします
0108デフォルトの名無しさん2016/03/20(日) 01:51:37.61ID:7rdlXsW/
urlというと語弊がある気もするが、それで合ってる
0109デフォルトの名無しさん2016/03/20(日) 01:57:35.30ID:sIxj3/qZ
13行目からのhideEmailの使い方のサンプルとしてはそんな感じのことをしている
そのサイトはちゃんと配慮した書き方をしてないせいで
実行結果みると何もかわってないように思えるけど実際は
>実行すると以下のような出力になる
の(2個目の黄色い)部分はこんな風になってる
※ここ(2ch)でも&を半角にすると見た目わからなくなるので全角&で書く

<a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#109;&#101;&#64;&#101;&#120;&#97;&#109;&#112;&#108;&#101;&#46;&#99;&#111;&#109;">
&#109;&#101;&#64;&#101;&#120;&#97;&#109;&#112;&#108;&#101;&#46;&#99;&#111;&#109;
</a>
0110デフォルトの名無しさん2016/03/20(日) 06:49:09.21ID:7rdlXsW/
どうせ全角に置換するなら&を&amp;に変えれば良いのではないか
01111072016/03/20(日) 09:48:22.76ID:Rtd+5JCT
おはようございます。

>>108
合ってましたか。良かったです。

>>109
実行後の結果を見たらそのようになっていました。php初心者の自分から見れば謎技術です。

皆さんレスをくださりありがとうございました。
最後にひとつ気になることがあるのでアドバイスをください。

今回のPHPコードは結果としてメールアドレスをエンティティ化していますが、
PHPコードを使用せずに最初から「http://www.luft.co.jp/cgi/coding.php」のようなサイトを使ってエンティティ化したメールアドレスをHTMLに組み込んでいる場合とではセキュリティ(回収ロボット対策)に違いが生じるものなのでしょうか。

よろしくお願いします。
0112デフォルトの名無しさん2016/03/20(日) 11:20:55.28ID:7rdlXsW/
最初から実体参照にしてようがphpで都度実体参照にしようが、受け取る側にとっては同じ
どっちかってーとphpというよりHTTPのおはなしだなや

ロボット対策としては、実体参照を使うより
画像化するとかjavascript経由でdecodeさせるとかの方が良い気もするけど
経験則ではすごく単純にやるだけでも画像化するとほぼ全くスパム来ない
0113デフォルトの名無しさん2016/03/20(日) 11:47:54.77ID:ocz4IH7r
人間ならwebサイトの内容みてメールアドレスがこれだなってのがわかるけど、
botはwebサイトのソースコードを解析してメールアドレスを探し出す。
レベルの低いbotは、〜@〜.comみたいなのでメールアドレスと判断するから、
実体参照にしておくとそのルールにはひっかからなくなるっていうだけのお話。
だから>>111のサイトで変換したものを使っても差はない。
むしろ最初から変換したものを静的に使ったほうが、動的に毎回変換するより賢い。
並のbotは実体参照に変換されたのをさらにデコード(元通りに)してから判別するので無意味。
あくまでも数多くあるbotの中でもっとも低レベルなbotの対策と捉えた方がいい。
0114デフォルトの名無しさん2016/03/20(日) 12:35:04.56ID:q7lvq1yy
GDで出力すればいいじゃない
01151072016/03/20(日) 12:37:18.67ID:Rtd+5JCT
レスありがとうございます。

>>112
画像化すると良いというのはよく見かけますが本当だったんですね。

>>113
エンティティ化したメールアドレスは低レベルなロボットには対策できるんですね。

お二方、アドバイスありがとうございました。
これからサイト作りに励みたいと思います。

ありがとうございました。
01161072016/03/20(日) 12:40:49.25ID:Rtd+5JCT
>>114
レスありがとうございます。
今の自分にはGDは使いこなせませんです;;
0117デフォルトの名無しさん2016/03/20(日) 13:08:19.56ID:R3VnfHe8
GDなんか使わなくても比較的簡単に使える
http://www.maurits.vdschee.nl/php_hide_email/
0118デフォルトの名無しさん2016/03/20(日) 13:12:07.42ID:ocz4IH7r
誤解してるようだから言うけど、実体参照変換は全く無意味だからね。
ちょっとコード追加するだけでデコード出来るし、初心者でもそんくらい簡単に出来るから。
ただGD使って画像ねじまげたりまでする必要はない。
画像解析までいくと導入ハードルはあがるし、作業も大変なだけだから、そこまでやるスパマーはそうはいない。
他の人も言ってるけどアドレスかいた画像おいとおけばいい。
画像に関して強いて言うならば、mail.jpgとかわかりやすい名前にはしないほうがいいってことぐらい。
でも実際スパマーが使ってる手口は総当り攻撃的あるいは辞書攻撃的に、
適当な文字列でYahooとかGmailとかメジャーなアドレスを作成して、
実際にそのメールアドレスが存在するか調べた後にそこに送信してるだけ。
01191072016/03/20(日) 16:06:37.44ID:Rtd+5JCT
レスありがとうございます。

>>117
今の自分にはエベレストのように高いハードルです。

>>118
やはり画像が一番無難のようですね。

本当はメールフォームを置くのが一番なのでしょうが、訳あって置くことができないため、このような質問をいたしました。
納得のいく答えが出たので>>107の質問はここで〆といたします。
沢山のレス、ありがとうございました。
0120デフォルトの名無しさん2016/03/20(日) 18:59:16.49ID:UVbtKDHl
PHPではスーパーグローバルは直接操作せず、filter_input()使えってことだけど、
$_FILESはどうするのかな?
0121デフォルトの名無しさん2016/03/20(日) 19:23:05.07ID:ocz4IH7r
そんなことはない
isset使った三項演算子のコードで書いてる人のほうが多分多い
php7では??演算子ってのがあってそれが主流になっていくと思われる(タブン)
0122デフォルトの名無しさん2016/03/20(日) 21:27:02.46ID:UVbtKDHl
106あたりを読んでたら、
今後スーパーグローバルの直接参照ができなくなるんじゃないかと焦ったんだけど、
邪推かね。

やれ、10年分汗かいた。屁でもして寝るか…
0123デフォルトの名無しさん2016/03/21(月) 06:14:59.31ID:csZVNDaX
>>121
初見だと「おっ書くの楽になるないいかも」と思ったけど
これってnullか未定義しか拾えないし判定に使ったものと実際に代入するものを別にできないよな
使われることなく忘れられていきそう
0124デフォルトの名無しさん2016/03/21(月) 07:33:32.57
>>121
empty(判定する変数 ? : 空でなければこうする);
ってどうなりますか
0125デフォルトの名無しさん2016/03/21(月) 07:57:20.73ID:tg5Bjvem
質問にすらなっていない
0126デフォルトの名無しさん2016/03/21(月) 21:16:11.86ID:QwlARmOt
>>124
結局何が言いたいんだ…?
0127デフォルトの名無しさん2016/03/21(月) 22:44:58.69ID:JGe4MEfE
以下の処理を行いたいのですが何か良い方法があればご教示いただけないでしょうか。

1.メイン処理で別スレッドを生成する
2.別スレッドをバックグラウンド実行する
3.別スレッドの処理結果(標準出力)をメイン処理に返却する

<環境>
PHP:7.0.3
OS:Windows7

よろしくお願いします。
0128デフォルトの名無しさん2016/03/21(月) 23:37:09.63ID:hs33rQ/Z
「php 外部プログラム 非同期」で検索!
0129デフォルトの名無しさん2016/03/23(水) 19:40:56.99ID:bhVhOKrP
パーフェクトPHP読んでたら
$path_info=(string)substr($request_uri , strlen($base_url));
というコードがあったんですが、(string) って何を表しているのですかっっ(´・ω・`)
0130デフォルトの名無しさん2016/03/23(水) 19:48:17.15ID:/CoInmbi
>>129
http://php.net/manual/ja/language.types.type-juggling.php#language.types.typecasting
0131デフォルトの名無しさん2016/03/23(水) 19:56:23.21ID:SGU6tbYr
>>129
substr の結果を文字列化してる。
元々 substr の結果は文字列じゃないかと思うかもしれないけど、切り出し位置が元の文字列の範囲内に引っかからないと結果は boolean型の false になる。
これをキャストしてヌルストリングスにしてる。
0132デフォルトの名無しさん2016/03/23(水) 20:43:50.59ID:bhVhOKrP
>>131
解説わかりやすいです(´・ω・`)
ありがとうございます(´;ω;`)ブワッ
0133デフォルトの名無しさん2016/03/23(水) 20:47:59.96ID:1FyX1z+W
このコードは美しいから参考になるっていう
phpのライブラリは有りますか?
自分が作るとループとネストが多くなってあとで読み返すのが辛いです。
0134デフォルトの名無しさん2016/03/23(水) 21:01:22.20ID:ygSnWzaX
エラーなり例外なり返せよなあ
php7では空文字返すようになったみたいだけど
0135デフォルトの名無しさん2016/03/23(水) 21:20:26.54ID:lc58fuH/
php the right way
0136デフォルトの名無しさん2016/03/23(水) 21:53:15.96ID:g8IzY8y0
>>133
CakePHP

リファクタリングを読めばいい
オブジェクト指向でメソッドを適度に細かくすればネストは減る
0137デフォルトの名無しさん2016/03/23(水) 22:29:08.16ID:1FyX1z+W
>>136
おーCakeですか
ありがとうございます
0138デフォルトの名無しさん2016/03/23(水) 23:39:47.02ID:q0Mdl0g1
リファクタリングを読めばいい同意
0139デフォルトの名無しさん2016/03/24(木) 00:13:42.66ID:J46FDWsl
コードを2種類書いて比較して綺麗な方を採用していく
というのを繰り返していけば、自然と綺麗なコードが書けるようになると思う
0140デフォルトの名無しさん2016/03/24(木) 13:43:58.72ID:5kgXhXKu
セッション保持している間、オブジェクトは$_SESSIONに突っ込んでおけばいいの?
例えばセッション開始したときにPersonオブジェクトを作ったら、$_SESSION['person']に突っ込んでセッション保持している間はこれを参照する感じ?
0141デフォルトの名無しさん2016/03/24(木) 15:10:49.34ID:ryYCL5Z2
それが一番効率良いならそうすればいんじゃね
0142デフォルトの名無しさん2016/03/25(金) 17:09:00.06ID:9tPeO3Xg
$はみなさんどう読んでますか
0143デフォルトの名無しさん2016/03/25(金) 17:11:16.43ID:nroxL6SM
ドル
人に説明するときゃ変数っていうだろうよ
0144デフォルトの名無しさん2016/03/25(金) 17:11:22.46ID:R5xBwmiE
だらー
0145デフォルトの名無しさん2016/03/25(金) 17:12:19.49ID:sGrJOjWZ
読まないことも
0146デフォルトの名無しさん2016/03/25(金) 17:50:00.07ID:Psh2jzTy
だら
0147デフォルトの名無しさん2016/03/25(金) 18:38:58.10ID:0FfQhw//
どら
0148デフォルトの名無しさん2016/03/25(金) 18:45:15.87ID:ir49Z4lH
えもん
0149デフォルトの名無しさん2016/03/25(金) 21:00:45.71ID:jE5E6FoE
変数が入っているときは「へんすう」
配列が入っているときは「はいれつ」
オブジェクトが入っているときは「おぶじぇくと」
0150デフォルトの名無しさん2016/03/27(日) 23:18:01.97ID:2Si7i7dw
PHPの勉強をやるには何を準備したらよいですか?
Win7です
0151デフォルトの名無しさん2016/03/27(日) 23:19:43.94ID:B1uwwf8h
やる気
0152デフォルトの名無しさん2016/03/27(日) 23:21:22.83ID:zkDYEIdB
>>150

師匠を選ぶ目
0153デフォルトの名無しさん2016/03/28(月) 00:07:56.74ID:eqDgVfq/
最低限メモ帳とphpバイナリがあれば開発はできるが
本番環境でVPSとか使うならちゃんとLinux環境でインストール設定出来るようにしといたほうがいいが
とりあえず素人なら環境構築はxamppとかオールインワンパッケージにまかせておいたほうがいい
プログラム素人ならIDEよりPHPエディタやNotepad++みたいなの使えばいいと思う

もしプログラム経験あるんなら環境構築は仮想マシンにvagrantでIDEはEclipse Netbeans VSあたりから選べばよい
有料でいいならPhpStormがいいらしい
ただこのへんは開発マシンのスペックと相談してください
たいしてスペックがないならxampp+エディタ系で
0154デフォルトの名無しさん2016/03/28(月) 00:16:30.94ID:c7fcoboN
>>153
ローカルのxammpで開発し動作確認しながら、
実際のサーバーに転送して再度動作確認すればいいんですね
0155デフォルトの名無しさん2016/03/28(月) 00:39:56.72ID:xoXx/JLy
俺はnabetap と普通のテキストエディタで開発
0156デフォルトの名無しさん2016/03/28(月) 00:41:37.13ID:eqDgVfq/
>>154
本番環境で使えるのにxamppのインストール直後では使えないってこともあるので
出来れば本番環境のphpinfoを調べてエクステンション周りだけでもローカル(xampp)のphp.iniを編集して合わせてやるといいんだけどね
0157デフォルトの名無しさん2016/03/28(月) 01:32:48.66ID:kF6uGKy4
>>156
xamppとnotepad++ EUC-JP対応版をインストしました。
動かす環境はできました。さっそくソース書いて行きたいとこですがphpの基本わかってないんで
本屋行ってphpの本買ってサンプルソースで勉強するしかないですね。

>>155
xampoみたいなオールインワンにnabetapってのもあるんですね。
0158デフォルトの名無しさん2016/03/28(月) 02:10:34.22ID:WGFAAxFb
EUC-JP は古い

in/outするすべてのファイルを、UTF-8 にしないとバグを起こす
0159デフォルトの名無しさん2016/03/28(月) 04:13:30.30ID:c7fcoboN
npp.6.9.installerを公式からダウンロードしインストしなおしました。
EUC-JP版はじゃなくてこっちでいいんでしょうか?
0160デフォルトの名無しさん2016/03/28(月) 04:52:10.62ID:eqDgVfq/
euc-jp版でいいよ
元ある機能の拡張でeuc-jp,sjisも扱えるようになるってだけで
utf-8が扱えなくなるわけじゃないから
0161デフォルトの名無しさん2016/03/28(月) 04:56:44.16ID:eqDgVfq/
使い方はencodingでutf-8(bomないほう)選んで
languageのPからPHP探してセットすれば入力補完してくれるようになる
0162デフォルトの名無しさん2016/03/28(月) 05:08:28.66ID:c7fcoboN
なるほどですeuc-jp版に戻しました。utf-8(BOMなし)もわかりました
あとは慣れてきたらIDEのNetbeansも導入てみようと思います。
0163デフォルトの名無しさん2016/03/28(月) 19:51:26.79ID:IKi/yKO6
わしは、pleiadesというのを使っとる。
xamppとeclipseがセットだったんで楽じゃった。
0164デフォルトの名無しさん2016/03/29(火) 09:55:43.28ID:JWick5hX
xamppとeclipseで作ってサーバーで中規模アプリ動かしてるけど何も問題ないよ
Linuxなんて使いたくないし
windowsで十分、てか便利
0165デフォルトの名無しさん2016/03/29(火) 12:25:01.83ID:6JekQQcR
windowsで作ってwindowsで動かすのは問題ない。
windowsで作ってlinuxで動かすと動かない場合がある。
大文字小文字とか文字コードがらみ。
0166デフォルトの名無しさん2016/03/29(火) 13:56:11.99ID:nKJmxYgr
未だにEUCJP使ってる人とかいるのか
スゲーな
まだSJISの方が理解できるわ
0167デフォルトの名無しさん2016/03/29(火) 14:07:02.53ID:MGaWHjrZ
sjis(-win)使う理由がwindowsとの関係や一部のクソなモバイルとの関係なように
旧資産・古いunix/linuxつかっててどうしても切り離せないというケースなのかもしれない
0168デフォルトの名無しさん2016/03/29(火) 14:11:09.82ID:JWick5hX
windowsの膨大な資産メリットに比べたら文字化けなんてサーバーで確認すればいいだけの微々たるレベル
0169デフォルトの名無しさん2016/03/29(火) 17:31:26.24ID:aXDijjSz
ローカルの開発でLinux使いたくないってのはわかるけど
本番環境とはわけて考えないと
0170デフォルトの名無しさん2016/03/29(火) 18:38:33.15ID:4928WWNs
php設置する時に777やら755やら設定するけど、どういうphpの処理する時にrwxそれぞれの権限が必要になるの?
644にしたり755にしたり 777にしたり。
(´・ω・`)なんでオーナーとその他の権限分けるの?
0171デフォルトの名無しさん2016/03/29(火) 19:03:53.27ID:52Yuz1Q/
>>166
EUC-JPを使うじゃなくてEUC-JP対応のエディタを使うっていう話でしょ。
EUC-JPやSJISに対応してるのは日本語環境のエディタの基本機能といってもいい。
notepad++調べたけど、公式に開発されてるのはEUC-JPにもSJISにも対応していない。
notepad(付属メモ帳)の代わりとして使うことを想定すれば対応しているべきで、
EUC-JP対応版(EUC-JPとSJISに対応)があっても不思議でない。
0172デフォルトの名無しさん2016/03/29(火) 19:48:41.14ID:vFEhZxRE
>>170
セキュリティのために必要最低限のパーミッションを与える
0173デフォルトの名無しさん2016/03/29(火) 20:36:50.97ID:hB33GZnr
>>170
通常実行権限はいらないよ
0174デフォルトの名無しさん2016/03/29(火) 21:37:58.05ID:jyk5ZdaS
winで制作したphpを公開Linux鯖にftp転送した後、phpのパーミッション変更なんてしたことがないな。
perlなら実行権限与えてやらないとそのままじゃinternal errorが発生するけど。
てかphpってパーミッションなんて変更してやる必要あるの?
0175デフォルトの名無しさん2016/03/29(火) 21:43:09.44ID:W1iwza/S
phpからログ吐いたりファイルアップするなら
書き込み権限与えないとできんやろ
0176デフォルトの名無しさん2016/03/29(火) 21:52:47.09ID:uzyAT3MD
phpファイル自身の更新権限でしょ?
0177デフォルトの名無しさん2016/03/29(火) 22:44:35.78ID:4928WWNs
(´・ω・`)Loggerとか使ってログを吐く場合、loggerを呼び出すphpは全部7にしないとダメって事?
0178デフォルトの名無しさん2016/03/29(火) 22:47:40.20ID:4928WWNs
間違えた 吐き出す先のファイルか(´・ω・`)
0179デフォルトの名無しさん2016/03/29(火) 22:56:48.41ID:BDGBq9XE
>>177
ファイルは604、ディレクトリは705にしておけばいい
0180デフォルトの名無しさん2016/03/29(火) 22:57:15.80ID:W1iwza/S
php自体の権限の話?
実行権限は確かにいらないね。

>>178
ログを吐き出したいディレクトリに
書き込みphpユーザから書き込みできるようにする。
しないと出力でエラー。
0181デフォルトの名無しさん2016/03/29(火) 23:16:42.01ID:4928WWNs
>>179,>>180
そうそう、php.exeじゃなくて なんちゃら.phpっていうソースファイル(?)
write.php - 604(apache:apache)
log/ - 705(apache:apache)
って感じでいいのかな(´・ω・`)
0182デフォルトの名無しさん2016/03/29(火) 23:31:58.90ID:BDGBq9XE
>>181
それでいい
書きこめるか試してみな
パーミッションについては自分でよく調べることだな
0183デフォルトの名無しさん2016/03/29(火) 23:42:07.24ID:e0CNVUKY
あなたの得意で、誰かを幸せに
みんなの「得意」を売り買いできる、モノを売らないフリーマーケットです
https://coconala.com/

占い・恋愛相談からロゴの作成・ビジネスのクラウドソーシングまで、
みんなの得意を500円から売り買いできる「ココナラ」
0184デフォルトの名無しさん2016/03/29(火) 23:43:44.09ID:hB33GZnr
できればSELinux有効にしてこまめな設定しておいたほうがいいんだけどね。
0185デフォルトの名無しさん2016/03/30(水) 00:01:28.97ID:njWzXt21
cgiで動かしてる場合は実行権限が要る、のでは
0186デフォルトの名無しさん2016/03/30(水) 17:47:31.83ID:Muyb9Qgo
>>181
userをapacheにできるなら600と701でいいと思うが
0187デフォルトの名無しさん2016/03/31(木) 01:26:01.16ID:GJ2QbDh0
CGIとphpの違いってなに?

perl、ruby→CGIという。
PHP→CGIとは言わない?
0188デフォルトの名無しさん2016/03/31(木) 01:39:01.14ID:gTuU4O2h
>>187
実行方法が違う

Nginxとかのことはよく知らないからApacheで喋るけど,

CGI: Apacheがmod_cgiからプログラムを実行する(ファイル先頭のシェバングのプログラムから起動)
PHP: Apacheがmod_phpから.phpファイルを読んで実行

レガシーなCGIではアクセス毎にインタプリタなり実行ファイルなりを起動するからパフォーマンスが極めて悪い
Apacheモジュールで実行すればサーバプロセスと一緒に常駐するからCGIより極めて高いパフォーマンスが実現出来る

尚, 最近はPHPでも高負荷環境下ではphp-fpmからFastCGI経由で実行されることが多い模様(シェバングは不要なのでレガシーCGIっぽくはない)
0189デフォルトの名無しさん2016/03/31(木) 02:06:39.04ID:tPwPmbpG
>>187
なんか10年前にタイムスリップしたような質問だなw
0190デフォルトの名無しさん2016/03/31(木) 02:28:46.49ID:i4QRtt5O
むむむ、、難しい
0191デフォルトの名無しさん2016/03/31(木) 03:09:22.24ID:9egfbJrh
すごくぼかしていうと、実行ファイルを動かすか、プログラムを読みこんで動かすかの違い
0192デフォルトの名無しさん2016/03/31(木) 03:17:43.67ID:+i7BlQ0K
とりあえず言語は関係なく
実行方式の違いってことだけ知ってればいいよ
PHPだってCGIで動作するし
Perlだってmod_perlでApacheのモジュールとして動作する
0193デフォルトの名無しさん2016/03/31(木) 06:17:49.36ID:n9weBv5F
Linuxのuptimeコマンドで得られるサーバの稼働時間を、PHPで表示させたいんだけどPHPド素人過ぎて全くわからん。

[root@ホスト名 ~]# uptime
06:04:10 up 5 days, ←この部分

uptime.phpとして
「5日6時間04分10秒、起動中です。」と表示させたい。
0194デフォルトの名無しさん2016/03/31(木) 06:25:53.80
$uptime = shell_exec('/usr/bin/uptime');
あとはカンマで区切って頑張れ
0195デフォルトの名無しさん2016/03/31(木) 07:48:14.72ID:n9weBv5F
>>194
マジでありがとう(´;ω;`)そういう風に取得するんだ。
shell_execすら見つける事ができなかった。
これはLinuxのコマンドを実行させるphpの関数かな。だいぶイメージが湧いてきた
0196デフォルトの名無しさん2016/03/31(木) 08:12:49.01ID:n9weBv5F
7:59:13 up 5 days, 5:07, 1 user, load average: 0.03, 0.19, 0.30

途中に半角スペースやカンマが入っている長い文字列から
以下のものを取り出す方法が全くわかんないw
これさえ取り出せればあとはくっつけるだけなんだけど。。。

$day =5 (日数)
$hour = 5(時間)
$minute =07(分)
0197デフォルトの名無しさん2016/03/31(木) 08:43:49.83ID:dysJg4uT
$pat = '/^.*up (\d+) days, (\d+):(\d+),.*$/';
$d = '$1,$2,$3';
list($day, $hour, $minute) = explode(',',preg_replace($pat, $d, shell_exec('/usr/bin/uptime')));
echo $day."\n".$hour."\n".$minute."\n";
0198デフォルトの名無しさん2016/03/31(木) 08:48:23.85ID:tPwPmbpG
uptimeとか知ってるくせに正規表現すら思いつかんのかえ
0199デフォルトの名無しさん2016/03/31(木) 08:50:01.21ID:dysJg4uT
「5日6時間04分10秒、起動中です。」という文字列を得たいだけなら
$patを工夫すれば、そのまま希望する文字列にできるよ
0200デフォルトの名無しさん2016/03/31(木) 09:22:07.14ID:n9weBv5F
>>197
>>199
ありがとう(´;ω;`)
(¥d+)の意味すらわかってないから、phpの文法の基礎から勉強し直してくるよ
0201デフォルトの名無しさん2016/03/31(木) 09:47:20.27
起動して1日経ってないとまた表示が違うから注意な
0202デフォルトの名無しさん2016/03/31(木) 09:55:30.49ID:NqUBDLqn
デザイナー上がりの俺がコード書くと手続き型になってしまう
この前1000人〜くらいが使うシステム作ってみた
一人で作ってるから手続き型で困ることは一切ないんだけど、まあ動けばいいんだよね
0203デフォルトの名無しさん2016/03/31(木) 10:14:49.77ID:7iH4R6mM
shell_execで思い出したけど
exec、shell_exec、passthru等って引数・戻り値・結果の取得方法以外はどんな違いがあるの?
実行時にたどるフローとか権限とか使うシステムコールとか生成されるプロセス/スレッドの扱いとか
0204デフォルトの名無しさん2016/03/31(木) 10:53:54.43ID:tPwPmbpG
https://github.com/php/php-src/blob/master/ext/standard/exec.c
php_execのif (typeから始まるところらへんが差
0205デフォルトの名無しさん2016/03/31(木) 12:37:49.17ID:eK9DBRn+
fwrite関数で大容量のログをファイルに書き込みたいのですが、内容が
128MBを越えるとファイルが作成されません。

原因がわかる方いらっしゃいましたら教えていただけると助かります。

環境
centos6.7
php7
0206デフォルトの名無しさん2016/03/31(木) 12:43:17.19ID:zV4jiE60
PHPで128MBといえばmemory_limitが思い付くが
0207デフォルトの名無しさん2016/03/31(木) 12:55:38.39ID:gTuU4O2h
逐次書き込め
0208デフォルトの名無しさん2016/03/31(木) 14:26:35.21ID:yy0681Er
>>200
(\d+) は、PHPの文法というよりも、Python, Ruby, JS などで使われる正規表現

( )はキャプチャーと言って、マッチした文字列を後で、
$1, $2, $3 のように、番号を付けて使う。
\d は、数字にマッチする。[0-9] と同じ。
+ は直前の文字の、1回以上の繰り返しにマッチする

つまり、\d+ は、数字の1回以上の繰り返しにマッチする(最長一致)。
数字以外の文字が来たら、その直前までがマッチする
0209デフォルトの名無しさん2016/03/31(木) 14:42:31.80ID:7iH4R6mM
>>204
ありがとう。後ろの方のshell_execまで読んできた

全部php_stream_fopen_from_pipeじゃねーか結果・リターンコードの扱いが違うだけじゃねーか
なんで関数名を分けてんだよこれ
0210デフォルトの名無しさん2016/03/31(木) 18:22:20.07ID:n9weBv5F
>>208
list()や正規表現preg_replace()まったく分かってなかったんで勉強しなおしてる
0211デフォルトの名無しさん2016/03/31(木) 19:35:48.87ID:eK9DBRn+
>>206-207
ありがと。メモリリークしてたわ。
0212デフォルトの名無しさん2016/03/31(木) 22:27:35.98ID:i8T5nkpN
phpとcgiはそもそも比べるものではない
ビジネスマン(cgi)とスーツ(言語)って何が違うのみたいなもんよ
ビジネスマンは良くスーツ着用するけどそもそもその2つは比べられないよって言う話
俺も詳しく理解してないからよく分かんないけど phpとかPerl、Cなんかで書かれたプログラムをどうやってサーバー側で実行するかみたいな話しだったと思う
0213デフォルトの名無しさん2016/03/31(木) 23:28:08.63ID:gmE6pszy
ウェブサイトでのPHPが普及し始めた時、
Perl/CGIとmod_phpの速度を比べて、PHP早い!Perlはクソ!って言ってる人がどれだけ居たことかw
0214デフォルトの名無しさん2016/03/31(木) 23:33:38.39ID:gTuU4O2h
Perl/CGI時代に書かれたコードがmod_perlではまともに動かなかったからなー
あの時代の立場で言えばPerl/CGIとmod_perlは別言語だったから・・・・
0215デフォルトの名無しさん2016/03/31(木) 23:39:05.69ID:gmE6pszy
今のスタイルで書けばそんなに問題起こらなそうだけどねー
PHP/CGIだと、そういう違いってあるのかな
0216デフォルトの名無しさん2016/03/31(木) 23:52:53.66ID:7iH4R6mM
いや、変わりない
#!/path/to/php で動かすにしてもfpmで動かすにしても
同じバージョンのmodule版で動いてるものならソース書き換えなしで方式変更可能
0217デフォルトの名無しさん2016/04/01(金) 01:56:08.60ID:ZIYWI5KO
つまんない話題そろそろ終わらせてよ
0218デフォルトの名無しさん2016/04/01(金) 05:10:17.51ID:NdnuNKsT
はじめてAtomというテキストエディタを知った。すげえ
これ使うのと、NetBeans使うのとどっちがいいのかな?
併用するってのも難しいよー
0219デフォルトの名無しさん2016/04/01(金) 05:26:16.14ID:d9YSx1pe
エディタ類はカスタマイズをある程度しないとまともに使えないでしょ。
ちゃんと自分流にカスマイズされればベストになる可能性はあるけど、
カスタマイズに自信がない人はIDE使ったほうが作業効率はいいだろう。
0220デフォルトの名無しさん2016/04/01(金) 06:31:34.00ID:PU9mDoTr
そいつは正規表現だ
php以外でも同じように使う
0221デフォルトの名無しさん2016/04/01(金) 11:57:09.68
AtomがWebサーバになって、書いたHTMLとJSがその場で動いたら面白い?のでは?
JavaScriptのEmacsとしてこの先生きのこれるか
0222デフォルトの名無しさん2016/04/01(金) 12:37:20.32ID:NdnuNKsT
エディタがクッソ重くなる予感
0223デフォルトの名無しさん2016/04/01(金) 18:29:01.39ID:uCJ+Rmhu
IDEのエディタ部分に不満をもったりしないのだろうか。
0224デフォルトの名無しさん2016/04/01(金) 22:24:42.03ID:ZIYWI5KO
VS codeってどうなんだろ…
0225デフォルトの名無しさん2016/04/01(金) 23:37:04.41ID:9y/cXELu
インテリセンス機能するんだっけ?
0226デフォルトの名無しさん2016/04/03(日) 04:04:48.56ID:A3StH/M8
phpstormが無料で使える(30日評価版ではない)って聞いたんだけど
やり方まとめてるサイトないかな?
0227デフォルトの名無しさん2016/04/03(日) 04:35:20.52ID:Leps+2Do
そりゃ海外サイトでごにょごにょしてくれば使えるだろうけど
有料ソフトウェアなんだからそんなことするんじゃありません
0228デフォルトの名無しさん2016/04/03(日) 05:33:40.35ID:iNd2PQNq
Adobe税にApple税に……大変だ
0229デフォルトの名無しさん2016/04/03(日) 22:25:24.56ID:vWJbXXGn
とりあえずNetBeansにしとくかな
0230デフォルトの名無しさん2016/04/04(月) 06:40:50.08ID:4hZuKlgI
有料ソフトを無料で使おうなんて考える奴は
プロとして失格
0231デフォルトの名無しさん2016/04/04(月) 09:44:25.62ID:s52B3h8o
いやいや金を使わず原価コストを下げて使おうってのがまたプロってもんだ
0232デフォルトの名無しさん2016/04/04(月) 09:45:21.88ID:s52B3h8o
会社でいうと人件費(固定費)に金をかける社長は基本的に社長失格。向いてない
0233デフォルトの名無しさん2016/04/04(月) 09:45:53.36ID:s52B3h8o
それと同じ
0234デフォルトの名無しさん2016/04/04(月) 11:27:01.25
家賃と人件費は毎月掛かる費用だから、
100倍の金銭感覚で考えた方がええで、って
ばっちゃが言ってた
0235デフォルトの名無しさん2016/04/04(月) 12:50:07.11ID:tWTMiefV
ttp://alfalfalfa.com/
このサイトみたいに記事の2chレスに対してのコメントを近くに表示するのってどうやるん?
0236デフォルトの名無しさん2016/04/04(月) 12:55:59.98ID:LrWEI3Rn
JavaScriptでDOM操作するの
0237デフォルトの名無しさん2016/04/04(月) 14:26:43.44ID:+Zn59SDD
PHPかんけーねーし、
ブラウザのソースみりゃわかんだろ
0238デフォルトの名無しさん2016/04/04(月) 22:08:09.50ID:1LILMCI+
>>236
ほえーjavascript使うんっすね
ありがとう!

>>237
すまんすまん初心者なりに考えた結果PHP使うのかと思ってw
ソースも覗いてみるよ〜
0239デフォルトの名無しさん2016/04/04(月) 22:12:34.35ID:XmiF8pQ4
まあサーバサイドとかクライアントサイドとか
基本のキすら学んでない人にとっては、間隔がつかみにくいんだろうな
0240デフォルトの名無しさん2016/04/04(月) 22:35:56.66ID:0+RtGrV4
http://millkeyweb.com/if-mobile/
にある、
<?php if ($is_chrome) : ?>
// Chrome用コンテンツ
<?php else: ?>
// その他用コンテンツ
<?php endif; ?>
をWordPressで試しているのですが、Chromeで実行しても $is_chrome が
空のようで「その他のコンテンツ」のほうが表示されます。
なぜですか?
0241デフォルトの名無しさん2016/04/04(月) 22:50:30.56ID:LrWEI3Rn
WPなんてしらんけど
$is_chromeっていうグローバル変数はちゃんとそのファイル内で使えるようになってんの?
0242デフォルトの名無しさん2016/04/04(月) 22:54:41.79ID:9uPoM1fV
やってることを理解していない典型例
教えてもらったうえで何が理解出来るというのか
0243デフォルトの名無しさん2016/04/05(火) 00:22:50.90ID:PBrOQNL5
WPで試してるんだから使えるんじゃないの
https://codex.wordpress.org/Global_Variables

UAに何送信してるか調べてみたら?
0244デフォルトの名無しさん2016/04/05(火) 00:37:57.65ID:aIjRskG1
if文をコロン/セミコロン/endifで書けることを今知った
いやたぶん使わんけど
0245デフォルトの名無しさん2016/04/05(火) 06:26:24.09ID:w1a858Dh
PHPだけに限ったことじゃないんだが、プログラミングやってると文字列ばかり見てめまいがする。
みんなは頭が基地外になってこない?オレは文字列の羅列を見るだけでめまいがする。
0246デフォルトの名無しさん2016/04/05(火) 06:35:27.28ID:hR4UL7wD
>>244
PHP自体がテンプレートエンジンだから軽量な実装する場合にviewで割りとよく使われるぞ
0247デフォルトの名無しさん2016/04/05(火) 10:35:42.12ID:ppnKHRiK
>>241
どうやればいいの?
0248デフォルトの名無しさん2016/04/05(火) 11:13:51.20ID:oEPANDny
グローバル宣言してますか?
0249デフォルトの名無しさん2016/04/05(火) 11:17:29.11ID:ppnKHRiK
>>248
特に何もしていません
0250デフォルトの名無しさん2016/04/05(火) 11:21:27.14ID:oEPANDny
>>249
使う前に

global $is_chrome;

とおまじないを唱える
0251デフォルトの名無しさん2016/04/05(火) 11:24:37.57ID:ppnKHRiK
>>250
出来ました。ありがとうございました。
グローバル変数を使う場合にわざわざ再宣言しなくちゃいけないのはなぜ?
phpって面倒臭い言語ですね
0252デフォルトの名無しさん2016/04/05(火) 11:36:24.48ID:hR4UL7wD
PHPが悪いんじゃなくてWPの設計が悪いだけだろ
0253デフォルトの名無しさん2016/04/05(火) 11:42:29.01ID:oEPANDny
>>251
PHPにおける変数のスコープを理解することは重要

>グローバル変数が自動的に関数で使用可能で ある C 言語と少々
>異なっていると気がつかれるかもしれません。C言語のような場合、
>グローバル変数を不注意で変更してしまうという問題を生じる可能性
>があります。PHP では、グローバル変数は、関数の内部で使用する
>場合、関数の内部でグローバルとして宣言する必要があります。

http://php.net/manual/ja/language.variables.scope.php
0254デフォルトの名無しさん2016/04/05(火) 12:08:31.00ID:5k7a1AT7
【OS名】MacのMAMP
【PHPのバージョン】5.6.10
【連携ソフトウェア】なし
【質問内容】
こちらのページの、ページ数がいくつあるかをスクレイピングで取得したいです。
http://www.amazon.com/gp/offer-listing/0996275460/?condition=new
このページの場合だと、4という数字を取得したいです。

<!DOCTYPE html>
<html lang = "ja">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>テストプログラム</title>
</head>
<body>

<?php
$dom = new DOMDocument;
@$dom->loadHTMLFile('http://www.amazon.com/gp/offer-listing/0996275460/?condition=new');
$xpath = new DOMXPath($dom);

$num_pages = $xpath->query('//ul[@class="a-pagination"]/li[last()-1]/a');

var_dump($num_pages);
echo $num_pages;
?>

</body>
</html>
0255デフォルトの名無しさん2016/04/05(火) 12:11:59.63ID:5k7a1AT7
続きになります。

PHPの入門書を何回か読んで、ネットの情報を読んで手探りで実践しているところです。
実行した所、このような結果が帰ってきます。
object(DOMNodeList)#3 (1) { ["length"]=> int(0) }

$num_pagesのlengthのintが0ということは、
どこかでミスがあり$num_pagesに何も格納されていないと思い、
いろいろ試してミスを探してみましたがわかりませんでした。

$num_pages = $xpath->query('//ul[@class="a-pagination"]/li[last()-1]/a');
の所にミスが有ると思い、いろいろなパターンで試してみました。

$num_pages = $xpath->query('/body//div[@class="a-text-center a-spacing-large"]/ul/li[last()-1]/a');
などと、
XPathの正規表現を確認しながら、
[@class=""]やlast()などを削除して余計なものをつけずに
なんでもいいから値を取得しようとしても取得できず、

いろいろなパターンを試してみましたが、
結果は
object(DOMNodeList)#3 (1) { ["length"]=> int(0) }
ばかりで変わりませんでした。

勉強不足で非常につまらない所で間違えているとは思うのですが、
今の私にはどこが間違っているかわかりませんので、
お知恵を貸しいただけませんでしょうか。

ご指摘いただけますと非常に嬉しく思います。
0256デフォルトの名無しさん2016/04/05(火) 12:49:13.36ID:PBrOQNL5
>>254
まずは取得したHTMLの内容を見ること。
そしてそこに書かれている内容を読むこと。
0257デフォルトの名無しさん2016/04/05(火) 13:01:19.31ID:w0vmBuKb
file_get_contents して正規表現で抜き出せばいい
http://php.net/manual/ja/function.file-get-contents.php
0258デフォルトの名無しさん2016/04/05(火) 13:02:56.33ID:hR4UL7wD
>@$dom->loadHTMLFile('http://www.amazon.com/gp/offer-listing/0996275460/?condition=new');

@なんてつけてエラー制御してるから肝心なことがわからないんやで
503返ってきてるしBOTと見なされて拒否られてるってところだろう
ストリームコンテキスト作成してみるとかcURL使ってみるとか
0259デフォルトの名無しさん2016/04/05(火) 14:11:45.62ID:ruInOaYl
カウントして、ファイルに書き込んでリダイレクトすると、カウントが1つ増えるんだけど、なにが原因でしょうか…
0260デフォルトの名無しさん2016/04/05(火) 14:27:24.69ID:F6iG++QK
>>254
$dom = new DOMDocument;
@$dom->loadHTMLFile('http://www.amazon.com/gp/offer-listing/0996275460/?condition=new');
$xpath = new DOMXPath($dom);

$num_pages = $xpath->query('//ul[@class="a-pagination"]/li[last()-1]/a');

$num_pages がおかしいなら、その前の、$xpath もチェックする。
それもおかしいなら、その前の、$dom もチェックする

こういうように、周辺の変数の内容を、すべて見るのが早い。
それか、1行ずつデバッグして、変数の内容を見ていく
0261デフォルトの名無しさん2016/04/05(火) 14:48:14.91ID:hR4UL7wD
>>259
コードも出さなきゃ答えようがない
0262デフォルトの名無しさん2016/04/05(火) 16:31:14.94ID:yO8yjDkc
例えばなんだけど DBに接続するためのユーザー名とパスワードを記述したphpファイルがあるとして
/web/lib/userdb.php(600)
みたいな形にしてwebからアクセスできないようにすればたとえそのメインphpファイルがサーバーのミスやなんかしらの際に流出してもdbのIDとパスワードは守れる?
0263デフォルトの名無しさん2016/04/05(火) 16:37:11.54ID:Urfcnp8R
>>262
dbのIDとパスワードが漏れても外部からアクセスできないようにしとけよ
0264デフォルトの名無しさん2016/04/05(火) 16:41:19.57ID:+K5F7tY8
Webに公開されていないパスに置けば大丈夫では
0265デフォルトの名無しさん2016/04/05(火) 19:24:34.83ID:izAp1z4+
>たとえそのメインphpファイルがサーバーのミスやなんかしらの際に流出しても

ファイル自体が流出したらパーミッション関係ないがな。
0266デフォルトの名無しさん2016/04/05(火) 20:35:59.23ID:H8S937SL
WordPressなんかは、ユーザー名とパスワードを記述したファイルも公開領域だけどね。
0267デフォルトの名無しさん2016/04/05(火) 22:24:24.93ID:cf9M5ih9
MySQLの部分一致 
%ae%
とかやると
abcdeのレコードが一致してしまうんですがどうすればいいんでしょうか

つまり何が言いたいかというと
続いてない文字列が一致してしまう
先頭と端が一致してるのも取り出してしまう
0268デフォルトの名無しさん2016/04/05(火) 22:34:15.27ID:1mo6kAvy
それはおかしい。
SQLとその付近のコードはどうなってんの?
0269デフォルトの名無しさん2016/04/05(火) 22:34:20.37ID:UC4UBEI8
MySQLのほうのログ漁って
想定通りのクエリが飛んでるか調べるとか?
0270デフォルトの名無しさん2016/04/05(火) 22:38:27.01ID:cf9M5ih9
ああ、まじですか
やっぱりおかしいみたいですね
コードを見直してみます。
ありがとうございました
0271デフォルトの名無しさん2016/04/05(火) 22:42:55.17ID:cf9M5ih9
>>269
なるほど。。
0272デフォルトの名無しさん2016/04/05(火) 23:00:19.33ID:gOJOQ9cJ
未だに開発環境でも常にApache+PHPでやってた骨董品なんだけど, PHPのビルトインWebサーバめっちゃ便利やな, 軽んじてたわ
0273デフォルトの名無しさん2016/04/06(水) 06:32:29.83ID:cc6aqB73
全レススマソ
>>263 それだわ 有難う
>>264 一応そうしてるけどそれでもなんか怖くて・・・
>>265 エッ
0274デフォルトの名無しさん2016/04/06(水) 06:58:14.77ID:chXvhDzz
メインの文字読み落としただけだから気にしないでくんろ
0275デフォルトの名無しさん2016/04/06(水) 11:48:54.09ID:CSfgqPLP
>>267ですが一日中考えた結果
前方一致と後方一致の両方が一致しているので取り出してしまっている

という結論に至りました
あいまい検索って本当にあいまいなんですね
0276デフォルトの名無しさん2016/04/06(水) 11:58:30.75ID:MS+65iNt
>>273
えっ いや違和感あるんだが
メインのphpが流出する⇒db接続に使う資格情報が書いてあるっぽいファイルのパス・名前が流出する、ってことで
で、このdb用ファイルの内容をどのように取得する?

db用ファイルがwebからアクセスできる場所にある場合でも、生txtであったりあるいは設定ミス等によって
webから直アクセスして実行結果ではなくファイル内容そのものが読める場合でない限りは資格情報は盗まれない
<?php $id='user'; $pass='password'; ?> と書かれたファイルを.phpとして実行しても何も返されないわけで
逆に生txtか生txt同然であったならば、chmod 600してても何も防止できない

好きに.php等をアップロード&実行されてしまう状況ならばどこに置いても一緒

mod_phpやfpmからアクセス可能じゃなかったらそもそも使えない

あとはサーバに侵入される、あるいは雑居ビル状態の共用サーバ使ってる場合等
前者はroot権限かdb用ファイルの所有権がないならchmod 600も一応意味があるが侵入されてるなら時間の問題
後者は利用者ごとに実行ユーザを厳しく切り替えてるなら意味を見出せなくもないけど
DocumentRoot外にファイルを配置できる時点でなさげ

だいたいdb接続情報のパスが漏れたらその時点でやばいっつーならmediawikiとか使えなくね
0277デフォルトの名無しさん2016/04/06(水) 12:43:28.61ID:cc6aqB73
サーバーのミスって.htaccessの設定ミスとかそう言う話だよ!
後は何らかの原因でユーザーログイン出来てしまった時にrootのパスワードがわからない状態でソースが覗けなければいいかな程度
そっから先は俺らの考える事じゃないし・・・
0278デフォルトの名無しさん2016/04/06(水) 13:26:05.81ID:K9SGMphy
>>275
いやその結論はおかしい。mysqlスレいこ
0279デフォルトの名無しさん2016/04/06(水) 14:09:25.41ID:ZQg6xGn/
>>275
んなわけないだろ
where句全部書いてみろよ
つかSQL作ってるコードを貼ってみろよ
0280デフォルトの名無しさん2016/04/06(水) 14:58:23.75ID:MS+65iNt
>>277
領分で想定範囲に線引き入れるならばshellに入られる事態がすでにお手上げ状態だと言っても良いと思うが
それはそれとして、webから覗ける範囲に所有者以外が書き込み可能なファイル/ディレクトリが1つもないことの確認を推奨
メインの.phpにセキュリティホールがあればやはり全部無駄になるからこれも(ありがちなのがアップローダ機能)
ところで.htaccessでどんな設定書いてんの
0281デフォルトの名無しさん2016/04/06(水) 15:28:04.17ID:gq7o88bt
ドット始まりのファイル名にしとけばよほどのことをしてもWeb経由では見られないんじゃね
0282デフォルトの名無しさん2016/04/06(水) 16:07:22.70ID:b8EzfBRn
Laravelなら安心!
0283デフォルトの名無しさん2016/04/06(水) 16:22:16.52ID:zh0XMq5l
>>281
これは隠しファイル扱いですよという一種の約束事なので、
知っていれば自由に読み書きできてしまう
0284デフォルトの名無しさん2016/04/06(水) 18:58:39.31ID:Y+jXv/sp
超初歩的な質問で申し訳ないのですがXSS対策のエスケープで事前に
function h($s) {
return htmlspecialchars($s, ENT_QUOTES, 'UTF-8');
}
を作っておくことを学んだのですが
$sはそのphpでは上記部分以外では見つからないのですがどういう意味を持つ引数なのでしょうか?
また事前に$sの宣言を行わなくても良いのはなぜでしょうか?
0285デフォルトの名無しさん2016/04/06(水) 19:22:28.16ID:xAgh0Pyq
引数って言葉使ってるけど、関数が何か理解してますか?
0286デフォルトの名無しさん2016/04/06(水) 19:23:39.55ID:b8EzfBRn
Manual見よう
0287デフォルトの名無しさん2016/04/06(水) 19:45:33.76ID:ZQg6xGn/
>>283
httpdのデフォルトの設定でドット始まりは見せないようになってるでしょ
.htaccess の設定ミス程度ではこの動作は変わらないから、余程のことをしない限りは安全でしょ
0288デフォルトの名無しさん2016/04/06(水) 19:50:32.95ID:xAgh0Pyq
Apache限定の話だけどネ
0289デフォルトの名無しさん2016/04/06(水) 22:06:02.77ID:chXvhDzz
PHPでは$_POSTなどのスーパーグローバルは直接操作するなと言われているけど、
書き換えることが出来てしまうということが、
バリデーターのテストコードを書く上で、物凄く便利であるということに気付いた春。
0290デフォルトの名無しさん2016/04/06(水) 23:11:26.49ID:q1HrDxSz
javascriptやってて最近php始めたんですが、文字列や正規表現などの記述でphpはイライラします。phpは何でjavascriptみたいな柔軟な記述が出来ないのでしょうか?phpなんて作った奴は誰ですか?
0291デフォルトの名無しさん2016/04/06(水) 23:20:26.16ID:HSAkNgFK
>>284
function h($s) {
return htmlspecialchars($s, ENT_QUOTES, 'UTF-8');
}
echo h($s);

function h($s) { の $s は、仮引数(parameter)であって、
関数のための受け渡し用の仮の変数だから宣言はいらず$vとか好きにしていい。
echo h($s);の $s は、実引数(argument)であって、
実際に流れの中で利用されている変数で、宣言や代入され値が入っている。
0292デフォルトの名無しさん2016/04/07(木) 00:34:49.43ID:838jiYpM
まずjsは柔軟じゃない。ガバガバなのだ
0293デフォルトの名無しさん2016/04/07(木) 03:41:23.49ID:861uWPB3
Apacheともう一個なんだっけ最近上がってきてたやつ あれの評判どうなんだろうね
0294デフォルトの名無しさん2016/04/07(木) 04:18:50.70ID:PO5E9BnC
スレチ 独り言 質問しっぱなしが最近大杉
こっちに引っ越してきてから過疎スレそのものだったのに
春休みで同じやつがやってるんだろ
0295デフォルトの名無しさん2016/04/07(木) 13:08:16.18ID:O69mbgIK
php-cs-fixerをインストールしたらPHPのバージョンが勝手に7に上がってました。OS標準(Mac)のバージョンに戻すことは可能ですか?
上書きされてしまったのでしょうか
0296デフォルトの名無しさん2016/04/11(月) 13:57:00.23ID:pJYoLHo6
read.php ← conf.txt
write.php → conf.txt

こんな感じて特定の設定を保存しておきたいんだけど、おすすめの方法ないですか
自前で全部作らないとダメ?
0297デフォルトの名無しさん2016/04/11(月) 14:24:35.69ID:2HwASHVN
すみません、ページごとの閲覧数を表示できるPHPってありますか?
ワードプレスの「WP-PostViews」プラグインは知っていますが、ワードプレスではないサイトなので・・・
0298デフォルトの名無しさん2016/04/11(月) 14:28:52.63ID:cX0ZVNHx
>>296
おれは設定を array にした PHPコードにしてファイルに書いちゃう手をよく使う。
書く処理は作らなくちゃいけないが、読む処理は include するだけでいい。
0299デフォルトの名無しさん2016/04/11(月) 14:34:17.61ID:pHIRjOY+
>>297
http://tamae.2ch.net/test/read.cgi/php/1330980652/
0300デフォルトの名無しさん2016/04/11(月) 14:42:15.76ID:2HwASHVN
>>299

ありがとうございます。
質問してみました。
0301デフォルトの名無しさん2016/04/11(月) 14:58:26.31ID:zPYXS2gG
>>298
書く処理を作るくらいならばいっそserialize()してしまったほうが良くないか
以前試したときは速度的には配列だけの.php読み込みもcsv読み込みもunserializeもほぼ変わらない
ただ、設定ファイルをそれなりに頻繁に手で書き換えるなら配列.phpやcsvのほうが確かに便利
0302デフォルトの名無しさん2016/04/11(月) 15:28:56.19ID:cX0ZVNHx
>>296
設定ファイルの可読性を全く問わないなら serialize/unserialize を使うって手もあるね。
JSON形式で保存することにして json_encode/json_decode を使うって手もありそう。
0303デフォルトの名無しさん2016/04/11(月) 15:34:31.20ID:cX0ZVNHx
おお、かぶったw

>>301
おれも計ったけど、unserialize は結構遅かったような。
設定ファイルじゃなくキャッシュだが、それで serialize 使ってたのを array を使うようにした。
と言っても設定ならどのみち一瞬で読めるから出来合いでやれる方がいいかな。
0304デフォルトの名無しさん2016/04/11(月) 15:41:47.48ID:cX0ZVNHx
連投すまん
array でやるなら var_export が使えるのを思い出した。
おれは余計なスペースや改行だらけになるのを嫌って自前で書いたが、設定ファイルならむしろこっちの方がいいだろう。
0305デフォルトの名無しさん2016/04/11(月) 15:45:31.94ID:YMrMfC9q
ディブ アライン アライン

なんですかこれ
0306デフォルトの名無しさん2016/04/11(月) 16:34:07.85ID:PHHPdBbi
JSのTypeScriptみたいな、PHPを別言語から変換して使う言語はないのでしょうか?
静的型付け言語出身なので、動的言語に慣れなくて・・・
本当はjava鯖がいいのですが、共用鯖だと使えないところが多いので
0307デフォルトの名無しさん2016/04/11(月) 16:46:29.06ID:zPYXS2gG
>>303
実際やってることがほぼ変わらないからか、php5.6系ではいずれもほぼ同じだった
確認は定番のmicrotime(true)@cli、読み込むデータのサイズをバカみたいに大きくしても同様
真面目に考えるならopcacheとの兼ね合いを第一に考えるべき
…というかunserializeと他とで速度差が露骨に出るって.phpコード読み込みにopcache効いてましたってオチじゃなかろうな

var_exportは設定読み書きに使うにはちょっと読む処理を書かなきゃいけないような
0308デフォルトの名無しさん2016/04/11(月) 16:50:34.64ID:jGs+gPDI
そんな1回あたり1ms未満の戦いしても意味ないんじゃないの
1万req/sec超とかなら話は別だが
0309デフォルトの名無しさん2016/04/11(月) 17:45:50.42ID:cX0ZVNHx
>>307
ごめん、PHP5.1.6 で試したら serialize 結果をそのままファイルに吐いたのを userialize するのが一番速かった。
計った時のいろんな事情や条件がおぼろげで曖昧になってたよ。
速度比としてはこんな感じ。

A. serialize結果がファイル化されたものを、unserialize(file_get_contents('conf.txt)); する
B. serialize結果のデコードをPHPコード化(<?php $conf=unserialize([serialize結果の文字列化]); )したファイルを include する
C. var_export結果を PHPコード化(<?php $conf=[var_export結果]; )したファイルを include する
D. Cと似てるけど、余計な空白や改行を含まないファイルを include する

A 5.4
B. 14.7
C. 19.5
D. 12.6

サンプルデータは、適当なディレクトリツリーを array化したのにしてみた(A のデータファイルで 7KB規模)。

読み込みを include 一発で済ませられるようにするなら D、極簡単な読み込みコードを書くなら A だね。
データファイルの可読性や編集しやすさを取るなら C/D、読み取りパフォーマンス重視なら D、書き込みコードを簡単にするなら C だ。
JSON も試したかったけど今手元にあった環境では使えなかった。

>>308
それはその通り、ほとんど影響の無い時間を稼ぐのに無駄に苦労するのはただのアホだわな。
おれの場合は処理済みデータのキャッシュ化に使ったから読み取りパフォーマンスを重視したけど。
0310デフォルトの名無しさん2016/04/11(月) 18:38:16.01ID:jGs+gPDI
YAMLにしろよ
0311デフォルトの名無しさん2016/04/12(火) 01:59:13.91ID:vDLzdyvt
PHPの勉強にweb巡回ツールを作成中なのですが
現在はfire_get_contentsでHTMLを取得し、DOMDocumentからLoadHTMLでDOMドキュメントに変換し、それをsimplexml_import_domでxmlに変換し、xpathで要素を指定するといった方法を取っています。
しかし変換したxmlの中身のデータに元のソースコードの食い違いなど不審な点があったので、中身の要素を全て表示してみたところ、htmlソースの「::before」「::after」で指定されている部分のソースコードが取得出来ていないという事が判明しました。
調べてみたところこのタグはCSSでいじる段階になってからHTMLコードを追加するといったタグのようで、fire_get_contentsで取得したhtmlには含まれていないようです
こういった表示段階になって始めて表示される要素まで含めた完全なHTMLソースを取得したいのですが、何か良い方法は無いでしょうか。
よろしくお願い致します。
0312デフォルトの名無しさん2016/04/12(火) 02:12:44.98ID:NLppiuAm
>>311
PHPとは関係無い話になっちゃうけど、chrome かなんかのレンダラを使う方法があったような。
早い話、ブラウザのインスタンスを作ってそれを制御する感じ(もちろん物理的な画面は必要無い)。
スクリーンショットの取得なんかもできたと思うし、多分JSなんかで加工された後のDOMも取得できると思う。
やり方わかったら教えて。
0313デフォルトの名無しさん2016/04/12(火) 02:20:26.21ID:20poyVM6
cssの擬似要素だけが問題なら自分で展開すりゃいいんでないの

っていうかjavascriptでUA判定して内容切り替えとかしてたらどうすんの
0314デフォルトの名無しさん2016/04/12(火) 02:38:41.31ID:vDLzdyvt
>>312
やっぱり一旦ブラウザに読み込んでからhtmlを取得した方が確実みたいですね
設定作業が難しそうなので避けていましたが、セレニウムってのでそんな感じの事が出来ると思うのでもう少しやり方を調べてみようと思います

>>313
UAならリクエスト送る段階で偽装出来ると思うのですが、なるべく対応したいです
やっぱりページ更新のチェック位置が取得出来ない部分にあったら巡回不可能なサイトが出来てしまう訳ですし・・・

HTMLやCSSにはあまり詳しくないのですが、擬似要素での可変部分は内部的な記述で隠蔽しているという訳ではないんですね
自分で展開できそうならそちらも視野に入れて調べてみます、ありがとうございます
0315デフォルトの名無しさん2016/04/12(火) 03:01:29.60ID:20poyVM6
>>314
スクレイパなどではなくてほんとに汎用web巡回更新チェックか。cssの擬似要素は単純っちゃかなり単純なのですぐわかると思う

ところで素朴な疑問なんだけど
rssを使うとかならともかく生htmlを使って巡回・更新チェックを行う場合、同じく生htmlに吐かれたアクセスカウンターとかどうすんの?
さらに生htmlに実データが無くデータ取得から整形までクライアントに負わせ同時に確実な広告表示を実現してるサイト等の場合も
更新に関わらず内容が変化しうる、これはjsエンジン等を突っ込んだー、だけじゃ解決できない気がするんだけどこの辺どうなんだろう?
0316デフォルトの名無しさん2016/04/12(火) 03:29:34.82ID:vDLzdyvt
>>315
あまり詳しくはないのですが要素の位置に変化が無ければ値が変化しても特に問題は無いと思います
htmlが取ってこれればそれをdomに突っ込んでxmlに変換してxpath通せば特定要素だけを取ってくる事は出来るので
それでhtml上の更新時に必ず変化が起きる要素を一定時間ごとにチェックして変化が確認できたらログを保存してチェックデータを更新といった具合で実装しようと思っています
0317デフォルトの名無しさん2016/04/12(火) 03:32:39.65ID:w4romtCS
思い込みで話すとだめという例
0318デフォルトの名無しさん2016/04/12(火) 05:46:53.79ID:vDLzdyvt
しかしどうしても不思議なんだけど外部サーバから動かす時ってブラウザはどうやって用意するんだろ・・・
seleniumにブラウザのドライバがあってそれ使ってコマンド飛ばせばブラウザを動かせるってのは分かるんだ
そしてwindowsやらmacならフツーにfirefoxなりchromeなりインストールしたら使えるってのも分かる
しかし外部サーバにphpファイルをアップロードして使うって話になると肝心のwebブラウザはどうやって読みこませればいいんだろう
元からインストールされてるとも思えないしレンタルサーバにwebブラウザがインストール出来るのか、それともwebブラウザのexeファイルだけ置けば普通に使えるのか
そもそもレンタルサーバがGUI環境じゃなかった場合webブラウザってのはマトモに動くのか
php web driverってのがある以上何らかの手段はあるんだろうけど、レンタルサーバ上でセレニウムを動かすに当たって何をアップロードすればいいのかっていう必要なものが見えてこない・・・うーむ・・・
0319デフォルトの名無しさん2016/04/12(火) 09:22:36.97
>>318
めんどくさいので、
(1)node.jsが使えるレンタル鯖を借りて
(2)JS+Node.jsによるWebクローラー/ネットエージェント と言う本を買いなさい
0320デフォルトの名無しさん2016/04/12(火) 09:30:30.18ID:K20+5BP2
>レンタルサーバ上でセレニウムを動かすに当たって何をアップロードすればいいのか
いやいや、普通はルートでやるんですよ
VPSが最低要件
それとそこそこのメモリが必要になるでしょうね
そもそもクローラーをレンタルサーバでやる意味がわからないのだけれど・・・
自分のPCでいいじゃない
0321デフォルトの名無しさん2016/04/12(火) 10:42:50.72ID:PLXRZMCg
レンタルサーバーでそれやられたら負荷が高くて同居人に迷惑だな
0322デフォルトの名無しさん2016/04/12(火) 10:55:55.85ID:NLppiuAm
>>320
マナーの問題は置いておいて、こんな処理で root が必要?
パッケージマネージャみたいので入れるなら root を要求されるだろうけど、ディレクトリ一式上げれば動くんじゃないの?
0323デフォルトの名無しさん2016/04/12(火) 11:55:03.31ID:gTjFdqWa
PhantomJSとかその派生は使わんの?
0324デフォルトの名無しさん2016/04/12(火) 11:59:06.19ID:uMcJYrhA
>>322
FirefoxとXvfbが必要
結局JavaScriptで操作した分の対応ってだけで
DOMでない擬似クラスの:afterや:beforeはどうしようもないけど
0325デフォルトの名無しさん2016/04/12(火) 14:46:55.51ID:pjxLuk2S
ログファイルを利用してwebサービス的なものを考えてはいたんですがseleniumは負荷が激増しそうなのでやめておこうと思いますお騒がせしました
むしろ読み込んだhtmlデータを確実に破棄出来てるか、メモリリーク起きてないかが気になってきました
今までは使った変数とか適当に放置してましたがunsetで確実に破棄して行こうと思います
0326デフォルトの名無しさん2016/04/12(火) 16:06:33.46ID:xc/VnKsQ
レベルが高くで全然わからん
やっと$変数名っての覚えた
0327デフォルトの名無しさん2016/04/12(火) 17:46:29.87ID:ZuNPcNPl
PHPやろうと思ったら仮想サーバーとかSQL?とかいろいろ設定しないといけなくて手が出せない
なんていうか全部パッケージされてて解凍かインストールするだけでPHP初められる開発ソフトって何かないか?
0328デフォルトの名無しさん2016/04/12(火) 17:54:12.53ID:xc/VnKsQ
>>327
xampp
0329デフォルトの名無しさん2016/04/12(火) 17:56:37.42ID:pjxLuk2S
>>327
WebMatrix3ってのインストールして起動して新規で空サイト立ち上げたらホーム→新規→新しいファイル→PHPっての入れて
phpコード書くっぽい部分にecho 'test';って入れてから作ったファイル右クリして「ブラウザで起動」選んだら動くよ
mysqlとかwordpressとかも大体入ってる
0330デフォルトの名無しさん2016/04/12(火) 20:52:26.03ID:VhrT22lj
Propelって、コードを読めば読むほどアホが作ったんだなって分かる。
壮大なゴミクズだな。
0331デフォルトの名無しさん2016/04/12(火) 20:57:22.23ID:uMcJYrhA
php4時代の産物に文句言ってもしゃーない
0332デフォルトの名無しさん2016/04/12(火) 21:09:45.08ID:FIX7kEEP
何で今Propelなんや, Doctrineやろ
0333デフォルトの名無しさん2016/04/12(火) 21:33:32.50ID:VhrT22lj
既存プロジェクトだから。
新規ならDoctrineだって馬鹿らしい。
0334デフォルトの名無しさん2016/04/13(水) 00:09:44.78ID:pIZn+U3p
>>327
PHPやるために仮想サーバやデータベースは必要じゃないよ。
仮想サーバが必要なら入れないといけないし、データベースもそう。
深く考えすぎじゃないでしょうか。
0335デフォルトの名無しさん2016/04/13(水) 00:36:38.99ID:eHbmdEvw
>>333
おすすめORMおしえて
0336デフォルトの名無しさん2016/04/13(水) 03:31:33.91
>>327
土日でわかるPHPプログラミング
と言う本やな
自分のパソコン側ではなくてVirtualBoxにPHPやらデータベース入れて動かす方法
0337デフォルトの名無しさん2016/04/13(水) 04:22:33.01ID:799QV5+T
VirtualBoxで動作確認環境を構築するって仮想マシンのOSはLinux入れろってこと?
ローカルpcでphpのソース書いて、わざわざVM側にアップロードして動作確認するの?
開発する時はローカルにxampp入れてソース書いてはローカルで動作チェックしてってやらないの?
ローカルでチェックした後にLANにあるテストサーバや本番サーバにアップしたりしないの?
0338デフォルトの名無しさん2016/04/13(水) 04:39:51.30ID:SBj4pmRf
最低限php -l script-fileできりゃいいや

最近のphpはwindows版バイナリがvcランタイム必須なのがちょっと面倒
0339デフォルトの名無しさん2016/04/13(水) 05:45:48.69
>>337
Vagrantと言う仕組みが有って、ローカルのフォルダの内容をVM側に自動で同期出来る
ローカル側では秀丸エディタとかPhotoShopとか使えるわけで転送も不要、楽だろ

本番機との同期はGitにしなさい
ローカルで開発、SourceTreeでBitBucketにプッシュ、本番機でプル
バージョン管理もバックアップも出来る
0340デフォルトの名無しさん2016/04/13(水) 05:51:50.27ID:od2stSEV
IDEの設定でサーバと連携させる
実行したらFTPなりSCPなりでデプロイしてIEでの実行結果がIDE内に表示される
0341デフォルトの名無しさん2016/04/13(水) 07:30:03.80ID:m+b23jHk
>>335

一般に出回っているもので、まともなORMなんてPHPには無いよ。どれもこれもクソ。
PDOがとても優秀なんだから、PDOをラップしたライブラリを自作すればいいと思う。

何年か前にPDOをラップしたDataMapperの作り方を詳細に書いてくれてたページがgoogle検索の上位にいて、
オレはそれを参考に作って使ってる。
さっきちょっと検索してみたけど、今はどうでもいい内容の薄いページばかりが上がってきて、
ちょっと見つけられなかった。
0342デフォルトの名無しさん2016/04/13(水) 16:10:54.68ID:m2aMgexj
初歩的で申し訳ないですがスマホ用ページとPC用ページでURLを変えたくない場合
一つのPHPにスマホ用とPC用のコード両方書いてもブラウザで判別して分岐させたら
処理は重くならないですよね?
ファイル分けた方が軽いんでしょうか
0343デフォルトの名無しさん2016/04/13(水) 16:29:00.50ID:V9vZnwrf
重くなるってほど変わるような話じゃない
というか最近のトレンドは画面サイズで処理振り分ける方法
ようは全部スタイルシートでやる
0344デフォルトの名無しさん2016/04/13(水) 17:30:50.08ID:Qs0P8RGZ
諸先輩方に質問なのですが
特定の文字列の末尾に[]で囲まれた0以上の整数値(最大値は不明)が入っている事があります
文字列にこれが含まれているかを判定して[]まで含めて除去したいという場合どのような処理を用いればよいのでしょうか
0345デフォルトの名無しさん2016/04/13(水) 18:05:35.83ID:KCoW39g8
>>344
微妙に曖昧な点があるから、文字列の具体例と欲しい結果を書いてごらんよ
0346デフォルトの名無しさん2016/04/13(水) 18:50:02.39ID:SBj4pmRf
>>345
曖昧な点がどこにあるか教えてもらえないでしょうか
0347デフォルトの名無しさん2016/04/13(水) 18:53:10.23ID:fbVZAWIt
例を書けよ、オレもあいまいだから様子見してた
その探したい文字列は複数あるの?
全体は複数行なの?
0348デフォルトの名無しさん2016/04/13(水) 18:59:33.89ID:OSAV0HGg
preg_replace('/\[\d+\]$/', '', $s)
とかじゃないの
0349デフォルトの名無しさん2016/04/13(水) 19:04:16.19ID:pIZn+U3p
そうだと思うよ。
文字列のパターンによっては [ 以降を切り捨てるだけで解決する話かもしれない
0350デフォルトの名無しさん2016/04/13(水) 19:20:04.40ID:eHbmdEvw
整数値と明示されていると/\[[1-9][0-9]*\]$/としたくなるな
0351デフォルトの名無しさん2016/04/13(水) 19:20:44.70ID:pIZn+U3p
0以上の整数値だそうですよ
0352デフォルトの名無しさん2016/04/13(水) 19:21:34.17ID:eHbmdEvw
Oh
0353デフォルトの名無しさん2016/04/13(水) 19:30:22.40ID:Qs0P8RGZ
返答遅れましたが、具体例は'foo/bar[1]/qux/quux[3]'といった形で
'foo/bar[1]/qux/quux'だったり'foo/bar[1]/qux/quux[30]'だったりします
欲しい結果としては、どのパターンでも最後のカッコだけを切り落として'foo/bar[1]/qux/quux'という結果です
0354デフォルトの名無しさん2016/04/13(水) 19:38:51.78ID:Qs0P8RGZ
>>348
今確認しましたがピッタリです。ありがとうございます
0355デフォルトの名無しさん2016/04/13(水) 21:51:54.45ID:Qs0P8RGZ
度々申し訳ありません、再度質問なのですが
//foo[@id="aaa"]/bar/baz[@id="bbb"]/@xyz
といった文字列の中から、一番最後に出てきた[@id="xxx"]以降の文字列を取得したいのですが、これは正規表現で指定可能でしょうか
/\[@id=".*"\].+/で一番最初に出てきたid以降の文字列を取得出来る事は分かったのですが、一番最後のidを指定する方法が分からず困っています
検索文字列の中に[@id=""]が何度出現するかは不定、""の中に入る文字列も不定で何が入ってくるかは分からないという状態です
よろしくお願いします。
0356デフォルトの名無しさん2016/04/13(水) 21:57:23.60ID:pIZn+U3p
先頭に .* つけとけばいいよ
0357デフォルトの名無しさん2016/04/13(水) 22:06:18.52ID:Qs0P8RGZ
>>356
正規表現チェッカーで試してみましたが失敗しました
/.*\[@id=".*"\].+/ これで間違いないでしょうか
0358デフォルトの名無しさん2016/04/13(水) 22:52:26.62ID:pIZn+U3p
>>357
/.*(\[@id=".*"\].+)/
0359デフォルトの名無しさん2016/04/13(水) 23:05:42.73ID:Qs0P8RGZ
グループ化して前に.*を置くと配列の2番に欲しい要素が取れるんですね
何故これで取れるのかは少し理解が及びませんが、グループ内外の計算順序的な関係でしょうか・・・
ありがとうございます、とても助かります
0360デフォルトの名無しさん2016/04/14(木) 00:20:33.95ID:NDERo24Z
でも多分、ちょっとテクい正規表現を使って書くより
素直にifやらforやらを使って処理したほうが幸せになれる。たぶんね。
0361デフォルトの名無しさん2016/04/14(木) 00:59:09.74ID:0z/54ctX
クッソド素人な質問でごめん。

NetBeans8.1(PHPバンドル)+xampp5.6.19でやってるんだけど、デバックとかやったことがなくデバックの意味がよくわからなくて質問。

デバックってプログラムを途中で止めたり出来るってこと

ブレークポイント?で止めてその変数に何が入ってるとか見れたりするってことかな?
デバックを使うにはxamppのphp.iniを編集しないといけないみたいなんだけど、ということはレンタルサーバなんかの本番環境はphp.iniの設定がデバックできない設定になってるってことなの?
0362デフォルトの名無しさん2016/04/14(木) 02:50:30.37ID:nrccYQkH
>>361
デバッグってのはプログラムが意図通りに動作しない原因を調べて修正する作業のこと
ブレークポイントとかで止めて変数チェック出来ると便利だけど別に出来なくても問題無い
要するに変数の中身が見たかったらechoとかprint_rとかで適当に変数の中身を出力してチェックするだけでも事足りる
むしろif文で更に条件絞り込めたりするからブレークポイントより使いやすかったりする
そういうデバッグ用の表示はif(DEBUG_FLAG){}とかで囲っておくとデバッグ終わったら定数をFALSEにすると一々コメントアウトしなくていいからラク
というか本番環境はデバッグ用に使っちゃ駄目じゃない?
問題が起きたらローカル環境でデバッグ済ませたコードで修正しようよ
03633612016/04/14(木) 03:57:13.82ID:kAeel0Dm
ありがと。php.iniにxdebug追加してNetBeansでデバック実行できた。
ブレークポイントの動かし方がいまいちわからなくて直感的に止めてやってみたけど変数の中身を確認する事ができた。
中身を見たけりゃデバックなんて使わずにechoするってのもわかった。

>本番環境はデバッグ用に使っちゃ駄目じゃない?
なるほど。そういうことなんだね
0364デフォルトの名無しさん2016/04/14(木) 05:06:21.70ID:3AVihPqE
デバッグをはかどらせるためにデバッガを使っている。
これで用語が安定してくれるだろうか。
デバックのままな時点で注意力散漫なんだろうけど。
0365デフォルトの名無しさん2016/04/14(木) 07:52:56.33ID:NDERo24Z
よぉし、エンバグなら任せとけ
0366デフォルトの名無しさん2016/04/14(木) 07:56:28.93ID:yvAyG8T7
やめて!!
0367デフォルトの名無しさん2016/04/14(木) 09:16:28.14ID:Ut07vz2q
デグレーダーと呼ばれた男
0368デフォルトの名無しさん2016/04/14(木) 19:41:19.87ID:V5OZRKDZ
デグレとか気にしないためにも、テストコードはちゃんと書こうな! みんな
0369デフォルトの名無しさん2016/04/15(金) 05:47:16.79ID:AwudtfsZ
いやでござる!
0370デフォルトの名無しさん2016/04/15(金) 10:58:24.26
CSSのテストってどうすんやろか
よく「あれっinput textの角丸がなくなってるじゃん」とかなる
0371デフォルトの名無しさん2016/04/15(金) 11:15:26.36ID:hZLpy2lo
ここがなんのスレだと思ってんだか
0372デフォルトの名無しさん2016/04/15(金) 14:41:36.55ID:h/bEplyz
PHP=WEB関連含むって思ってんじゃね?
0373デフォルトの名無しさん2016/04/15(金) 15:32:55.87ID:hZLpy2lo
http://echo.2ch.net/hp/
0374デフォルトの名無しさん2016/04/15(金) 16:16:21.15ID:DHB605eu
<form>
<input type="checkbox" name="s1">スイッチ1<br>
<input type="checkbox" name="s2">スイッチ2<br>
<input type="checkbox" name="s3">スイッチ3
</form>

こんな感じで複数のチェックボックスがあります。
これがチェックされているかいないか確認し、boolean型の配列で保存するにはどうしたら良いでしょう?
(スイッチの数は1〜1000くらいのあり不定です)
0375デフォルトの名無しさん2016/04/15(金) 16:40:55.85ID:vlLJvY6e
nameを配列にする
0376デフォルトの名無しさん2016/04/15(金) 16:44:16.32ID:hZLpy2lo
不定といってもチェックボックス数はわかるんでしょ?
<input type="hidden" name="checkbox_count" value="30">
みたいのを一緒に送れるなら作成する配列数がわかるし簡単でそ
0377デフォルトの名無しさん2016/04/15(金) 18:11:39.89ID:CtWeAAug
バージョンわからないが、そもそもPOSTできる数の上限があるの知ってんのかね?
まあ設定変更はできるけど
0378デフォルトの名無しさん2016/04/15(金) 18:32:22.00ID:ckmbczRy
無知な質問すまん
バッチファイル使って指定したバッチファイル強制終了させるにはどうすりゃいいの?
0379デフォルトの名無しさん2016/04/15(金) 18:40:06.37ID:AwudtfsZ
端的にkill/killprocやtaskkillをexecで呼び出せばいいんでないの
事前にバッチ自身にgetmypidでpid吐かせといてもいいし、psやtasklistでプロセスの一覧拾ったり
あとは必要ならcrontab見て、Windowsだとatコマンドも使えたっけ
0380デフォルトの名無しさん2016/04/15(金) 18:40:09.67ID:KMLXrrkX
>>374
<form>
<input type="checkbox" name="s[1]" value="1">スイッチ1<br>
<input type="checkbox" name="s[2]" value="1">スイッチ2<br>
<input type="checkbox" name="s[3]" value="1">スイッチ3
</form>


if(@$_POST['s']['2']) echo 'スイッチ2 はチェックされてるよ';
0381デフォルトの名無しさん2016/04/15(金) 18:41:11.89ID:KMLXrrkX
ちょっと訂正

if(@$_POST['s'][2]) echo 'スイッチ2 はチェックされてるよ';
0382デフォルトの名無しさん2016/04/15(金) 19:23:10.16ID:nJ+BLq/e
最近、新しい仕事でFuelPHPを使わなければいけなくなったんだけど、Webサイトや参考書を見てもいまいちピンとこない。
元々フレームワークなんか一切使わない、フルスクラッチ派のSEなんで、なんかMVCとかいうのが肌に合わないんだよなー。
もちろん時代の潮流としてフレームワークを使って作成したアプリ開発もしないといけないのはわかるんだけどさ。

fuelPHPを使ってゴリゴリにやっている若いエンジニアから、フルスクラッチ派を古株エンジニアのオレに対して小馬鹿にされるのがなんか切ない。
0383デフォルトの名無しさん2016/04/15(金) 20:33:12.28ID:fQgrroZ3
@とかつかうのやめれ
0384デフォルトの名無しさん2016/04/15(金) 22:15:50.32ID:EFtvuIJr
>>381
何でissetしないん?

>>382
車輪の再発明を毎回やってんの?
0385デフォルトの名無しさん2016/04/15(金) 22:22:10.68ID:UZSoNJii
>>379
サンクス
あと 指定したプログラムが終了したらそのbatも同時に終了する 的なbatはどうすれば作れるの?
0386デフォルトの名無しさん2016/04/15(金) 22:29:02.96ID:KMLXrrkX
>>384
任意の値を取れる他の要素を使う場合も考慮して。
@ が遅いという留意点はあるけど、ここで示したい本質はそこではなく name の配列表現だから。
0387デフォルトの名無しさん2016/04/15(金) 22:30:44.74ID:7TuTTpcb
@って正直自分も使いたくないんだけど、5系の環境で
$foo = @$bar ?: $baz;
はアリ? ナシ?
0388デフォルトの名無しさん2016/04/15(金) 22:47:35.26ID:AwudtfsZ
今のphpは確かにname="value[n]"を$_POST['value'][n]にまとめてくれるけど
htmlソースがいかにもphp独自仕様です、って感じなので好きじゃない俺ロートル

>>385
情報が少なすぎるアンドなんかすでにphpの問題じゃない匂いがする

phpバッチにプロセス存否を監視させ続けるとか、
対象の別プログラムにロックファイルを生成させといてそれをチェックさせるとか(要clearstatcache()確認)、
そもそもphpバッチから別プログラムを呼ばせるとか、プログラムを監視して落ちてたらphpバッチを探して生きてたらこれを落とす別バッチを書くとか
0389デフォルトの名無しさん2016/04/15(金) 23:57:49.68ID:Bg5QZn6N
自宅でwebクリエーターとして小さな個人会社向けにweb制作したいんですがHTML5+CSS3+Javascript+PHPだけで食えますか?
画像処理(デザイン)はめちゃくちゃ苦手でセンスゼロです。
wordpressのテンプレカスタマイズしたほうが食えますか?
0390デフォルトの名無しさん2016/04/16(土) 00:14:57.05ID:yp3MoCIl
食うのに必要なのは、技術よりもまずコネと営業だ
0391デフォルトの名無しさん2016/04/16(土) 01:18:41.49ID:ESOj33QV
受注してきました!→技術がないので作れません
0392デフォルトの名無しさん2016/04/16(土) 01:32:20.87ID:qRVltTpd
→外注だ
0393デフォルトの名無しさん2016/04/16(土) 02:51:57.19ID:ESOj33QV
利益がなくなりますw
0394デフォルトの名無しさん2016/04/16(土) 03:08:54.48ID:FFCasTRX
>>382
MVCが肌に合わないから特定のフレームワークを使わないというのならわからんでもないが、
フルスクラッチ派だからMVCが肌に合わないというのはおかしな話じゃないですかね。
てか、そのフレームワークに関してはその若いエンジニアのほうが「古株」でしょ。

>>386
> ここで示したい本質はそこではなく
本質じゃないから余計なものを省いたということなら、
なおさら @ ないほうがよかったんじゃないでしょうか。
0395デフォルトの名無しさん2016/04/16(土) 03:38:21.70ID:CqNnK3O6
>>394
本質じゃないから余計なものを省いたんじゃなく、本質を説明するための必要十分の例として @ を使ってるんだよ。
本質はお目当ての物が配列で参照できるということであり、そこが分かれば好きにコードを書けるでしょ。
その本質を示す手段としては @ だろうと @無しだろうと isset だろうと array_key_exists だろうとどれでもいいから、おれは @ で示したというだけの話だ。
ちなみにおれも普段は isset を使ってるよ。
さらに付け足すと、フォーム要素を配列で受けるのもあんまりしない。
0396デフォルトの名無しさん2016/04/16(土) 14:39:46.43ID:PpvjCwHN
>>377
上限なんてあるの?
0397デフォルトの名無しさん2016/04/16(土) 15:15:24.00ID:yp3MoCIl
データサイズなんぼとか、ファイル数なんぼとか、そういうのならあった
0398デフォルトの名無しさん2016/04/16(土) 16:36:00.58ID:qRVltTpd
5.3.9以上で有効になってるmax_input_varsという設定があってな、まあこれだ
http://php.net/manual/ja/info.configuration.php#ini.max-input-vars

5.3.8以前では3000個だろうが10000個だろうが問題ない(ブラウザの制限は受ける)
0399デフォルトの名無しさん2016/04/16(土) 16:46:43.81ID:qRVltTpd
もちろんHTTPの制限じゃなくてphpが独自に追加したDOS対策
POSTならphp://input読んで、GETなら$_SERVERでリクエスト読んだりapache_request_headers()使ったり
COOKIEだとそもそも複数個を連結できるしapache_request_headers()で取れるかも、という風に設定変更以外で回避はできるが
0400デフォルトの名無しさん2016/04/16(土) 23:08:06.17ID:yp3MoCIl
ちょいと意見聞かせてくれ。

PHPでWebツール作ってて、内容によってはWeb上だけで完結させず、
別個のプログラムを用意して、例えばcronに投げたほうがいいって判断したとする。

このとき、同じくくりのプログラムだし、保守面も考慮して両方ともPHPで書く?
それともPHPではなくPerlなりPythonなり、そういう用途向き(?)の言語で書く?

とりあえずプログラマは複数の言語に習熟してて、
かつ処理内容も言語を問わないものという前提とする。
0401デフォルトの名無しさん2016/04/16(土) 23:23:15.80
>>400
PHPでページからExcel出力するモジュール書いて
自動eMailでもそれ使ったりするよ
0402デフォルトの名無しさん2016/04/16(土) 23:26:21.71ID:yp3MoCIl
>>401
ありがとう。
どうもPHP = Webサイト表示用 という意識が抜けなくてなあ
0403デフォルトの名無しさん2016/04/16(土) 23:37:48.61ID:FFCasTRX
>>400
同じDB参照したりするだろうし、資産使いまわせるから便利だなと思うよ
0404デフォルトの名無しさん2016/04/17(日) 01:38:56.11ID:S2UekzcW
そのオブジェクトが参照する変数のドットのメソッド名
と先生に習いました。
意味が全然わかりません。
obj1.method()?

頭が固くて固くてプログラミングに頭脳が向いていません。
0405デフォルトの名無しさん2016/04/17(日) 01:50:43.62ID:sy21xjHh
$記号をシフトキー押さずに入力する方法ありますか?
変数のたびに毎回シフトキー押す手間を省きたいです
0406デフォルトの名無しさん2016/04/17(日) 02:15:00.06ID:I4Bf6IMv
>>400
バッチ用途でphpがperl・pyに劣ってる点おしえて
0407デフォルトの名無しさん2016/04/17(日) 02:37:15.07ID:LFk8XMyg
>>400
好きにしろ

>>404
主文が抜けて何を聞きたいのかわからない

>>405
キーマップでggr
0408デフォルトの名無しさん2016/04/17(日) 02:50:11.51ID:5SdFsd1w
>>406
別に優劣の話なんてしてないかと。
> PHP = Webサイト表示用 という意識が抜けなくて
なだけで。

JavaScript = Webブラウザ上のクライアントサイドスクリプトという意識が抜けなくて
という人もいるだろう。
0409デフォルトの名無しさん2016/04/17(日) 03:04:32.12ID:I4Bf6IMv
>>408
>それともPHPではなくPerlなりPythonなり、そういう用途向き(?)の言語で書く?
ここから 少なくともphp = そういう用途向きではない と読み取ったんだが

まあ言語ごとのバッチサポートの様子を語ってくれるなら誰でもいいよ
0410デフォルトの名無しさん2016/04/17(日) 03:59:55.77ID:WVqY7eVD
>>405
$ をコピーしておいて、$ を打ちたい場所で CTRL+V
0411デフォルトの名無しさん2016/04/17(日) 05:50:07.84ID:schrg1Ho
if(0 == '@attributes'){
echo '一致';
}else{
echo '不一致';
}

このPHP文を実行するとなぜか一致してしまうんですがこれは一体どういうことなんでしょうか
バージョンは5.3です。
0412デフォルトの名無しさん2016/04/17(日) 05:59:53.89
PHPで書かれたソースコードから見ると、入力にGET index.html 貰ってファイル処理して返すのと
標準入力からコマンド貰ってなんかしてechoすんのと
やることに変わりはないと思うんすよ
04134002016/04/17(日) 07:56:36.40ID:SaVaSm2U
>>409
優劣があると捉えられないように、慎重に言葉を選んだつもりだったんだけど
なかなか難しいね、すまん。

要はさ、もともとPHPはWebページ出力用として、Perlはバッチ処理用として、
あとは有名ドコロだと、Cは低レベル処理が可能な高級言語として生まれた、
……みたいなのあるじゃん?
優劣とまでは行かなくても、その生まれに適した部分(設計思想)って
やっぱりあったりするのかなって。
0414デフォルトの名無しさん2016/04/17(日) 09:21:16.78ID:I4Bf6IMv
>>413
なるほど…なるほど?perlは"バッチ"処理用として生まれたのか?cの生い立ちはbと比べて機械語吐ける/型がある/高開発効率が欲しかったからじゃ?まあ細かいことか

機能的にはぶっちゃけ列挙されたものだとさしたる違いはないかと バイナリも扱えるしsocketも叩ける
ただ、少なくともphpについては基本的には同期処理一本で出来てるから
複数の処理を平行でやらせて全部終わったらこれやらせて…とかはちょっと

あとサーバの機能を分割するときに「あーphp入れなきゃな」とか「バージョン同じにしないと」「別verと同居させないと」「php.ini別に作って指定させないと」がある
pythonやrubyだと最小構成でサーバ作ってるとき「あーpython入れなきゃな」ってことは良くあるし、perlでも移すのに「cpanであれこれ入れなきゃ」が稀に良くあるけど
そういやphpだとpearで持ってこなきゃって経験はないな
んで、web利用が基本だからなのかメモリとか継続実行時間とかで設定(php.ini)に気を使わなきゃいけないことが若干多い…かもしれない

自分が決めていい状況ならあらかじめ問題があるとわかってる場合以外はphpを採用しちゃう
cで書かなきゃ速度的に辛いってこともそう無いし、メインもphpならphp以外が苦手な人にもまとめて投げられる
0415デフォルトの名無しさん2016/04/17(日) 15:07:09.77ID:vkBmD+Lb
1,2,3,
この文字列を分解して数値配列にしたいんだけどどうすればいいの?
0416デフォルトの名無しさん2016/04/17(日) 15:16:01.30ID:CLrgwT7G
$list = preg_split("/,/", "1,2,3,");

とか?
文字列として入るし、最後のカンマのせいで空文字が末尾につくけど
0417デフォルトの名無しさん2016/04/17(日) 15:36:53.85ID:YYhB6pHO
みなさんPHPやり始める時は基本の基本から時間かけてやりました?
変数宣言の仕方とか、echoとprintの違いとかそこからやりました?
正規表現をいきなりやろうと思ってpreg_splitなどを調べてたりしたんですがチンプンカンプンなんですよね。
0418デフォルトの名無しさん2016/04/17(日) 15:37:03.30ID:MApiboDi
カンマをtrimしてexplode
0419デフォルトの名無しさん2016/04/17(日) 15:40:37.31ID:MXiE5eIT
正規表現は、仕様を理解できた範囲で使えばいいよ。
ワイルドカードを使わない文字列の検索や置換から慣れて行けば良い。
理解できないうちに複雑な表現を使うとメンテできなくなる。
0420デフォルトの名無しさん2016/04/17(日) 15:41:30.72ID:UjRxHr47
$array=explode(´,´,´1,2,3´)
0421デフォルトの名無しさん2016/04/17(日) 16:01:01.71ID:vkBmD+Lb
できました。
ありがとうございました。
0422デフォルトの名無しさん2016/04/17(日) 16:06:20.13ID:r8zM09th
>>411
==演算子を使っていいのは何やってるか分かっている人間だけ
分からんなら===演算子を使え
0423デフォルトの名無しさん2016/04/17(日) 16:11:31.64ID:CLrgwT7G
>>411
どうぞ
http://php.net/manual/ja/types.comparisons.php
0424デフォルトの名無しさん2016/04/17(日) 18:33:57.46ID:SaVaSm2U
>>417
今月からPHPプログラマとして仕事してるけど
休日にパーフェクトPHPを1冊読んだくらいかな。

それでもちょっとしたツールを作れるくらいにはなったよ。
もちろん細かい仕様とか、セキィリティ界隈とかの話とかはまだ怪しいところもあるけれど
最初からクリティカルな仕事を任されるわけでもないし。
0425デフォルトの名無しさん2016/04/17(日) 19:17:40.22ID:LFk8XMyg
>>411
数値と比較してるから@attributesはintにキャストされてると思えばいい
当然@attributesの前に何も数字がないので0になる
booleanで比較したいのなら!!をつけるとか
型まで考慮する場合===で比較するといい
0426デフォルトの名無しさん2016/04/17(日) 19:33:09.25ID:S2UekzcW
>>424
他に何かプログラミング経験はあったんですか?
Cをやってたとか
0427デフォルトの名無しさん2016/04/17(日) 19:44:45.16ID:SaVaSm2U
>>426
うん。仕事で使ったといえるのはC、C++、C#、Perlくらいだけど
0428デフォルトの名無しさん2016/04/18(月) 00:19:52.32ID:tA63gAjN
数値 == 文字でやった時の結果って 数字があるなしだったのか
10年近く勘違いしてたわ・・・
0429デフォルトの名無しさん2016/04/18(月) 15:41:37.77ID:3MBtO9g0
バッチ処理にPerlやPythonがよく使われてるのは
デフォルトの環境でインストール済みが多いからだ
PHPはインストールされてないことのほうが多い
0430デフォルトの名無しさん2016/04/18(月) 16:48:18.20ID:Py/QbWo6
php ruby perl python なら python がほぼ確実に入っているでしょう。

> 最小構成でサーバ作ってるとき「あーpython入れなきゃな」ってことは良くある
何のディストリつかってるんだろう
0431デフォルトの名無しさん2016/04/18(月) 16:55:31.74ID:V0FZFOjy
MacOSの中には PHP入ってますね
0432デフォルトの名無しさん2016/04/18(月) 17:07:57.24ID:looFcgiP
php単体で動かすことあまりないからな
基本的にapacheがはじめから入ってる環境でないと・・・
0433デフォルトの名無しさん2016/04/18(月) 21:14:51.29ID:qDtmsg1l
Perlはもともとawkの代替ってのもあるんじゃね
0434デフォルトの名無しさん2016/04/19(火) 12:36:16.06ID:6K/M8riZ
>>432
PHPにはビルトインWebサーバ付いてるぞ

しかしバッチ処理は2000年代まではPerlで書いてたけどPerl 6が正式に出た以上新規には書きにくくなったなー
Pythonは兎も角Rubyは趣味に合わないから専らPHPで書いてるわ
0435デフォルトの名無しさん2016/04/19(火) 22:50:20.52ID:IoSLlNnO
もうどうしていいか検討もつかないから助けてください。

$fp = fopen("list.csv", "r");
while (!feof($fp)) {
$line = fgetcsv($fp);
mb_convert_variables("UTF-8", "SJIS", $line);
echo "Title:$line[0] Date:$line[1]";
}

こんな感じでlist.csvからデータを読み込むことはできました。
問題は
1.Titleをクリックできるようにして、クリックでされたら対応するDateを返すこと
2.50件まで表示させて残りは次のページに表示させること
list.csvは4万件以上のデータがあるらしくページ番号で移動もおそらく必要

list.csvは
aaa,a000
bbb,b111
ccc,c222
……

こんな感じになっています。
0436デフォルトの名無しさん2016/04/19(火) 23:05:59.46ID:vjTai48k
>>435
csvファイルはtitle,dateの2列だけ?
a000がdateなの?

[title],[date]
aaa,a000
0437デフォルトの名無しさん2016/04/19(火) 23:19:30.67ID:9i1atlZ9
問題がある、わからないところがある、じゃなくてただの丸投げだな
0438デフォルトの名無しさん2016/04/19(火) 23:26:25.28ID:IoSLlNnO
>>436
はい
その通りです。

>>437
すみません。
PHPは昨日まで触ったこともなくて…
昨日環境作ってドットインストールで勉強して
今日から作ってたんです。
0439デフォルトの名無しさん2016/04/19(火) 23:43:55.16ID:pETlWi8B
「Titleをクリックできるようにする」と「Dateを返す」の2つの意味が分からない

妄想はできるけどw
0440デフォルトの名無しさん2016/04/19(火) 23:48:02.32ID:6Xufz3Pd
何がしたいかよくわからんな。
htmlのテーブルで表でも作る?
クリックはAタグ?
0441デフォルトの名無しさん2016/04/20(水) 00:20:19.71ID:hJ4omFpR
list.csvから内容を取得
HTMLのテーブルで読み込んだ内容を上から50件のTitleをリストのように表示
(残りは次のページで表示させる・ページ番号で移動できるようにする)
Titleは<a>で囲いリンクにする
リンクを選択するとDateの部分が画面に表示される

説明下手だな…
わからない部分をまとめるとこんな感じになる。
0442デフォルトの名無しさん2016/04/20(水) 00:39:10.82ID:1rGPQiSA
Dataの表示とページ番号で移動とが繋がりにくい
ページ移動せずにDataを表示しないといけない感じ?
0443デフォルトの名無しさん2016/04/20(水) 00:44:45.90ID:W+moKoI4
ページング php とかで適当に検索してこい
phpどころかHTTP/htmlすらわかってるか怪しいのに内容エスパーも追加とか役満レベル
0444デフォルトの名無しさん2016/04/20(水) 01:02:38.69ID:Hoj62ndF
1、Titleとその行数を返すPHPを作る
2、1を開始行数、取得行数を与えてその範囲の値を返す関数に改造する
これでデータ一覧およびページングができる
3、行番号を与えるとDateを返すPHPを作る
4、2を元に作られた一覧から、TitleのAタグをクリックしたら3にアクセスし値を取ってくるJavascriptを作る
0445デフォルトの名無しさん2016/04/20(水) 01:19:22.25ID:QFZZ7CGm
どうしたらいいかわからないなんてのは
たいてい身の丈にあってないことやろうとしてるだけで
基礎的なところから勉強していくしかないわけで
0446デフォルトの名無しさん2016/04/20(水) 01:27:31.57ID:hNTaWlcr
くだらない質問ですみません。

WordPressのフォーム云々の説明文があった場合、
WordPressでフォームというと、メールフォームのことを指すのでしょうか?

PHPでフォームというと、HTMLの<form></form>タグで、
そこから送信されたデータの処理することを指すと思うのですが、どうなのかなと。
0447デフォルトの名無しさん2016/04/20(水) 01:35:54.43ID:3QX7LeE6
$total = $total + 1
これを見た時「んんん?成り立ちません」って思ったおれは頭が硬いんだよね。ブログラマ向いてないよね
0448デフォルトの名無しさん2016/04/20(水) 01:39:34.86ID:3QX7LeE6
よくソフトウェア関係やIT関係の会社の入社試験で暗号化とか推理判断とか全然ついていけなかったもん。
aabbbccccdddeeこんなのみたらめまいがしてきてたよ
0449デフォルトの名無しさん2016/04/20(水) 01:55:50.19ID:hNTaWlcr
>>447

大丈夫、そのぐらいの誤読は誰でもやるし、どんな時にでも起こりうる。
本当のプロは、普通だったらやらないだろう、普通だったらわかるだろうということさえ、
注意して確認を行える人。
そうならないために、普段から変数名に「no」ではなく、「id」を使ったりする。
0450デフォルトの名無しさん2016/04/20(水) 02:40:12.55ID:jyo5QKfK
>>446
> HTMLの<form></form>タグで、
> そこから送信されたデータの処理する
メールフォームはそれに含まれるよ。
0451デフォルトの名無しさん2016/04/20(水) 03:25:37.50ID:hNTaWlcr
>>450
うん、だからWordPressを使う人は、
フォームと聞いたら、メールフォームだけを限定していうのか、
<form></form>タグで行う処理全般を指すのか、
その境目の認識がよくわからないです。

まあ、某掲示板でこんなやり取りがあって質問したところです。
A「WordPressのフォームに関して……」DBが必要云々の質問
B「メールフォーム如きにWordPressを使うのはオーバースペック」
僕(あれ、メール以外にも色々あるよね。てかWordPressって、PHPで動いているCMSだよね
  それだと、フォームから来たデータを基に、DB登録とかCSV作成とか、データ編集とか色々あるよね?)
0452デフォルトの名無しさん2016/04/20(水) 03:55:52.29ID:TcGBKumn
Wordpress特有に文化をここで質問するのってどうなん
0453デフォルトの名無しさん2016/04/20(水) 03:57:25.84ID:3t709hpA
まともな質問はねーのか

> ID:3QX7LeE6
人生相談じゃなくてPHPの質問しろ
IQは個人差あるから仕方ねーよ
雑談スレ池

> ID:hNTaWlcr
PHP=WPみたいに語るんじゃねーよ
俺には投稿フォームであるコメント欄のイメージが浮かぶし
WPスレ池
0454デフォルトの名無しさん2016/04/20(水) 04:03:47.18ID:2dGZ41Su
>>453
PHPだよ

$total = $total + 1
0455デフォルトの名無しさん2016/04/20(水) 04:05:29.57ID:3t709hpA
それの何が質問なの?
0456デフォルトの名無しさん2016/04/20(水) 06:40:41.54ID:w5hbs5qX
>>435
Paginator の話だろ。
CakePHP, RoR などのフレームワークを使う

>>447
>$total = $total + 1

文法なんて、単なる取り決めに過ぎない。下なら理解しやすいかい?
$total ← $total + 1
0457デフォルトの名無しさん2016/04/20(水) 06:52:36.18ID:hNTaWlcr
>>453

少なくとも、イコールではないけど、PHPで行う範囲の中に、
WordPressは含まれるよ。
WordPressで作成したコンテンツの改修は、PHPの理解が薄いと限界があるわけだし。
0458デフォルトの名無しさん2016/04/20(水) 06:56:48.91ID:hNTaWlcr
>>402
PHPはバッチ処理の実行やシェルスクリプトような使い方もできるので、
Apache上では、いろいろ動けますよ。
とはいえ、そういうところは、基本的に表にでないし、動作確認がログファイルだけになるので、
そういう使い方があるという知識と実例をみないと結びつきにくいです。
0459デフォルトの名無しさん2016/04/20(水) 07:02:35.08ID:3t709hpA
PHPで行う範囲の中にってまるでPHPerにとってWPは必修みたいな言い方だなwww
それともWPはPHPで書かれてるっていう当たり前のことをドヤ顔でいってみたのか?
とりあえず専スレでやれ
0460デフォルトの名無しさん2016/04/20(水) 12:53:23.84ID:jyo5QKfK
>>451
何でその人にメールフォームじゃないよという話をしなかったのかがどうにも解せないんだけど
フォームはフォームであって、メールフォームは含まれるだけだ。
0461デフォルトの名無しさん2016/04/20(水) 15:14:06.00ID:spVU+LpI
PDOで、プレースホルダが展開されて
実行される直前のクエリを確認したいんだけど
どうしたらSQL文を見ることができますか?
0462デフォルトの名無しさん2016/04/20(水) 15:18:23.34ID:oXU9Jk7I
>>461
使用しているデータベースは?
データベースによっては、展開されない場合もあるし(こっちが多数派?)
0463デフォルトの名無しさん2016/04/20(水) 15:51:29.35ID:g9fYYFr2
展開の有無はエミュレーションのON/OFFで切り替えられるけど
どっちにしてもそのまま展開後のSQL文は取れないとは思う
0464デフォルトの名無しさん2016/04/20(水) 15:53:23.66ID:pQik9E63
これからPHPの基本からもう一度はじめるんだけど書籍は何がオススメ?
何年も前にweb制作の民間の職業訓練に行ったことがあって
xhtml1.0/css/Javascript/PHPを一通り勉強した。
xampp入れてphpmyadminから簡単なデータベースをGUIで作ってそれをphpからどうやって接続するのか?
どうやってデータベースからデータを取得するのか?
など本当に基本的なことをした。
ライブラリとフレームワークの違いも理解できてなくて、
当時は確かPEARってのを使ってた記憶がある。
ほんとにプログラミングド素人
0465デフォルトの名無しさん2016/04/20(水) 15:56:31.25ID:pQik9E63
その時に買わされた書籍は
基礎PHP (改訂3版) WINGSプロジェクトって本
これ今でもいい本なのかな?
0466デフォルトの名無しさん2016/04/20(水) 16:05:12.08ID:TcGBKumn
>>464
公式マニュアル読んどけ
0467デフォルトの名無しさん2016/04/20(水) 16:15:15.39ID:w5hbs5qX
山田祥寛(よしひろ)、翔泳社
10日でおぼえる jQuery 入門教室 第2版
10日でおぼえる PHP 入門教室、第4版、2012

この2冊は、必須
0468デフォルトの名無しさん2016/04/20(水) 16:47:04.98ID:pQik9E63
今の開発環境
NetBeans IDE 8.1 (PHPバンドル)
notepad++
Xampp5.6.19 (PHP5.6.19)

本番環境(自宅サーバ/CentOS6.7)
Apache 2.2.15
MySQL 5.1.73
PHP 5.3.3※レンタルサーバも5.3
0469デフォルトの名無しさん2016/04/20(水) 16:48:15.76ID:pQik9E63
>>467
ありがとう!
0470デフォルトの名無しさん2016/04/20(水) 16:56:38.76ID:TcGBKumn
PHP5.3とかサポート終わっとるやんけ
0471デフォルトの名無しさん2016/04/20(水) 17:50:24.79ID:pQik9E63
>>470
レンタルサーバは5.6利用可能たった。
自宅サーバーCentOS6.7はyum updateしても5.3.3が最新ですってなる。
0472デフォルトの名無しさん2016/04/20(水) 18:12:22.87ID:W+moKoI4
tarとってきてコンパイルして使えよ
0473デフォルトの名無しさん2016/04/20(水) 18:28:17.08ID:XJ2suwVk
リポジトリ追加すりゃいいだろ
epelとかrpmforgeとか
0474デフォルトの名無しさん2016/04/20(水) 18:48:27.95ID:pQik9E63
epelを追加してphp56をインストール中です。
今までphpのバージョンとか全く気にきにしていませんでした。
5.3,3が最新って出るからそれでいいやって使ってました。
5.5以上じゃなきゃ使えないもの(使えない関数?)ってあるんですね。今までそういうのに遭遇した事がなかったので。
0475デフォルトの名無しさん2016/04/20(水) 19:13:53.26ID:spVU+LpI
>>462-463
マジすかDB依存でしたか

MyちゃんSQL使ってるけど、DB側でPDOでもクエリログ取れるかどうか
ちょっと実験してくるわ
0476デフォルトの名無しさん2016/04/20(水) 19:27:34.85ID:1zVoxsrg
セキュリティがよくわからんからFuelphpとやらを使ってみることにしたけど面倒だね
0477デフォルトの名無しさん2016/04/20(水) 22:19:53.77ID:vRaGgTgt
phpの初歩的な質問が2つあります。

外部phpファイルをincludeし、HTMLタグの出力を行いたいのですが、
直接アクセスされた時に表示を防ぐ、スマートな方法はありますか?
先頭でif( empty(変数) ){ exit; }というのは考えました。

また、テンプレートを使って作れるようなページを、
わざわざphpの1ファイルずつにHTML展開しているソースがあるのですが、
あまりに冗長なので、何か将来的な個別変更を想定している意図があるように見えたのですが、
PHPの界隈の人たちには当たり前の事なのでしょうか?
0478デフォルトの名無しさん2016/04/20(水) 22:20:23.71ID:vRaGgTgt
ageさせていただきます
0479デフォルトの名無しさん2016/04/20(水) 22:40:53.37ID:c8GcwH6R
>>477
includeしただけで表示するのではなくて、出力部分を関数化やクラス化して
関数(メソッド)実行をしなければ表示されないようにするのも一つの手法。

下の質問は、単に横着してコピペした結果だと思う。
当然、PHPでもバッドノウハウだよ。
0480デフォルトの名無しさん2016/04/20(水) 22:46:29.32ID:1rGPQiSA
>>477
include対象のphpファイルは、外部からアクセスできない所においても大丈夫だよ
0481デフォルトの名無しさん2016/04/20(水) 22:52:58.88ID:vRaGgTgt
>>479
回答ありがとうございます。
関数で括る事は考えたのですが、PHPを読めない人にもHTML編集しやすい方法が良いと思いまして、
PHPコードの少ない方法を求めてました。

もう一つの方は、明らかにコピペの手間の方がかかっているような内容で、
コード冗長化に伴う労力の増加が一見してわかるようなコードでしたので、
もしかしたら、コードの水増しをする意図があったのかも知れません。
0482デフォルトの名無しさん2016/04/20(水) 23:00:30.46ID:vRaGgTgt
>>480
それは知りませんでした。しかし現在の環境ではDocRootより上にファイルを置くのが無理ですね。
でも他の時にかなり有効に使えそうです。ありがとうございます。
ところで、PHPプロセスの権限ってhttpdとは別になっているんですか?
0483デフォルトの名無しさん2016/04/20(水) 23:02:13.50ID:59Aeov/b
httpdの一部として動かしてるなら、基本的にはhttpdじゃねぇの
0484デフォルトの名無しさん2016/04/20(水) 23:05:00.33ID:W+moKoI4
httpd使ってるならば、いっそmod_rewriteとかでメイン以外へのアクセスをメインに飛ばしてしまうとか
0485デフォルトの名無しさん2016/04/20(水) 23:06:18.70ID:qspjNJo7
>>477
a. 拡張子を変えて、サーバの設定で見られなくする
b. includeされるファイルをサブディレクトリに入れて、そのディレクトリを見られなくする

おれは a と b の合いの子みたいなやり方だな。
templates みたいなディレクトリ作って .htaccess 置いてアクセス禁止にして、そこにファイル名も form.tpl みたいにして置いてる。
0486デフォルトの名無しさん2016/04/20(水) 23:27:33.87ID:hJ4omFpR
昨日質問した>>435です。
皆さんから色々なアドバイスを頂きなんとか形になりました。
ありがとうございます。

また質問で申し訳無いのですが、
CSVでデータを取得したところにデータを書き込みたいのですがどうやればできるでしょうか?
行数は分かっているので、CSVのn行目のデータを書き換えると考えてください。
0487デフォルトの名無しさん2016/04/20(水) 23:37:29.80ID:vRaGgTgt
>>483
ということはwww系に読み込ませる権限で置いておけば良いんですね。
何がリモート呼び出し的な物を使っているのかと思いました。

>>484
ググりました。ありがとうございました。
前にnginxで似たような事やったことあります。確かにこれもいいですね。

>>485
ものすごいわがままを言いますが、起動にothers権限が必要なのと、
運用が自分一人でないので、できれば.htaccessをも使わない方法を取りたいのです。
それでphp側で被includeを検出してくれるような物がないのかなと質問した次第です。

しかし、普段いわゆるフルスタック的な物を使ってるので、
どちらの設定方法も勉強になりました。ありがとうござました。
0488デフォルトの名無しさん2016/04/20(水) 23:39:48.31ID:aNm9/fCb
>>486
お前に付いた会社の教育担当に聞きなよ
0489デフォルトの名無しさん2016/04/20(水) 23:51:49.83ID:qspjNJo7
>>487
起動に others権限とかいまいち事情がわからんけど、例えばなんかの入力フォームを作ったとして、htdocs 配下の formX ディレクトリにそれを設置するとする。
で、/formX/form.php で一連のロジックを実装するとして、その画面は /formX/templates/ に nyuryoku.tpl、kakunin.tpl、kanryo.tpl として置くことにする。
で、この画面テンプレートを見えないようにするため、/formX/templates/.htaccess を置いてこんな内容にする。
order deny,allow
deny from all

というだけの話なんだけど、起動の話も複数人でやる話も何も関係ないように思うんだがどうだろう?
0490デフォルトの名無しさん2016/04/20(水) 23:53:29.77ID:hJ4omFpR
>>488
私の会社でPHPがデキる人は誰もいません。
私はJavaとか専門です。
ブログやってると言ったらHTMLができるならPHPもできるだろ?
という感じで私がやってるだけなのです。
0491デフォルトの名無しさん2016/04/21(木) 00:00:13.56ID:DGudhj+q
>>490
Javaでやれるなら、同じようなことを PHP でやればいいだけじゃない?
そうするに当たって何が分からないの?
0492デフォルトの名無しさん2016/04/21(木) 00:06:53.83ID:8VEbZp8D
>>489
私も正直よくわかりませんが、httpdプロセスそのものがothers扱いなのだと思います。

それと内容は理解しているつもりなのですが、
連携が疎なのと、権限の問題でこちらが自由に変更できないので、
.htaccessへの依存はできるだけ避けたいのです。
0493デフォルトの名無しさん2016/04/21(木) 00:09:41.62ID:8VEbZp8D
>>492
語弊がありますが、プロセスがothers扱いというのは、
もちろんOS上でという意味ではなく、抽象概念としての意味です。
0494デフォルトの名無しさん2016/04/21(木) 00:12:05.54ID:DGudhj+q
>>492
画面(>>489 で言うところの nyuryoku.tpl とか)は好きにいじるんでしょ?
.htaccess も同じ権限で好きにいじれると思うんだけど、なんか特別な制限でもあるの?ただのファイルだよ?
まあどうしても .htaccess は使いたくないというなら、画面を納めてるディレクトリ名を templates なんて安易な名前じゃなく、知ってないとわからないような名前にしちゃえばいいんじゃない?

つか、.htaccess 使わずに mod_rewrite 使うの?
そっちのがハードル高くね?
0495デフォルトの名無しさん2016/04/21(木) 00:22:07.96ID:DGudhj+q
あーもしかして、.htaccess って htdocs直下に置いてサイト全部の設定を書いて置いておくようなものだと思ってる?
別にそんな決まりはなくて、必要なディレクトリに必要な設定だけを書くこともできるよ。
>>489 で言ってるのも、画面開発チームの持ち物である templatesディレクトリに自分の持ち物として .htaccess を作り、自分の持ち物である templatesディレクトリについてだけのアクセスコントロールを書くんだよ。
0496デフォルトの名無しさん2016/04/21(木) 00:24:42.12ID:DGudhj+q
すまん紛らわしくなった
自分=画面開発チーム ね。
なんにしても .htaccess は必ずしも共有資産じゃないってことだ。
0497デフォルトの名無しさん2016/04/21(木) 00:37:05.85ID:0BsNpmsh
.htaccessは、フレームワークよっては標準的に付随するものもあります。
だから、必要に応じて、どこにでもおくことは可能です。
0498デフォルトの名無しさん2016/04/21(木) 00:45:44.53ID:8VEbZp8D
>>494-496
えーとですね、.htaccessは理解してないのではないですが、使えません。
そもそも画面開発者も別にいて、チームではなく、密な連携は取れません。

ロジック部分を変更できるのが恐らく自分だけなので、phpの方が安心なんです。
そもそも自分は運用保守担当じゃないので、誤って導入されなかったり、
削除したときでも普通に動いてしまう恐れがある時点で使えません。
0499デフォルトの名無しさん2016/04/21(木) 00:55:18.34ID:8VEbZp8D
それと誤解があるようですが、mod_rewriteも使えません。
サーバー設定を変更できない理由も知りません。
0500デフォルトの名無しさん2016/04/21(木) 00:56:55.82ID:tJ+xMH9p
>>498
それで mod_rewrite はおkなの??
意味ワカンネーw
.htaccess を置き忘れる心配はするけど、画面開発者にとって意味の無い if のオマジナイを忘れる心配は無いの??
マジ意味ワカンネーw
.htaccess なんてお前がロジックと一緒に置いてやればいいだろw
0501デフォルトの名無しさん2016/04/21(木) 01:00:50.80ID:OuYl89GW
まあhttpd.conf側だと他者が何のファイルかわからずに消去ってこたないな
一部で使わせると調子に乗ってあれこれやりたがったり俺も俺もも出てきやすいと危惧してるのかもしれん

ところで>>477後段はどんな感じなんだろう
includes/header.php includes/footer.php includes/menu.php とかでそれぞれ中身はベタhtmlとかだろうか
だとするとそれなりに利点はありそうだけど
0502デフォルトの名無しさん2016/04/21(木) 01:06:33.64ID:8VEbZp8D
>>500
もちろん同時に置くのはいいんですけど、それで足りません。
0503デフォルトの名無しさん2016/04/21(木) 01:08:53.97ID:DGudhj+q
>>499
あ、.htaccess を使いたくないというより、使えない環境を意識してるわけね。
だったら作業者だの権限だの言わずにそう言えばいいのに。
だったら推測されづらいディレクトリ式で充分じゃないかな。
画面側のスキルなんかを考慮してコードを分離してるにに、画面側にセキュリティーがらみのおまじないを要求するというのはナセンスだと思うよ。
サーバ設定で回避するのが一番確実だけど、事情を鑑みるにそれもやりづらいんだろうし。
0504デフォルトの名無しさん2016/04/21(木) 01:10:45.71ID:t1TQTu7E
DocumentRootの外にも置けない.htaccess程度のものも使えないっつうならおたくの環境で出来るように好きなようにやれば?って話なんだがな
そんなまともじゃない環境でやるならまともじゃない方法採るしかないんだし
0505デフォルトの名無しさん2016/04/21(木) 01:15:03.61ID:OuYl89GW
要は誰が判断するかの問題だなあ
httpdに判断させるか、.phpなり.htmlなり自身に判断させるか、クライアントに判断してもらうか
原理的にhttpd判断以外はどうしても <?php if(empty($var)) exit; ?>的な記述の追加は避けられない

jsにやってもらってもコード書き忘れたらNG&クライアント側の処理を外せるわけじゃない
httpdだと組織的なあるいは立場的な制約がありうる
画像とか.datとかに拡張子を変えておく手もあるけど確か今でもIEにはhtmlとして表示される

自身判断だと例えばheader();で転送させたりmeta http-equiv="refresh"で飛ばすなどしつつ、
本来の読み込み時にincludeではなくfile_get_contentsする手もある 読み込みは煩雑になるけど混入コードは減る
0506デフォルトの名無しさん2016/04/21(木) 01:15:36.58ID:DGudhj+q
>>501
よくやるよ
header やら footer なんてバンバン include するし、その画面表現の為だけの関数定義なんかもしちゃったりする。
例えば数値はカンマ区切りでマイナスの値は ▲ で表示する、みたいな特定数画面でしか使わないけど多用するルールとか。
0507デフォルトの名無しさん2016/04/21(木) 01:19:31.32ID:OuYl89GW
あ、includeするファイル自体をドットファイルにしてしまうって手もあるか(.htaccess同様の .filename 形式)
特に変えてなければhttpd.conf標準状態で通信対象外になるから
「設定変更」じゃないってことで場合によっては有効
0508デフォルトの名無しさん2016/04/21(木) 01:23:49.82ID:DGudhj+q
>>507
そのファイル名を端的に扱えない作業環境(windows とか)もあるから、画面みたいに量産するやつだと面倒この上ないかも。
.htaccess はがんばってひとつ作って、あとはコピーして使い回すw
編集だけはそのファイル名のままできるからな。
0509デフォルトの名無しさん2016/04/21(木) 01:30:03.07ID:VGCuKfTM
もうPHPの話じゃなくてWebサーバの話やな

>>507
デフォルトのフィルタは .ht* だから注意な
0510デフォルトの名無しさん2016/04/21(木) 01:36:31.11ID:8VEbZp8D
>>501
部品化している中身がコピペなのではなく、ページ単位のコピペをしていて、
中身も冗長ではあるものの、初心者とは思えない物でした。
それで水増しなのかなと。

>>503
>だったら推測されづらいディレクトリ式で充分じゃないかな。
テンプレート程度なら確かに問題でませんけど、さすがに現代でこれはちょっと…。

>>504
それはものすごくわかります。
ただ実際なってみると、結局相手の無理解ゆえに、
自分にもかかるリスクがあるのでそうできないんですよね…。
0511デフォルトの名無しさん2016/04/21(木) 01:41:44.87ID:8VEbZp8D
>>507
それいいですね。
それなら相手のファイル操作ミスでも問題出ませんし。
当初の方法とはかなり違いますが、確かに使えそうです。
これは今度試してみます。ありがとうございます。
0512デフォルトの名無しさん2016/04/21(木) 01:42:00.82ID:DGudhj+q
>>510
え、画面をロジックと分離する前提で、画面のコードへの直接アクセスで中身が見えちゃうことの対処をしたいって話じゃなかったの?
テンプレート(≒画面のコード)以外に何を置こうというの?
0513デフォルトの名無しさん2016/04/21(木) 01:43:29.19ID:VGCuKfTM
>>510
「環境はまともじゃないけど自分にリスクのない方法を使いたい」なんてアホなこと言ってないでまず環境の改善を要求しろ
プログラムの問題じゃなくてコミュニケーションの問題だなんてよく言われるだろうに
0514デフォルトの名無しさん2016/04/21(木) 01:46:07.62ID:8VEbZp8D
>>509
ファイル名の制約あったんですね。
そもそもよく考えたら別の人間がdotfilesを適切に扱えないのだから駄目でした…。
0515デフォルトの名無しさん2016/04/21(木) 01:57:33.76ID:8VEbZp8D
>>513
要求とかそういう段階の話じゃないです。
そもそもコミュニケーション語るなら、
相手に合わせて柔軟な対応するほうが賢明だと思いますよ。
0516デフォルトの名無しさん2016/04/21(木) 02:01:10.38ID:DGudhj+q
>>515
じゃあこんなところで聞いてないで相手に聞けよ
それがコミュニケーションだ
0517デフォルトの名無しさん2016/04/21(木) 02:10:22.55ID:VGCuKfTM
>>515
相手が理解して要求してりゃな
それなら開発側も要求内で好きにすりゃいいが理解してないなら後から何言われるか分からんのだから, それでも唯々諾々と従うのが賢明だなんて思うのか?
最低限おたくの要求普通じゃないんで普通のものにはなりませんよと伝えるのが開発者としてはまともなんじゃないかね?

それでも唯々諾々と従うのを是とするならあなたがあなたの思いつく範囲で, 頂戴している要求に合わせて上手にやればいいんじゃない?
0518デフォルトの名無しさん2016/04/21(木) 02:11:34.16ID:8VEbZp8D
>>516
何を聞くんです?
0519デフォルトの名無しさん2016/04/21(木) 02:15:09.63ID:8VEbZp8D
>>517
>最低限おたくの要求普通じゃないんで普通のものにはなりませんよと伝えるのが開発者としてはまともなんじゃないかね?
だからそういう段階はとうに過ぎてるんですって…。
そもそも相手は可能な限り説明してくれてて、対応に不満があるわけじゃないし、
こっちもさらに要求するつもりもありません。
0520デフォルトの名無しさん2016/04/21(木) 02:16:38.08ID:DGudhj+q
>>518
何をどこまで許容するのか、責任分担はどうするかに決まってんだろアホか
0521デフォルトの名無しさん2016/04/21(木) 02:21:39.28ID:VGCuKfTM
>>519
そんなら相手はまともじゃないことを十分理解してるってことだろ
実装はスマート云々を考える状況にない, どんな手法もスマートにはなりえない
ここで出た方法がイヤだとか出来ないだとかいうならご自身でやりたいように考えていただくのがよろしいのでは?
0522デフォルトの名無しさん2016/04/21(木) 02:28:36.64ID:8VEbZp8D
>>520
だから相手のせいだけにできないって言ってんだけど、
あほあほ言いながらコミュニケーション云々語る前に人の話聞きなよ。
0523デフォルトの名無しさん2016/04/21(木) 02:38:20.03ID:DGudhj+q
>>522
アホなどとは一度しか言ってないがな、繰り返し言っておいてやった方がよかったな。
例えば必要なサーバ設定は誰がするんですか?
そこに誤りがあったことによって事故が起きた場合だれが責任を取るんですか?
お前にリスクが振りかかる可能性があるとするならば、本当におまえがやるべき範疇だったか、責任分担を明確にしてなくていいように言われた時だけでしょう?
他の要素についても同様、相手のせいだけにできないとか曖昧なこと言ってる時点で相手とコミュニケーションが取れてないんだよ。
ただ線引きもできてないことを柔軟なて言葉で誤魔化すんじゃない。
0524デフォルトの名無しさん2016/04/21(木) 02:40:03.87ID:8VEbZp8D
>>521
ごめんなさい、ちょっと頭が悪くて理解ができません。
参考になったレスは十分ありましたし、
スマートな物が無いと断言できる理由もわかりません。
最終的に自分で考える、と言うのは当たり前の話です。
0525デフォルトの名無しさん2016/04/21(木) 02:45:52.42ID:VGCuKfTM
>>524
うん, 口が悪くて済まなかったね, まぁ好きにやればいいと思うよ
0526デフォルトの名無しさん2016/04/21(木) 02:55:09.52ID:8VEbZp8D
>>523
何言ってるのかよく分からんけど、コードに責任がある以上、
セキュアにしておかない時点で駄目。
言質取ろうと実際に訴えられればどう転ぶのかなんて分からん。
で、その上で相手の良心に任せるだけの事を聞いてどうするわけ?
0527デフォルトの名無しさん2016/04/21(木) 03:16:42.64ID:DGudhj+q
>>526
お前はコードに責任を持つんだろう?
そのコードは何らかの前提条件に適合するように書くんだよな?
逆に言えば、動作環境が前提条件と違っていたりコードの問題じゃなかったりした場合にはお前が責任を問われることは無いよな?
.htaccess は使えるようになっていると言われていたのに使えないとか、こういうファイル名パターンは見えないようにすると言われていたのに見えちゃったとか、お前が責任問われるべき話じゃないわな?
にも関わらずお前の責任が問われるって、例えば前提条件に合う環境を誰が用意するかとか、そういうところが曖昧になってたってことだよな?
言質とか仰々しいことでもなく相手の良心なんてもんでもなく、そういう線引きは当たり前のこととしてはっきりさせるよね、特に仕事でやってるなら。
おれも3点ほどアイディアを出したし他の人からもアイディアが出てる、おまえ自身も1つ出してるけど、どれも前提条件があって成り立つものだよな?
自分にリスクが降りかかるかもなんてうだうだ言うなら、こんなところに何かを聞く前に相手とそこらへんハッキリさせるのが先だろ?
そうしようともせず相手に合わせて柔軟?
あのな、そういうのはルーズって言うんだぞ。
そこをよーく考えた方がいい、そういういい加減なことをされると相手も不幸だし、おまえ自身もひどい目に遭うぞ。
0528デフォルトの名無しさん2016/04/21(木) 03:47:16.08ID:8VEbZp8D
>>527
何が言いたいんだ?理想論を語りたいの?
べき論で語ろうが、何か起きたときには自分も対応せざるを得ないし、
それでやらなきゃ仕事無くなるだけ。で、何を聞くの?
0529デフォルトの名無しさん2016/04/21(木) 03:51:54.25ID:DGudhj+q
>>528
はいはい、サーバのハードウェア故障の責任も取ってればいいと思うよ。
もうお前に言うことなど何も無い。

まあここで質問して何人かの頭は使わせたんだ、どういう方式を採ったかくらいは後で報告してくれよ。
0530デフォルトの名無しさん2016/04/21(木) 03:55:31.13ID:8VEbZp8D
>>529
はいはいって、全く話が見えないんだけど、一体何の話してるの?
直接委託の話でもしたかったの?
0531デフォルトの名無しさん2016/04/21(木) 10:47:09.02
はいはい下流國民乙
0532デフォルトの名無しさん2016/04/21(木) 11:05:54.88ID:c8GjQG2Z
うまくいってなくてイライラしてんだろ
0533デフォルトの名無しさん2016/04/21(木) 14:02:48.69ID:S+2T/sm2
めっちゃ伸びすぎて読む気失せるが
下の3レス見てケンカしてんがよくわかったわ
0534デフォルトの名無しさん2016/04/21(木) 14:34:53.07ID:S3Ke5d3Q
>>477
> 直接アクセスされた時に表示を防ぐ、スマートな方法はありますか?
リクエストのメソッドを調べて、GETだったらexit

> あまりに冗長なので、何か将来的な個別変更を想定している意図があるように見えたのですが、
・テンプレートのことなんか知らない
・テンプレートを適用する実行時間がパフォーマンス上問題になる
とか
0535デフォルトの名無しさん2016/04/21(木) 18:44:36.65ID:slmqLM1N
include対象のファイル名を .ht* にするというトンチ以外に頭を使ったようなレスは無いかなぁ。

>>477
バックトレース拾えば直接呼ばれたのかどうかは判断できるわけだし、
その場合は 403 でも返しておけばいいんじゃない?
公開ディレクトリ以外にファイルを置けないという環境は辛そうだけど、そういうことならしょうがない。
0536デフォルトの名無しさん2016/04/21(木) 18:53:03.60ID:z/J61xkG
なんでバックトレース?デバッグ作業でもしてんのか?
直接呼ばれたかどうか知りたいなら$_SERVER見ればいいじゃん
0537デフォルトの名無しさん2016/04/21(木) 21:03:26.50ID:HeS5HApN
しかしimagecopyresampled()は、何度見ても基地外みたいなパラメター渡しだな。
0538デフォルトの名無しさん2016/04/21(木) 21:43:30.76ID:NgnSmYD5
>>535,536
そんな面倒なことするなら >>477 で充分だし、
それですら画面側の作業者に書かせるのはナンセンス。
なんだか他人のミスも自分がかぶる想定みたいだし。
0539デフォルトの名無しさん2016/04/22(金) 01:05:29.47ID:HzL1UgzJ
自宅サーバのCetOSテスト環境構築やっと終わり

Apache2.2
MySQL5.6.30 (MySQL Community Server)
PHP 5.6.20
phpMyadmin 4.4.15

環境は整ったんだけど、HTML5やった事ないんだよね。PHPはすこーしだけある。
で、やりたい事(作りたいもの)がなくて何作ろうかなって思ってる。
PHPのまえにweb制作やwebデザインの基本としてHTML5からやるべきかな?
PHPうんぬんもだけど個人会社のwebサイトが作りたいんだよね。

(1) ローカルpcのxamppとnotepad++で開発
(2) ローカルpcで動作確認
(3) LAN内のテストサーバにアップし再度動作確認
(4) 本番環境のレンタルサーバにアップ

なぜ(3)を構築したかというと、外部非公開のLAN内専用のサイトを作ったり、テストサーバとして動作確認をやるために構築した。
普通は(3)を飛ばして、(4)なのかな?
0540デフォルトの名無しさん2016/04/22(金) 01:37:22.50ID:vh1qxiTR
1,2を3でやればよくね
0541デフォルトの名無しさん2016/04/22(金) 02:32:29.42ID:HzL1UgzJ
>>540
(3)のテストサーバ上で直接開発やればよくね?ってこと?
それってクライアントからターミナル(SSH)で接続してviでソース書くってこと?
そんなことやってる人いるのかな?
0542デフォルトの名無しさん2016/04/22(金) 02:49:00.23ID:1YoQR0YC
NetBeansとかでFTP設定するとか、VMwareで鯖建ててフォルダ共有するとか
0543デフォルトの名無しさん2016/04/22(金) 02:49:01.09ID:4mUicHSB
たまにやってるが何か問題でも
0544デフォルトの名無しさん2016/04/22(金) 03:13:51.66ID:HzL1UgzJ
>>542
NetBeans IDE 8.1でテストサーバにFTPしようと思ったんだけどFTPSに対応してないよね?
FTP鯖をFTPS(Explicit)のみ接続許可にしてるから。

VMwareやVirtualBox使ってローカルPCに鯖立てるなら、xammpの方が簡単だしやってることは同じだよね。
0545デフォルトの名無しさん2016/04/22(金) 03:14:12.38ID:GI428x51
>>541
やってるよ。というかそれでしかやってない。
0546デフォルトの名無しさん2016/04/22(金) 03:20:29.27ID:GI428x51
編集方法はどうであれ、ローカル、テスト、本番と環境を3つに分けるならVCS導入しといたほうが先々の苦労が減るよ。
知識があるのか無いのかよくわからないので、学習コストを割くキャパがもう無いなら後でもいいけど。
0547デフォルトの名無しさん2016/04/22(金) 03:44:32.29ID:HzL1UgzJ
>>546
なるほど、ターミナル使ってサーバ上で直接開発やったりもするんだね。何となくソース書きにくそうだけど。

自分はプログラマーでもなんでもなくて趣味でネットワーク構築とSoftether VPN構築なんかをやってるなんちゃって知識レベルなんだ。
なんでソフトにはほんと疎い。
だからプログラムや現場の開発環境やノウハウなんかはよく分からないんだ。
VCSってのは初めて聞いた。ググってみるよ

NetBeansでFTPSできた。ごめん
0548デフォルトの名無しさん2016/04/22(金) 05:47:58.18ID:qHzjITsw
環境構築やPHPとは関係ない質問が初心者スレだとどうしても多いし
初級脱した人向けのPHP質問スレ作りたい
0549デフォルトの名無しさん2016/04/22(金) 05:56:14.94ID:kW8L0cx9
くだらない質問と明記してるからそうなるのは仕方ないし、レベルでスレ分けするのも悪い判断ではないと思うけど、
まずそういうレベルの質問をしてみたらどうかな?
0550デフォルトの名無しさん2016/04/22(金) 06:07:40.31ID:qHzjITsw
よし分けよう
0551デフォルトの名無しさん2016/04/22(金) 06:15:27.88ID:kW8L0cx9
>>550
初心者に邪魔され充分に話を進められなかった話題を示すのが先。
phpなんてその性質上レベルによらず環境の話題は付き物だろう。
0552デフォルトの名無しさん2016/04/22(金) 06:20:01.70ID:qHzjITsw
別に邪魔だとかそういうことを言ってるわけじゃなくて
もっと上の話したい人もいるでしょうっていうこと
0553デフォルトの名無しさん2016/04/22(金) 06:31:44.27ID:kW8L0cx9
ここでもそういう話をできるんだから、まずそういう話を振ってみなさいな。
ボリュームが充分あるならスレを分ければいいだろう?
自分から話題も無いくせにスレを立てようとしてるわけではないんだろ?
0554デフォルトの名無しさん2016/04/22(金) 06:32:24.51ID:qHzjITsw
なんでそんなかたくなに拒否するんだw
0555デフォルトの名無しさん2016/04/22(金) 06:34:51.37ID:qHzjITsw
じゃこの板では立てないでWebProg板行くよ
それでいいだろう
0556デフォルトの名無しさん2016/04/22(金) 06:42:36.50ID:o7fkiimI
初級より上の話とはたとえばどのようなものか
初級より上の話をするにあたって現状でどんな不都合があるのか

理屈でいくならこの辺だな
0557デフォルトの名無しさん2016/04/22(金) 06:44:26.53
>>547
ローカルで開発してokならgit push/pullするんやで
やべえバグ仕込んだと思ったら、git revertするんや
0558デフォルトの名無しさん2016/04/22(金) 06:45:36.75ID:o7fkiimI
vscはcvs:バージョン管理システムの打ち間違いだと思う
0559デフォルトの名無しさん2016/04/22(金) 07:12:47.16ID:eGGBknni
>>554
お前の方こそどうしてこのスレに書くことを頑なに拒否するんだ
本当にこのスレと一千を画すはなしがあるのか?
0560デフォルトの名無しさん2016/04/22(金) 07:16:06.16ID:qHzjITsw
PHPの質問ですらない質問のふるい効果はあるよ
ここは回答者の自己満足にはいいかもしれないけど
学ぶ場所としてはいまいちだからね
0561デフォルトの名無しさん2016/04/22(金) 07:21:47.51ID:kW8L0cx9
いやだから、ゴタクはいいからお前の言うもっと上の話をしてみろってばよ…
なぜそんなにスレ立てばかりしたがるんだ
0562デフォルトの名無しさん2016/04/22(金) 07:32:45.26ID:qHzjITsw
なんで質問もないのにそんな話をしなきゃならないのか
あんたにネタを提供してやるほど暇じゃない
0563デフォルトの名無しさん2016/04/22(金) 07:42:18.84ID:eGGBknni
質問も話題も無くスレ立てw
0564デフォルトの名無しさん2016/04/22(金) 08:22:47.31ID:zqMIUqUF
なんで質問でも何でもないこと書き散らしてる側が文句言ってるのか
0565デフォルトの名無しさん2016/04/22(金) 08:36:11.29ID:D266k8l5
>>539
Apacheは素直に2.4にしとくべきよ

最近だと開発用サーバ上にはGitLab立てといてソース管理して, テスト/ビルドはDockerコンテナ内でやってるわ
テスト通過後の動作試験も試験用のコンテナでやってる
多人数だから独立な開発用サーバ立ててるけど個人でやるなら開発用サーバごと仮想化して実働環境以外は単独で完結させてもいいかもね

>>558
CVS(Concurrent Versions System)は固有名詞でVCS(Version Control System)は一般名詞だろう
0566デフォルトの名無しさん2016/04/22(金) 12:15:59.88ID:kW8L0cx9
>>564
文句じゃなくて >>548 の発案に対して意見を付けてるんだが、このスレは質問専用で返答も議論も禁止か?
むやみにスレを分散させると過疎化して誰の得にもならないから、今話題があるわけでもないなら様子を見ろと言ってるんだが。
どこの板にもいるだろ、むやみにスレを立てたがり、立てただけで満足して寂れさせてる迷惑なやつ。
しかも WebProg に相応しいのはむしろこっちのスレだろうしな。
つーか書くことも無いくせにスレ立てしたがってるやつを見て >>564 みたいな書き込みをする理由がわからんわ。

まあもう立てちゃったみたいだけどね。
やった以上過疎化しないよう責任持って盛り立ててくれよな。
0567デフォルトの名無しさん2016/04/22(金) 12:21:39.11ID:zqMIUqUF
>>566
自分が該当するという自覚はあったわけだ。
0568デフォルトの名無しさん2016/04/22(金) 12:49:38.22ID:kW8L0cx9
>>567
他に違う主張をしてる誰かいるのか?
0569デフォルトの名無しさん2016/04/22(金) 12:51:32.04ID:zqMIUqUF
質問でも何でもないこと書き散らして、文句言ってると自覚しているのですよね。
0570デフォルトの名無しさん2016/04/22(金) 12:55:24.35ID:kW8L0cx9
>>569
お前が >>548 に事実上反対している書き込みを指して言ってるんだろうと思ってるよ。
たった数人と何件かの書き込みしか無い中で誰を指してるんだろうと普通の頭で考えればそう推定できるわな。
で、それがなんだ?
0571デフォルトの名無しさん2016/04/22(金) 13:14:28.00ID:Wbb4rxFq
議論してる中で非常に恐縮なのですが、
みなさんフレームワーク(cakePHPとか)って使われてますか?
私はフレームワークを未だにイマイチ使い方が分からず、
コードを書くときは自前の汎用関数を使いまわしたりしてます。
(1)何のフレームワークから始めるべきか
(2)どういう時にフレームワークは役立つのか
その他、押さえておくべきポイントがありましたら、ご教示ください。
0572デフォルトの名無しさん2016/04/22(金) 13:26:29.98ID:zqMIUqUF
>>571
回りの人間がどう言ったかより、自分がやったほうが数倍理解できるし、
各々の都合に対しての優劣も分かるというもの。
やってみて、役に立たないな 使わないって思うかもしれないし、
そのときに、俺がいいよと進めてたからって使う?
0573デフォルトの名無しさん2016/04/22(金) 13:33:34.79ID:m2fejYZc
>>572
何も知らない自分がちょっと使ってみた範囲で理解できることと、先人の知恵を聞くことの
どっちが有用だと思う?
0574デフォルトの名無しさん2016/04/22(金) 13:39:52.59ID:zqMIUqUF
>>537
自分に分からないことがあるから従おうって人と、
自分に使えなきゃ意味がないなって思う人が世の中にいるとしたらどう?
0575デフォルトの名無しさん2016/04/22(金) 13:40:27.79ID:zqMIUqUF
・・・番号ミスった 申し訳ない
0576デフォルトの名無しさん2016/04/22(金) 13:49:00.49ID:m2fejYZc
>>574
意味わからんし。
言葉遊びしたいなら誰か他の人にしてくれ。

ちなみに俺は>>571には答える気はない。
>>571は「PHP フレームワーク」(期間:1年以内)でググって、上位2,30ページを読め。
1,2時間もあれば読めるだろ。
0577デフォルトの名無しさん2016/04/22(金) 13:58:31.03ID:Wbb4rxFq
ご回答・ご教示くださり、ありがとうございました。
皆さまがくださりました、アドバイスに従ってみたいと思います。
0578デフォルトの名無しさん2016/04/22(金) 13:58:31.58ID:zqMIUqUF
>>576
な、分からないこと言われたって従うわけがないだろ?
0579デフォルトの名無しさん2016/04/22(金) 14:04:44.97ID:m2fejYZc
自分にわからないことがあることと、人がわからないことを言うということの違いもわからんとは。
0580デフォルトの名無しさん2016/04/22(金) 14:08:20.32ID:zqMIUqUF
それが人によるっていってるのよ。 アンタは、先人の知恵が有用だって言ったんだろ?
0581デフォルトの名無しさん2016/04/22(金) 14:19:11.42ID:m2fejYZc
>>580
1, 2時間で収集できるレベルの先人の知恵よりも、1, 2時間自分であれこれ試す方がいいてことか。
まあ、お前がそうしたいならすれば。
0582デフォルトの名無しさん2016/04/22(金) 14:21:42.40ID:zqMIUqUF
だから、俺がそう思うかは 質問者がどう思うかと違うって話だろうが・・・
俺の回答だって、先人の知恵。  お前はさっきから何と戦ってるんだ。
0583デフォルトの名無しさん2016/04/22(金) 15:11:26.96ID:yHcO4kd5
ららたん使ってるんだけど 他のプロジェクトのコンフィグの値読み込むのって辞めたほうが良いのかな?
それぞれのページを総合的に管理するようなの作りたいんだけど・・・
0584デフォルトの名無しさん2016/04/22(金) 15:24:59.98ID:dFG2RycI
抽象的な質問で悪いんだけど
for文使ってarrayの中身表示して確認してから
手動で順番を入れ替えたい(内容がすぐ反映されると良い)
どんな感じでプログラムを組んでいけばいいと思う?
0585デフォルトの名無しさん2016/04/22(金) 15:44:52.56ID:GI428x51
>>571
(2) 少なくとも複数人で開発するときにはフレームワーク自体が共通言語として働くので楽。
0586デフォルトの名無しさん2016/04/22(金) 15:57:29.21ID:GI428x51
>>583
ララベルのことかな。
用途も明確だし、一方通行の依存関係である限り、別に問題も起こらないかと。

>>584
https://jqueryui.com/sortable/
updateイベントで通信、保存。
0587デフォルトの名無しさん2016/04/22(金) 16:34:31.57ID:dFG2RycI
>>586
これはすごい
調べてやってみます。
0588デフォルトの名無しさん2016/04/22(金) 17:58:18.38ID:q0EEHlyB
荒らすのやめて><;;;
0589デフォルトの名無しさん2016/04/22(金) 17:58:41.81ID:q0EEHlyB
あれIDが変わってるw
0590デフォルトの名無しさん2016/04/22(金) 20:25:58.73ID:yHcO4kd5
>>586
それです。らら先なんて呼んでいいか分からなくてOTL
問題なさそうと聞いて安心しました。ありがとうございます!
0591デフォルトの名無しさん2016/04/22(金) 21:12:55.83ID:Ao/xcglq
らららむじんくーん らららむじんくーん ららら
0592デフォルトの名無しさん2016/04/22(金) 21:38:54.62ID:BXwkjbli
PHPを基礎から体系的に学べるおすすめサイトある?
PHPの文法基礎→目標とするダミーサイト完成例まで
0593デフォルトの名無しさん2016/04/22(金) 21:55:15.22ID:wDJ3AUBc
少し前に、おいらはパーフェクトPHPをおすすめされた
0594デフォルトの名無しさん2016/04/22(金) 22:22:12.83ID:tVIyRjEN
>>592
サイトならドットインストールがおすすめ
0595デフォルトの名無しさん2016/04/22(金) 22:49:55.24ID:BXwkjbli
>>593
アマゾンのレビュー見てみたらパーフェクトPHPは初学者には難しいと書いていた。
すでにある程度何かしらプログラミング経験がある人が肉づけする感じなんじゃないかな。

>>594
ドットインストールはお世話になってるよ。Atomのプラグインでもドットインストールを閲覧するプラグインがあるね。
でもドットインストールは教えている人がプログラマーなのか知らないけど早口だし、コーディングの雛形ばかり教えて具体的なサイトを作っていこう的なのはないから微妙なんだよね。
0596デフォルトの名無しさん2016/04/22(金) 23:08:14.37ID:tVIyRjEN
>>595
パーフェクトPHPが初学者には難しいのはその通り。
そもそも「目標とするダミーサイト」や「具体的なサイト」が、
何を指すのか、自分が何を作りたいのかにも依る。
0597デフォルトの名無しさん2016/04/23(土) 00:54:51.80ID:+bvzWzGN
>>596
>「目標とするダミーサイト」や「具体的なサイト」が、
何を指すのか、自分が何を作りたいのかにも依る。

確かにその通りだよね。初学者にとって一番難しいのが何を作りたいからなんの教材を買うかだよね。
一通りデータベースを使ったブログのようのようなサイトを作りたいって思ってるけど具体的なものが浮かんでこない。
wordpressを使ってやるのか、使わないのかがまた選択が難しい。
0598デフォルトの名無しさん2016/04/23(土) 01:06:35.68ID:bBSWXEGa
ブログを作るだけだったらそんな難しい話でもないような

つーか君らが必要なものはphpの知識技術じゃなくて設計の仕方だろう
phpハウツー本なんて読んでもそりゃダメなのが当たり前
0599デフォルトの名無しさん2016/04/23(土) 02:29:54.25ID:OtrZRag7
ちょっと今から訳の分からない質問するけど、これは冗談でもなんでもないから出来たら真面目に答えて欲しい
HTMLファイルをXMLに変換したXMLオブジェクトの多重配列があるんだ
このオブジェクトは元々オブジェクトだったけどJSONエンコードとデコードで変換して全ての要素を連想配列に直してあるんだ
こいつにxpathってのを適用すると配列の好きな要素を取ってくる事ができるんだ
次にXMLオブジェクトにprint_rを適用すると、最初のHTMLファイルには含まれていたのに変換の過程で欠け落ちてしまった要素ってのが確認できるんだ
そんで次にこのXMLオブジェクトにxpathを適用して、欠け落ちた要素を探してこいってやると、何故かどこにも存在しない筈のデータを取り出せるんだ
存在しない筈のデータが取り出せるって訳が分からないと思うけど俺が一番意味が分からない
PHPの連想配列はカプセル化が出来るのか名前が付けられてないがデータの含まれたメモリ位置が存在するのか
この症状に何か心当たりがある人がいたら、なんでもいいからヒント下さいマジでお願いします
0600デフォルトの名無しさん2016/04/23(土) 02:34:40.06ID:OtrZRag7
変数を使う為にロックされた一定範囲のメモリ内容をダンプって出来ないのかな
ホントに存在しないのか名前が付けられてない/データが隠蔽されててアクセス出来ないだけなのか確認したい・・・
0601デフォルトの名無しさん2016/04/23(土) 03:22:16.53ID:akYZMgly
マジレスすると再現する最短の手順を作るべき。
0602デフォルトの名無しさん2016/04/23(土) 03:27:14.44ID:RHlV/dKw
>>599
> JSONエンコードとデコードで変換して全ての要素を連想配列に直してあるんだ
> こいつにxpathってのを適用すると配列の好きな要素を取ってくる事ができるんだ

自分で答え書いてるがな
0603デフォルトの名無しさん2016/04/23(土) 04:01:52.26ID:OtrZRag7
>>601
ちょっと作ってみる

>>602
その連想配列の中身をprint_rで全表示しても出てこない要素がxpathだと取ってこれるってのが問題なんだ
0604デフォルトの名無しさん2016/04/23(土) 04:48:43.52ID:OtrZRag7
再現出来たのでソースコード貼ります。
まずこれがテスト用のhtmlコード、名前は「htmltest.html」

<!DOCTYPE html>
<html>
<body>
<div>testA
<span>testB</span>
</div>
</body>
</html>
0605デフォルトの名無しさん2016/04/23(土) 04:49:37.95ID:OtrZRag7
次にこれが同階層に置いたphpコード
<?php
//httpリクエスト送信
$html = file_get_contents('./htmltest.html');

echo "html内容ダンプ<br>";
echo "<textarea>";
echo $html;
echo "</textarea>";
echo "<br>------------------------------<br>";

//dom作成
$dom = new DOMDocument('1.0','UTF-8');
//domへhtml読み込み
@$dom->loadHTML($html);
//xml書き出し
$xml = simplexml_import_dom($dom);

echo "xml内容ダンプ<br>";
echo "<pre>";
echo print_r($xml);
echo "</pre>";
echo "xmlオブジェクト内には「span」タグと「testB」要素が含まれていない<br>";
echo "<br>--------------------------<br>";

$node_list = $xml->xpath('//body/div/span');
$node = $node_list[0];
echo "xpathで「span」タグ直下の「testB」を指定<br><br>";
echo $node;
echo "<br><br>何故か取れてしまう";
?>
0606デフォルトの名無しさん2016/04/23(土) 04:51:52.54ID:OtrZRag7
そしてこれが実行結果
html内容ダンプ
<!DOCTYPE html>
<html>
<body>
<div>testA
<span>testB</span>
</div>
</body>
</html>
-----------------
xml内容ダンプ
SimpleXMLElement Object
(
[body] => SimpleXMLElement Object
(
[div] => testA


)
)
1
xmlオブジェクト内には「span」タグと「testB」要素が含まれていない
-----------------
xpathで「span」タグ直下の「testB」を指定
testB
何故か取れてしまう


xmlに対してxpathを実行してる筈なのにprint_rでxmlをダンプした内容に含まれていない「testB」が取得できてしまってる
0607デフォルトの名無しさん2016/04/23(土) 04:57:01.07ID:OtrZRag7
ちなみにこれの何が問題かっていうと
今やろうとしてる事はこのxmlオブジェクトの全要素を走査して検索内容に一致した要素を見つけたらそこまでのxpathを自動で吐くっていうのを作ってるんだ
そしてこのxmlオブジェクトの全要素を走査してもtestBに当たる要素はどこにも見つからない
そのくせしてxmlオブジェクトに対してxpathで指定するとなぜか取れてしまう
xmlオブジェクトのどこかにデータは残ってるみたいだけど何故アクセスできないのかがサッパリ分からず困り果ててる
0608デフォルトの名無しさん2016/04/23(土) 05:06:44.21ID:zvfFpwGo
デブロイってなんですか?デバッグとは全く関係ありませんか?
0609デフォルトの名無しさん2016/04/23(土) 05:10:14.22ID:zvfFpwGo
つまり本番状態のサーバにアップロードするって事でしょうか?
テスト環境ではデブロイって言わないんですか?
0610デフォルトの名無しさん2016/04/23(土) 06:40:54.79ID:bBSWXEGa
>>607
なぜってXMLじゃ一つの要素の中には要素とテキストを同時並列に入れたらあかんからじゃないのか
0611デフォルトの名無しさん2016/04/23(土) 07:02:51.59ID:hBMS6FdV
>>610

それは規格上の理由

OtrZRag7が求めているのは構造上の理由
0612デフォルトの名無しさん2016/04/23(土) 07:12:43.53ID:hBMS6FdV
で、simplexml_import_dom()で得られるのはObjectで連想配列じゃないから
情報が全部キーバリューなわけじゃなく、print_rしたところで無駄無駄無駄なだけだな。

別に不思議でもなんでもない。
0613デフォルトの名無しさん2016/04/23(土) 08:06:11.62ID:bBSWXEGa
>>611
ああ。

構造的にはそのオブジェクトが元テキスト持ってるんじゃなくてsxeが使ってるlibxmlが持ってるとかじゃないか?
sxe::xpathはlibxmlが持ってる元テキストみて吐いててmixedとか考慮しないからspanも吐いちゃうとか(想像)
しかし自分はlibxml側のデバッグ方法とかまるでわからん
0614デフォルトの名無しさん2016/04/23(土) 08:36:58.34ID:hfDo0ds0
>>608-609
要は「店頭に並べる」「リリースする」とかの仲間なわけで。

あと、よくよく見たら何かおかしい。
deployな。
0615デフォルトの名無しさん2016/04/23(土) 09:31:28.50ID:xGbfup/7
>>607
dom になってるなら、基点エレメント取得してそこから first_child とか next_sibling その他の要素取得メソッド使って走査していけばいいんじゃね?
0616デフォルトの名無しさん2016/04/23(土) 13:33:35.98ID:OtrZRag7
>>615
domって変に資料少ないので不安ですがそれしか無さそうですね・・・配列じゃなくてもforeach回せるかな・・・
しかし、実際にこういう書き方してるページがあるのにXML規格上の理由で読み込めないって酷いなぁ
0617デフォルトの名無しさん2016/04/23(土) 16:08:32.93ID:71zFnUl/
$xml = simplexml_import_dom($dom);

$xml = $dom->saveXML();
でいいんじゃねーの?
0618デフォルトの名無しさん2016/04/23(土) 16:42:44.94ID:RHlV/dKw
>>603
json言うから混乱したが、言いたい事は分かった
テキストノードの歯抜けはSimpleXMLElementだけのせい
XMLの問題じゃない
print_r(object)やらvar_dump(object)やらforeachでイテレート出来る要素やら
みなobject側の自己申告に基づいている
気になるならphp-srcを読もう
0619デフォルトの名無しさん2016/04/23(土) 16:43:15.58ID:wskZ51OW
HTML扱うならphpQueryとか使えばいいじゃない
0620デフォルトの名無しさん2016/04/23(土) 16:58:19.98ID:akYZMgly
>>616
読み込めてるよ
print_r($xml->body->div);
0621デフォルトの名無しさん2016/04/23(土) 17:06:45.27ID:OtrZRag7
>>617
要素は全部取れたんですがHTMLタグが消えるみたいでXpathの抽出はちょっと無理そうです

>>619
JQueryの知識が無いので除外してましたがDOMを扱うならそっちの方が良さそうですね
XMLなら多重配列っぽくてラクだと思ってたらこんな落とし穴があるとは
0622デフォルトの名無しさん2016/04/23(土) 17:42:03.32ID:OtrZRag7
>>620
やっぱり隠れてるだけで直接指定して呼び出せば普通に出てくるんだ・・・
けどforeachのループに組み込めないんじゃ利用できない事に変わりは無さそうですね・・・
0623デフォルトの名無しさん2016/04/23(土) 23:42:13.84ID:WTdhzJIA
無限ループしてしまうプログラムを書いてしまった場合って、***.phpにアクセスするとサーバ上では無限ループしてるんだよね?
どうやって止めたらいいの?
0624デフォルトの名無しさん2016/04/23(土) 23:48:32.17ID:hfDo0ds0
設定にもよるけどタイムアウトがあるっしょ
あとはsshとかで繋げば?
0625デフォルトの名無しさん2016/04/23(土) 23:58:18.93ID:RLEkkPM/
max_execution_time
0626デフォルトの名無しさん2016/04/24(日) 00:43:28.02ID:YOklMNkc
PHP無料鯖でも使えるところそこそこあるけど、IDEが何故か有料の多いよね・・・
javaは無料IDEで十分使えるのに
0627デフォルトの名無しさん2016/04/24(日) 00:46:23.95ID:bi4aOyNo
文章が繋がってないぞw
0628デフォルトの名無しさん2016/04/24(日) 00:49:09.18ID:M2BOTgSX
>>622
class xxx {

protected $dom;
protected $xpath;
protected $nodes = array();

public function __construct(DOMDocument $dom) {
$this->dom = $dom;
$this->xpath = new DOMXPath($dom);
$this->search();
$this->display();
}

function search($q = '/') {
foreach ($this->xpath->query($q) as $key => $val) {
$xml = simplexml_import_dom($val);
$arr = json_decode(json_encode($xml), true);
if (count($arr)) {
foreach ($arr as $key2 => $val2) {
$this->nodes[] = $q . '/' . $key2;
$this->search($q . '/' . $key2);
}
}
}
}
0629デフォルトの名無しさん2016/04/24(日) 00:49:30.37ID:YOklMNkc
本当だ。おかしいw
眠い時はROMっておこう。。
0630デフォルトの名無しさん2016/04/24(日) 00:49:30.91ID:M2BOTgSX
続き
function display() {
$xml = simplexml_import_dom($this->dom);
foreach ($this->nodes as $q)
{
echo $q."\n";
foreach ($xml->xpath($q) as $key => $val)
{
echo ' ['.$key.']=>'.trim($val)."\n\n";
}
}
}
}
0631デフォルトの名無しさん2016/04/24(日) 02:37:07.04ID:qUIbZUVT
何これすごい
domってこんな感じで利用できるんだ・・・
0632デフォルトの名無しさん2016/04/24(日) 09:57:54.50ID:g74rSyHb
パーセントエンコード“だけ”してくれる関数ってありますか?
0633デフォルトの名無しさん2016/04/24(日) 10:59:08.36ID:bi4aOyNo
「だけ」ってうけど、具体的に何がOKで何がダメなん?

http://php.net/manual/ja/function.urlencode.php
http://php.net/manual/ja/function.rawurlencode.php
例えばググって真っ先に出てくるこれらがダメな理由は?
0634デフォルトの名無しさん2016/04/24(日) 16:06:30.65ID:0YAFICdU
ないなら作るだけなので質問に答えるだけで結構です
0635デフォルトの名無しさん2016/04/24(日) 16:55:31.84ID:tFJMPISe
激しくうざいから答えてやらんし意味のないレスだけはしてやるよ
0636デフォルトの名無しさん2016/04/24(日) 17:02:58.52ID:sMannWf/
最近回答者おせっかいがすぎるんだよな
そんなんだからこんなクソスレになってしまったのだろう
0637デフォルトの名無しさん2016/04/24(日) 17:14:48.16ID:dXv2CRDJ
それは仕方が無い
報酬をもらっているわけじゃないし
0638デフォルトの名無しさん2016/04/24(日) 17:17:39.61ID:dleZE7oF
どの辺がおせっかいなんだろう
0639デフォルトの名無しさん2016/04/24(日) 17:26:57.56ID:dXv2CRDJ
分からないならレスつけるなって事かな?
0640デフォルトの名無しさん2016/04/24(日) 17:30:38.71ID:sMannWf/
聞かれたことに答えてればいいってこと
また疑問があれば聞き直すだけで先読みなんてしないでいい
0641デフォルトの名無しさん2016/04/24(日) 17:51:33.43ID:dleZE7oF
たとえば>>633のレスの、1行目はいいが残りはだめだということか。
0642デフォルトの名無しさん2016/04/24(日) 18:36:31.03ID:zD3pdbnL
>>636
>最近回答者おせっかいがすぎるんだよな
具体的にどの回答?レス番はどれ?

>おせっかいだからこんなクソスレになってしまった
おせっかいだとクソスレになる理由は?
0643デフォルトの名無しさん2016/04/24(日) 18:43:42.82ID:qpp6dhOr
むしろ「これさえもわからないの?」みたいな回答者ぶった嵐が気になる
0644デフォルトの名無しさん2016/04/24(日) 18:51:01.76ID:dXv2CRDJ
そういうのは煽っているだけだから、相手にしなくてもいいと思う
0645デフォルトの名無しさん2016/04/24(日) 19:11:45.17ID:OCwvzkS2
質問に頼りきったなかなか進歩しない質問者がずっと質問してる感じに見えるな
1ヶ月近く繰り返してんじゃねーよという
環境構築の人とDOMの人

とりあえず>>254に答えとけばおk?

$ctx = stream_context_create([
'http' => [
'method' => 'GET',
'header' =>
"User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:45.0) Gecko/20100101 Firefox/45.0\r\n".
"Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\r\n".
"Accept-Language: ja,en-US;q=0.7,en;q=0.3\r\n"
]
]);
$src = file_get_contents('http://www.amazon.com/gp/offer-listing/0996275460/?condition=new', false, $ctx);
$pages = preg_match('/.*olp_page_(\d+)/s', $src, $match) ? $match[1] : call_user_func(function($src) {
return (strpos($src, '404.html') !== false) ? 0 : 1;
}, $src);
echo $pages;
0646デフォルトの名無しさん2016/04/24(日) 22:56:50.18ID:YOklMNkc
クラスの責任を重視した設計をすると、クエリーが多くなってしまうんですが、クラス設計のお手本みたいな物はありますか?
0647デフォルトの名無しさん2016/04/24(日) 23:32:18.76ID:Tp4+Mibw
あるメソッドが性的に呼ばれたのかそれとも
オブジェクトのメソッドとして呼ばれたのか
区別する方法ってありますか?
0648デフォルトの名無しさん2016/04/24(日) 23:43:36.61ID:qv1H2ydw
>>647
静的でないメソッドを静的に呼ぶ可能性, 或いはその逆があり得るということか?
それはそもそも設計ミスでは?
0649デフォルトの名無しさん2016/04/24(日) 23:57:01.63ID:dleZE7oF
>>647
何のために?
0650デフォルトの名無しさん2016/04/25(月) 00:16:09.69ID:n9/ggnWY
>>648-649
申し訳ありませんが、理由は秘密です。

純粋に技術的な疑問だと思ってくれ。
0651デフォルトの名無しさん2016/04/25(月) 00:24:21.67ID:d03Y1t3Y
なんだそりゃ。
$obj->static_method() は合法。知るとすればバックトレース(確実)、もしくは$thisについて調査するコードを入れる。
classname::instance_method() は違法。警告出せばすむ。

これでいいか?
0652デフォルトの名無しさん2016/04/25(月) 01:23:36.77ID:VJsPEWqG
>>622
木を探索するって、深さ優先・幅優先のどちらなの?

Pythonでは、forなどのiterator(反復子)で、
反復できるオブジェクトを、iterable(反復可能体)という

反復可能体は、Cの配列のように、メモリアドレスが連続しているか、
Cのリストのように、ポインタで次の要素(next)を指せるもの

木はリストだろ。nextが深さ優先・幅優先のどちらを指すか?
つまり、nextが長男(子)・次の弟のどちら?

木構造のすべてのオブジェクトを、自動的に反復するなら、
そういう特殊な木用の、再帰的なforループがあれば、それを使う
0653デフォルトの名無しさん2016/04/25(月) 01:34:32.92ID:VJsPEWqG
>>646
疎結合だから、CakePHP, RoR, JSP/Servlet などのMVC。
モデル(データ・ロジック)とビュー(見た目)は、直接アクセスしない。
必ずC(制御)を通す

疎結合(中央集権)は、スパゲティ・泥団子にならないので、開発費を抑えるけど、
Cを通すから、間接的になり遅くなる
0654デフォルトの名無しさん2016/04/25(月) 02:14:06.58ID:oGqxCmgH
>>653
それはいわゆる似非MVCでは
0655デフォルトの名無しさん2016/04/25(月) 03:54:36.04
モデルから変数読んでビューに書き写すばっかりになっちゃうんすよ
0656デフォルトの名無しさん2016/04/25(月) 08:36:03.25ID:tw90Nc2v
そもそもアクセス毎に処理が完結するなら普通の意味で言うMVCなんて要らないし・・・・
0657デフォルトの名無しさん2016/04/25(月) 09:28:37.47ID:9Cqasf4k
Web業界でPHP使ってると恥ずかしいってことに1年位前に気付いた
MacでRuby使うとドヤ顔できるのに、なんでPHP使うとバカにされるのかね?
0658デフォルトの名無しさん2016/04/25(月) 09:47:03.41ID:AOaHAs2l
言語関係なさそう
0659デフォルトの名無しさん2016/04/25(月) 09:51:18.46ID:sePdmzHQ
理由も分からず恥ずかしいとおもうアホがいるからじゃね?
0660デフォルトの名無しさん2016/04/25(月) 09:56:39.06ID:VDmdIfOu
1年前に気付いたのか・・・
失った君の青春は二度と戻ってこないよ
0661デフォルトの名無しさん2016/04/25(月) 10:31:36.27ID:6w8XRfV1
Webデザインやろうと思ってるんだけどPHPって覚えたほうが良いのかな?
HTMLとCSSしかわからない
0662デフォルトの名無しさん2016/04/25(月) 10:35:18.04ID:VDmdIfOu
Web構築を分担してやれるなら、覚えなくても大丈夫。
一人でやらないといけないなら、覚えた方がいい。
それほど難しいわけじゃない。と言っても、
プログラム言語に関する知識を多少必要としてます。
0663デフォルトの名無しさん2016/04/25(月) 12:39:16.78ID:0xpbBk2N
>>661
PHP ももちろん強みになるけど
その前に Javascript まで広げてクライアント側をしっかり固めるべき
0664デフォルトの名無しさん2016/04/25(月) 14:37:53.68ID:LzcFYIqF
>>661
テキストとか画像を組み合わせて作る静的なページなら要らない
ユーザがなんか書き込んだらコメント表示するとかの動的なwebサイト作るならその手の知識は大体必要
サーバ側に処理させるならPHPとかのサーバサイド、ユーザ側のパソコンに処理させるならJavaScript、javaと名前似てるけど別物
PHPは基本サーバ上でしか動作しないので入門の敷居は比較的高め、動作環境整えれば割と適当に書いても結構マトモに動くので扱いやすい
web上で動くプログラムはそんな複雑な事しないからCSSが扱えるなら同じノリで行ける
0665デフォルトの名無しさん2016/04/25(月) 14:49:17.55ID:jyux2xKh
>HTMLとCSSしかわからない

こう言える人なら、覚えるのは難しくはないと思う
0666デフォルトの名無しさん2016/04/25(月) 16:22:21.10ID:TdHq/qrU
phpのif文で、html文の見出しやリストなど含んだ広い領域を表示非表示切り替えたいです。
1文1文printで囲む以外の方法は何かありませんか?
0667デフォルトの名無しさん2016/04/25(月) 16:27:20.21ID:f8Qx4Ikq
>>666
ヒアドキュメント、もしくは外部ファイルにしてinclude
0668デフォルトの名無しさん2016/04/25(月) 16:31:30.92ID:TdHq/qrU
>>667
回答ありがとうございます。
ヒアドキュメントを調べてみます。
0669デフォルトの名無しさん2016/04/25(月) 17:32:10.99ID:AOaHAs2l
<?php if(isset(食欲)): ?>
<p>ペペロンチーノ</p>
<?php endif ; ?>
0670デフォルトの名無しさん2016/04/25(月) 18:31:24.99ID:iyRenNZ6
去年か一昨年、phpカンファレンスみたいなのにいって気持ち悪い連中ばかりだったんだよなあ
昔はWebスクールといえば可愛い女子もいたんだが、今やキモ男ばかりの業界だから
Webやってるとか口が裂けても言えなくなってしまった
0671デフォルトの名無しさん2016/04/25(月) 18:33:39.60ID:+1Mb+9kq
なんかしらんけど、このスレ気持ち悪い奴だらけになっとる
0672デフォルトの名無しさん2016/04/25(月) 21:38:04.62ID:Eggj/uto
>>670
Rubyはもっとやばいぞ
0673デフォルトの名無しさん2016/04/25(月) 21:54:32.47ID:Ps5j2E75
<?php if( condition ){ ?><tag>text</tag><?php } ?>
<tag value="<?php echo $var ?>"><text><?= $text ?></text></tag>

みたいな書き方を最近しなくなってたけど
こういう埋め込む書き方と変数に入れたり追記したりして最後にどばーっと吐くのとどっちが早いとかあります?
逐一吐くとHTTP headerが…というのはわかる、出力バッファあたりはほとんど理解してない
0674デフォルトの名無しさん2016/04/25(月) 22:06:10.48ID:Eggj/uto
MVC意識するならviewは分けてテンプレート使ってやったほうがいい
つまり最近しなくなったというそんな感じの書き方
早さだけを求めるなら変数に連結してやる昔ながらの方法がいいだろう
単純なテキストのみにして変数にhtmlのコードを含めるべきでないと個人的に思うけど
まぁ自分が問題ないならなんでもいいんじゃない
自分は保守が大変になるからまずやらないけど
0675デフォルトの名無しさん2016/04/25(月) 23:44:28.31ID:NebOi/I+
M→C→V 表示
↓←←↓
V→C→V データ入力
↓←←↓
V→M→C→V  データ登録 おしり

でいいの?よくわかんね
0676デフォルトの名無しさん2016/04/25(月) 23:46:13.31ID:NebOi/I+
B→C→M→C→V
→B→C→V
→B→C→M→C→Vか
0677デフォルトの名無しさん2016/04/26(火) 00:03:00.66ID:MxUl9hit
>>675
アクセス毎に新しくView作るからModelの変更をObserveする必要はない
Controllerが適当なModelに処理を振ってその後でView作ればいいだけ
0678デフォルトの名無しさん2016/04/26(火) 00:37:52.85ID:TdeFOcNs
通知というかコントローラーがモデルの作業が終わったか確認する感覚でええのん?
0679デフォルトの名無しさん2016/04/26(火) 01:19:08.81ID:MxUl9hit
Modelの処理が必要なだけ終わってからView作ればいいじゃん
Controllerにフィードバックすることなんて何もないだろ
0680デフォルトの名無しさん2016/04/26(火) 05:51:09.25
>>679
ModelはViewのこと何も知ってちゃいかんのでは
データを依頼されて書いたり読んだりするだけでは
0681デフォルトの名無しさん2016/04/26(火) 09:34:20.45ID:qFjspT6z
という、何が大事なのかを全部無視して、 MVCとはこうだからって思考停止しちゃうんだよね
PHPで作る1ページ如きだと合わないこと多いのに
0682デフォルトの名無しさん2016/04/26(火) 09:43:36.57ID:RYmsvRC4
だったらMVCとか言わなければいいでしょ
0683デフォルトの名無しさん2016/04/26(火) 10:19:36.11ID:SbyRb/iR
>>673 の質問の
こういう埋め込む書き方と変数に入れたり追記したりして最後にどばーっと吐くのとどっちが早いとかあります?

これの答えはどうなの?
MVCうんぬんは置いといて
0684デフォルトの名無しさん2016/04/26(火) 10:34:29.29ID:RYmsvRC4
>>683
速度が気になるなら作ろうとしたものに則した処理手順で自分で測ってみればいいでしょ。

ただわざわざ(遅い)PHP使ってやる意義は、画面とロジックの分離が簡単にできるという点にあると言っても過言ではないと思うよ。
0685デフォルトの名無しさん2016/04/26(火) 10:35:55.16ID:7aPQW1AR
>>684
0686デフォルトの名無しさん2016/04/26(火) 14:42:05.04ID:+nUKWOY4
>>683
PHPとして実行するんだからどちらも変わらん
HTTPヘッダーもリクエストに対して1回だけっしょ
0687デフォルトの名無しさん2016/04/26(火) 14:49:00.49ID:RYmsvRC4
>>686
ヘッダって Content-Length を設定する話なんじゃないのかな。
速度については print と echo でも違いがあるくらいだから、やってみないと分からんというか、実際に比べてみると意外な発見ができるかもよ。
0688デフォルトの名無しさん2016/04/26(火) 14:53:20.89ID:t6CRhrbh
え、echoとprintって速度違うの?
0689デフォルトの名無しさん2016/04/26(火) 14:58:50.87ID:/KGvpl9k
なんで試せばわかることを何度も何度も聞くかね
0690デフォルトの名無しさん2016/04/26(火) 15:16:53.61ID:jdnJGqSu
一寸だけ、echo の方が速い、だっけか
0691デフォルトの名無しさん2016/04/26(火) 20:18:20.06ID:MxUl9hit
>>680
いやいや, ModelがViewを作るんじゃなくてControllerがModelに投げてからControllerがView作るってこと
PHPで普通に書いてれば非同期な処理なんて起こらないんだからControllerがModelを監視する必要もないでしょ
0692デフォルトの名無しさん2016/04/26(火) 21:22:43.10ID:7SchGkHm
>>651
isset($this) やってみたけど、staticなメソッドだと $this無いのな
よく考えれば当たり前なんだろうけど、最初よく考えてなくてびっくりしたわ
0693デフォルトの名無しさん2016/04/26(火) 21:26:25.46ID:7SchGkHm
なんかこんな感じになった

class A {
static function hoge() {
$s = isset($this) ? "object" : "static";
print("$s\n");
}
}

A::hoge(); // static

$n = new A;
$n->hoge(); // static
0694デフォルトの名無しさん2016/04/27(水) 02:40:04.50ID:rxhLW16a
staticはインスタンス化しても問題ないけど
インスタンスメソッドをstaticコールは出来ない
これキホン
0695デフォルトの名無しさん2016/04/27(水) 03:08:04.76ID:cC09CvPn
>>692
selfになるんやで
0696デフォルトの名無しさん2016/04/27(水) 06:01:03.24ID:fhjp6oCD
>>693

なかなか迷走してるな。がんばってw
06976472016/04/27(水) 13:55:53.37ID:N2IMd1ky
結局のところ、区別は絶対につかないことがわかったよ

static function hoge() {
と真面目に宣言してるメソッドはどう呼んでもstaticになる
0698デフォルトの名無しさん2016/04/27(水) 13:58:26.28ID:N2IMd1ky
staticつけずに定義してるメソッドなら ちゃんと区別がつく
が、これはWARNING出るし ちょっと砂糖構文ぽくていや


class A {
function hoge() {
$s = isset($this) ? "object" : "static";
print("$s\n");
}
}

A::hoge(); // static

$n = new A;
$n->hoge(); // object
0699デフォルトの名無しさん2016/04/27(水) 14:11:05.42ID:iS2uJpqo
>砂糖構文
ちょっとまて
0700デフォルトの名無しさん2016/04/27(水) 16:00:44.09ID:ryCjRle9
まあでもsyntactic sugarだからなんでも良いよね感
0701デフォルトの名無しさん2016/04/27(水) 16:15:22.09ID:xA/Pm/zW
staticが未だにつける理由わからない
つけなくても動くんだよなあ
なんでつけないといけないの?
0702デフォルトの名無しさん2016/04/27(水) 16:16:41.33ID:qPjzNyja
$val1 $val2に それぞれ "200",200,0,"0","00",nullの値がランダムに入ってくるとして
必ず答えを400〜0の間にするにはどうしたら良いんでしょうか
0703デフォルトの名無しさん2016/04/27(水) 16:17:02.38ID:iVl8Oq0H
>>701
既にDeprecatedだから近い将来動かなくなるぞ
0704デフォルトの名無しさん2016/04/27(水) 16:55:08.90ID:E0M63uPa
>>702
$var1,$val2は何に使うんだ?
0705デフォルトの名無しさん2016/04/27(水) 17:10:50.51ID:xA/Pm/zW
>>703
わかるけどつけなくても実質的に問題ないのになんでわざわざつけないと動かないようにするんだろ
0706デフォルトの名無しさん2016/04/27(水) 17:25:02.73ID:iVl8Oq0H
>>705
静的メソッドとインスタンスメソッドなんて役割全く違うのに実質的に問題ないとは?
インターフェイス見ても静的かインスタンスか分からんようなAPIなんて害悪そのものだろう

そもそもstaticキーワード無しでも静的メソッド呼び出し可能なのはオブジェクト指向言語だなんて口が裂けても言えないようなPHP4時代の名残でしかない
他のクラスベース言語で同じことやってる言語がいくらある?
0707デフォルトの名無しさん2016/04/27(水) 18:00:00.00ID:qPjzNyja
>>704
$input_val = array[ "200","0","00",null,0,200]
$val1 = $input_val[rand(5)];
$val2 = $input_val[rand(5)];

$ret = $val1 + $val2

echo "合計". $ret. "人です\n";
みたいなイメージ "200" + "00" = "20000"とかになりそうで怖い・・・
0708デフォルトの名無しさん2016/04/27(水) 18:16:52.79ID:VZ0i7jHG
文字列の連結はそのために . にしてんじゃないのかな
ホント色々いいたくなるよねw
0709デフォルトの名無しさん2016/04/27(水) 18:43:31.59ID:af0ErLk2
DateTimeクラスとMySQLのdatetime型の相互変換を行いたいです
0710デフォルトの名無しさん2016/04/27(水) 19:14:15.60ID:E0M63uPa
>>707
各所文法間違いはともかく、 それでだいたいお望みどおりに動くでしょ。
0711デフォルトの名無しさん2016/04/27(水) 19:34:27.65ID:Knpnj6tL
>>707
整数型にキャストすればいい
$ret = (int)$val1 + (int)$val2;
0712デフォルトの名無しさん2016/04/27(水) 20:33:47.80ID:Vo6vNlrx
>>705
staticじゃないものをstaticで呼ばれたら
インスタンス変数参照できないじゃん
0713デフォルトの名無しさん2016/04/27(水) 23:50:13.73ID:JpY/0o50
>>698
> classname::instance_method() は違法。警告出せばすむ。
って書いたんだけど
0714デフォルトの名無しさん2016/04/28(木) 11:41:36.25ID:ON9UC2Yh
>>706
>他のクラスベース言語で同じことやってる言語がいくらある?
C++とかできるよね。 そういうことじゃなくて?

class A {
public:
static int hoge(){ printf("hoge\n"); }
};

int main() {
A::hoge();

A *a = new A();
a->hoge();
}
0715デフォルトの名無しさん2016/04/28(木) 11:48:15.94ID:CCEipRZl
>>714
逆だろ
0716デフォルトの名無しさん2016/04/28(木) 20:45:41.13ID:i2B24aI1
>>714
staticキーワード書いてりゃ静的であることは分かるんだからさぁ・・・・・
>>705の言い方も「付けなくてもいいじゃん」てことだろ?
0717デフォルトの名無しさん2016/04/29(金) 13:59:46.38ID:P3UdCaB8
WPというか、phpの問題かもしれないが、
ウインドウサイズを認識した分岐ができるようになってほしい。
ソースレベルでも入・出力を振り分けたい。
0718デフォルトの名無しさん2016/04/29(金) 14:41:21.66ID:phDms4a6
>>716
A::hoge();
a->hoge();
のどっちで呼ばれたかを関数内で知りたいんだけど、どうすればいいかな
0719デフォルトの名無しさん2016/04/29(金) 14:50:34.66ID:b810C973
>>717
phpの問題でもwpの問題でもない、どっちかっていうとhttpの問題か
初回アクセス時にjavascriptを使ってウィンドウサイズを得てcookieに入れてもらって即リダイレクト…とすれば不可能でもないか
0720デフォルトの名無しさん2016/04/29(金) 17:22:48.24ID:yjKpOv8B
>>717

本物の馬鹿降臨
0721デフォルトの名無しさん2016/04/29(金) 18:26:03.44ID:dByELugU
ウィンドウサイズによってサーバ側の処理を分岐させるなんて聞いたことないな
0722デフォルトの名無しさん2016/04/29(金) 18:47:27.22ID:yivpch89
携帯サイトの場合なら、渡される端末の画面サイズ情報に応じて表示を変えると言うのはあったな
0723デフォルトの名無しさん2016/04/29(金) 19:44:38.07ID:3OPJ3853
>>718
言語として区別する必要がない(staticであれば静的に呼ばれればよい)
呼び出し元の情報を関数が知っているべきでない

まとめるとバックトレースでも見て呼び出し元のソースから判断するしかない
そして無意味
0724デフォルトの名無しさん2016/04/29(金) 19:48:01.23ID:e7v6KggY
PHPではユーザーエージェントで振り分けが一般的だろう
0725デフォルトの名無しさん2016/04/29(金) 23:16:19.66ID:AWs6LkoN
>>722
ソースを見ると、携帯端末の名前それぞれに対応する画面サイズ情報とかがズラリならんでるんだな…
うっ、頭が……
0726デフォルトの名無しさん2016/04/29(金) 23:44:35.82ID:t6EmjZl2
無駄に大きな画像をDLさせないようにってことじゃないの?
レスプンシブやめてそれぞれデザイン変えたいとか、そういう時のやつ。
すごい簡単なやり方あったけど忘れたわ。
確かにPHPでやってたのは覚えてる。
0727デフォルトの名無しさん2016/04/30(土) 01:33:45.96ID:CH7eTZMG
ガラケー…W20H30…1ページのバイト数…cookie不可…ガラケー用HTML…えもじ…
0728デフォルトの名無しさん2016/04/30(土) 02:50:12.26ID:x6ExceOd
>>727
二度と戻りたくない世界だな…
0729デフォルトの名無しさん2016/04/30(土) 09:51:40.14ID:x6hKSksA
>>723
無意味かどうかはオレが決めるさ
0730デフォルトの名無しさん2016/04/30(土) 10:22:12.00ID:gSvXp03E
>>717
出来るから。勉強不足すぎるわ。デバイス判定、画面サイズ判定普通に出来るから。
おまえの問題でしかないだろバカ
0731デフォルトの名無しさん2016/04/30(土) 12:06:51.69ID:uVz81x78
GitHubで匿名通信(Tor、i2p等)ができるBitComet(トラッカーサイト不要でDHTだけで日本語検索可能)
みたいな、BitTorrentがオープンソースで開発されています
言語は何でも大丈夫だそうなので、P2P書きたい!って人居ませんか?
Covenantの作者(Lyrise)がそういう人と話したいそうなので、よろしければツイートお願いします
https://twitter.com/Lyrise_al

ちなみにオイラはCovenant(純粋P2Pのファイル共有ソフト)の完成が待ち遠しいプログラミングできないアスペルガーw
0732デフォルトの名無しさん2016/04/30(土) 12:16:40.22ID:pZkow9Wr
配列とイントランスの参照/実体渡しについて、c#と比較して教えて欲しいです
配列は参照渡しだが、書き換えるとコピーされるので、実質値渡し
イントランスはc#と同じ値渡し
という認識であっていますか?
ggってもいまいち分からなかったので
0733デフォルトの名無しさん2016/04/30(土) 12:23:07.44ID:QAEI/5KM
>>732
そんな感じ。適当だから厳密にならないように、ラフな感じでよろしく!
0734デフォルトの名無しさん2016/04/30(土) 12:41:04.99ID:CH7eTZMG
イントランスってなんだインスタンスのtypoか?

少なくともphp5以降ではオブジェクトは参照渡しだったはずだが
0735デフォルトの名無しさん2016/04/30(土) 12:41:27.47ID:WqN5QD+I
>>732
イントランスじゃなくてインスタンスな
インスタンスは参照渡しだぞ
http://php.net/manual/ja/language.oop5.references.php
0736デフォルトの名無しさん2016/04/30(土) 12:51:53.13ID:pZkow9Wr
間違って覚えてた・・・恥ずかしい
ありがとう
0737デフォルトの名無しさん2016/04/30(土) 13:49:14.61ID:qRXZq22J
これはさすがに >>736 が可愛すぎて吹いた。

馬鹿も度を越すと本当に可愛く見える。
0738デフォルトの名無しさん2016/04/30(土) 13:54:26.27ID:kBEc2ffr
不勉強で。単に自分の知らない用語があったんだなと思って眺めてたら
0739デフォルトの名無しさん2016/04/30(土) 13:57:31.12ID:n4Sz1TLc
違うよ、世の中には可愛い馬鹿と可愛くない馬鹿が居るだけ
ついでに言えば、可愛い馬鹿でも度を超した馬鹿は絶対に関わり合いになりたくない
0740デフォルトの名無しさん2016/04/30(土) 14:18:06.12ID:MNX3bmo/
お前ら、一度も間違えて覚えていた事がないの?
お客に間違えたまま話してて、指摘されたkともないの?
部下から、「それ違うんじゃ」って言われたこともないの?

そう本気で思っている奴いたら、100%天然の○○だぞ
0741デフォルトの名無しさん2016/04/30(土) 14:21:27.49ID:X7oVJKeu
この業界は他人を見下すやつ多すぎるからな
技術あるやつほど人格終わってるのが多い
0742デフォルトの名無しさん2016/04/30(土) 14:49:32.58ID:pZkow9Wr
もう一ついいですか?
sha256の16進数文字列をを短くするために、64進数文字列に変換したいです
文字列→sha256ハッシュで16進数文字列を取得→hexdecで10進数に変換→ネットに落ちていた10進数と64進数の相互変換関数で64進数に変換
としているのですが、intの範囲を軽く越えるので、hexdecで実数が返ってきてしまい、上手く変換出来ません
何か方法ないでしょうか?
0743デフォルトの名無しさん2016/04/30(土) 15:22:14.42ID:qRXZq22J
>>740,741

> お客に間違えたまま話してて、指摘されたkともないの?

あるわけない。

まともな人間ならお客さんと話す前には内容をイメージトレーニングするから
話す内容に間違いがないか、その時点で下調べくらいする。
よくわからんアイドルの名前を間違えることなどはあるかもしれないが、それは寧ろ、話題がにつながっていいかもしれない。

これはあらゆることに関しての原則だが、
どう見ても馬鹿なことをしておいて他人から「馬鹿だ」と言われて腹が立つ奴は絶対に何事も大成しない。
自分が馬鹿だと自覚した時が成長のチャンスなのに、くだらない自尊心がそれを阻害しているから。

もっというと、知らない単語が出てきた時に意味や何故その名前になっているのかを調べずに
字面で覚えているやつは、プログラミング技術は絶対に向上しない。

そういうあたりまえのことを分からず、
「人を見下す奴こそ馬鹿」みたいな自分に甘い感情論を言う奴は間違いなくクズグラマ。
0744デフォルトの名無しさん2016/04/30(土) 15:26:10.15ID:qRXZq22J
>>739
>ついでに言えば、可愛い馬鹿でも度を超した馬鹿は絶対に関わり合いになりたくない

だって、pZkow9Wr には現実に関わること絶対ないもん。度を越してても可愛い可愛いで済んじゃうよ。
0745デフォルトの名無しさん2016/04/30(土) 15:28:30.11ID:MNX3bmo/
>>743
あんたの言っている事は大筋その通りだと思うから、反論しないけどさ

>他人から「馬鹿だ」と言われて腹が立つ奴

少なくとも、今この話題でこういう人はいないでしょ?
話題となった当人は恥ずかしくて恐縮してますよ
0746デフォルトの名無しさん2016/04/30(土) 15:29:20.36ID:pZkow9Wr
何か荒れてしまってすみません
0747デフォルトの名無しさん2016/04/30(土) 15:31:21.77ID:qRXZq22J
言い出すときりがないからもう一つだけにしておくけど、

> "ネットに落ちていた"10進数と64進数の相互変換関数で64進数に変換

こういう事平気で言う本物の馬鹿は、本当にどうしようもない。
先人に対する敬意もへったくれもないし、本当に努力することもありえないから
何か教えるだけ無駄。
0748デフォルトの名無しさん2016/04/30(土) 15:33:31.88ID:qRXZq22J
>>745
>少なくとも、今この話題でこういう人はいないでしょ?

>>740なんか、自分に投影して腹たったからああいうこと書いてるんでしょ? 普通に解釈して。
0749デフォルトの名無しさん2016/04/30(土) 15:39:28.80ID:MNX3bmo/
何を持って腹が立つと受け止めたのかな?

オレが言いたいのは、バカと言っているけど、
誰でもありがちな勘違いで、
本人も間違いと気がついて謝罪しているのに、
まだ続けるのかなって疑問を感じたから書いただけなんだけど
0750デフォルトの名無しさん2016/04/30(土) 15:46:56.21ID:x6hKSksA
>>748 >>749
バカ同士仲良くしようず
0751デフォルトの名無しさん2016/04/30(土) 15:50:46.67ID:MNX3bmo/
確かに賢い人は、人の誤りを見てにやっと笑い
「オレならしない」と独り言を言って立ち去るね
0752デフォルトの名無しさん2016/04/30(土) 16:10:52.65ID:n23D/+7R
>>742
hex8桁ずつ処理すればとりあえず少しは短くなるよ。
0753デフォルトの名無しさん2016/04/30(土) 17:46:10.80ID:TD0Cn9Rr
>>742
SHA256をバイナリで吐いてからBase64
0754デフォルトの名無しさん2016/04/30(土) 18:15:52.02ID:pZkow9Wr
>>752でも、>>753でも出来ましたが、なるべく自分のソースだけで終わらせたいのでbase64を使う事にしました
ありがとうございます
0755デフォルトの名無しさん2016/05/01(日) 15:55:08.26ID:/HxbZLaJ
外部キー制約はInnoDBだけで使え、複合主キーAUTO_INCREMENTはMyISAMだけで使えるようですが、両方使うのは無理なのでしょうか?
0756デフォルトの名無しさん2016/05/01(日) 16:21:54.96ID:53diw1JY
はいどうぞ
http://echo.2ch.net/db/

複合キーのAUTO_INCREMENTって使ったことねぇなあ
0757デフォルトの名無しさん2016/05/02(月) 21:30:37.95ID:i9g3iqjk
if ($found) {return false;}
return true;


上の式を三項演算子にしたいのですが、以下の式では正常に動作しませんでした。
どこがダメなのでしょう
$found === true ? false : true;
0758デフォルトの名無しさん2016/05/02(月) 21:40:52.47ID:FDPPvimu
>>757
returnしていない
0759デフォルトの名無しさん2016/05/02(月) 21:44:50.81ID:d53mXAAU
return !$found;
0760デフォルトの名無しさん2016/05/02(月) 21:47:15.64ID:i9g3iqjk
できましたありがとうございます。
0761デフォルトの名無しさん2016/05/02(月) 21:54:22.94ID:SOjV5rld
質問への直接的な解答としては

上:真と判断されるものなら何でもいい
下:厳密に「TRUE」が入ってないとダメ

っていう、微妙な条件の違いに起因してるんじゃねーかな。
それ以上は実際にどういう値が入ってるか分からんと答えにくいけど。
0762デフォルトの名無しさん2016/05/02(月) 22:12:15.39ID:6p3XpW5A
if ($found)とか!$foundってやめたほうがいいよ
0763デフォルトの名無しさん2016/05/02(月) 22:14:41.94ID:t9/6jK5v
>>762
そこまで言うのは大きなお世話
bool以外でやられるとアレだがboolであることが確定しているなら別にいいと思う
0764デフォルトの名無しさん2016/05/03(火) 13:22:46.86ID:wezBEewb
複数プロセスから処理を1個ずつおこないたいので
メッセージキューを使ってるんだけど
キューごとに優先順位をつけたいときは
どうしたら良いのか
0765デフォルトの名無しさん2016/05/03(火) 13:25:30.38ID:7aVuKy9g
優先度付きキューにすればいいじゃん
0766デフォルトの名無しさん2016/05/03(火) 13:53:05.38ID:POacCwFX
誰が考えても同じ答えしか出ないものをわざわざ
掲示板で質問しなければならない人は、
自販機で買うジュースも人に聞かなければ選べないほどの病人だと思うの。
0767デフォルトの名無しさん2016/05/03(火) 14:45:35.55ID:wezBEewb
>>765
phpの優先度付きキューってプロセス跨げないよ?
0768デフォルトの名無しさん2016/05/03(火) 15:13:12.54ID:pcOhaWKy
じゃあそれを言おうよw
0769デフォルトの名無しさん2016/05/03(火) 15:26:04.64ID:wezBEewb
>>768
補足で msg_* やSplPriorityQueueのこと書こうと思ったんだけど
誰が考えても同じ答になるそうなのでちょっと待機してた
0770デフォルトの名無しさん2016/05/03(火) 16:45:25.34ID:elGKthlc
優先度の異なる複数のキューを管理するクラスを作ったことならある
その時はPHPじゃなかったけど、同じようなことはできるんじゃないかな
0771デフォルトの名無しさん2016/05/03(火) 17:13:35.76ID:B2CuE2Il
都内でぼっちでphpやってるんだけど、せっかく都内にいるから勉強会とかそういうのに出ようかなあと
ただ開発環境がwindowsなんだけど、そういうの集まるとみんなmacだよね?
やっぱmacじゃないと仲間はずれにされたりイジメや無視されたりする?
0772デフォルトの名無しさん2016/05/03(火) 17:35:10.37ID:elGKthlc
へぇ、みんなmacなんですか。
そんなんで仲間はずれにする人しかいない勉強会なんて願い下げでいいよ。
0773デフォルトの名無しさん2016/05/03(火) 17:53:39.85ID:BSm7UqFn
リナックスユーザーの存在
0774デフォルトの名無しさん2016/05/03(火) 18:10:05.67ID:wAl7mTD5
勉強会行くより仕事しろテスト書け
0775デフォルトの名無しさん2016/05/03(火) 18:51:01.85ID:1OXiQfcM
>>771
開発環境はFedoraですけど
0776デフォルトの名無しさん2016/05/03(火) 19:27:29.80ID:G9XEXQGe
匿名通信(Tor、i2p等)ができるファイル共有ソフトBitComet(ビットコメット)みたいな、
BitTorrent(Covenant)が活発な情報交換・交流コミュニティでオープンソース開発されています(プログラマー募集中)

言語は何でも大丈夫だそうなので、P2P書きたい!って人居ませんか?

Covenantの作者(Lyrise氏)がそういう人と話したいそうなので、よろしければツイートお願いします<(_ _)>
https://twitter.com/Lyrise_al

ちなみにオイラはCovenantの完成が待ち遠しいプログラミングできない情報発信好きアスペルガーw


The Covenant Project
概要

Covenantは、純粋P2Pのファイル共有ソフトです

目的

インターネットにおける権力による抑圧を排除することが最終的な目標です。 そのためにCovenantでは、中央に依存しない、高効率で検索能力の高いファイル共有の機能をユーザーに提供します

特徴

Covenant = Bittorrent + Abstract Network + DHT + (Search = WoT + PoW)

接続は抽象化されているので、I2P, Tor, TCP, Proxy, その他を利用可能です
DHTにはKademlia + コネクションプールを使用します
UPnPによってポートを解放することができますが、Port0でも利用可能です(接続数は少なくなります)
検索リクエスト、アップロード、ダウンロードなどのすべての通信はDHT的に分散され、特定のサーバーに依存しません
0777デフォルトの名無しさん2016/05/04(水) 00:28:16.20ID:hEDk15uI
情報発信好きがマルチポストをするとはすごい時代になったものですね
0778デフォルトの名無しさん2016/05/04(水) 01:21:06.77ID:mu28jnAT
みんなはhtml(今ではhtml5)からはじめた?
それともphpを単独ではじめた?
というのもphpって拡張子を.phpにして、htmlの中に<? ?>で書いていく感じが多いじゃん?
なのでhtmlも並行に学んでる?
0779デフォルトの名無しさん2016/05/04(水) 02:10:16.07ID:qX1/u2G+
自分はつい最近になってから、仕事で使うためにPHPを学び始めたので
HTMLの基本は当然ながら知ってた。
まあ、WordやExcelが使えて当然みたいなもんだろうし。

ところで、HTMLファイルの中にピンポイントで埋め込むような形式って
使ったこと無いんだけど、実際どうなの?
0780デフォルトの名無しさん2016/05/04(水) 03:21:35.27ID:Ei88mNMV
>>779
少なくともモダンな書き方ではない。が, 簡単なものならそれでもいいと思う。
ある程度以上の規模になってきたらPHPはロジックだけ書いて表示はテンプレートエンジンに投げるわ
0781デフォルトの名無しさん2016/05/04(水) 03:54:58.33ID:qX1/u2G+
ありがとう
MVCどころか、せめてMVは分けるべきだよなあって感じで
使ったことなかったんだ
0782デフォルトの名無しさん2016/05/04(水) 11:36:01.99ID:D79M6+1d
phpが最高すぎてつらい
0783デフォルトの名無しさん2016/05/04(水) 12:16:24.48ID:0znskkiV
webシステム開発はまだPHPが良いの?
海外では人気ないって聞いたけど
0784デフォルトの名無しさん2016/05/04(水) 12:23:41.06ID:umZZ3q0x
それ聞いたやつに聞けよ
0785デフォルトの名無しさん2016/05/04(水) 12:38:15.77ID:0znskkiV
どうなの?って聞いただけでも余裕がないと言うことか・・・
0786デフォルトの名無しさん2016/05/04(水) 13:00:48.15ID:p/7XQ3tJ
身近に聞ける人がいるならそいつから聞いた方が確実なんじゃない?
0787デフォルトの名無しさん2016/05/04(水) 13:24:28.90ID:j6q0yXrL
>>785
脳みそ空っぽですか?
0788デフォルトの名無しさん2016/05/04(水) 13:25:49.27ID:AB8NUDGJ
言語なんてただの手段だからPHPで十分
0789デフォルトの名無しさん2016/05/04(水) 13:33:58.84ID:0znskkiV
傾向はわかった
0790デフォルトの名無しさん2016/05/04(水) 13:39:43.30ID:3+sO+UIY
ホームページ作る時ってhtml使わずに全部phpで書くの?
例えばこんな風に
echo <html>
echo <header>
echo <title>
0791デフォルトの名無しさん2016/05/04(水) 13:53:55.93ID:qX1/u2G+
PHP初学者な俺が答えてみる

・静的なページはHTMLでいいじゃん
・ヒアドキュメントでぐぐれ
・テンプレートエンジンとかフレームワークというのがあるよ
0792デフォルトの名無しさん2016/05/04(水) 13:58:00.03ID:m9xtPxtQ
>>790
<? ?> を使わなければ全部HTMLだよ
0793デフォルトの名無しさん2016/05/04(水) 14:04:51.06ID:NPwMSLhK
フレームワーク使いたいけど行き詰まったときに進めなそうで躊躇するなあ
0794デフォルトの名無しさん2016/05/04(水) 14:37:24.75ID:qX1/u2G+
>>793
一度フレームワークを採用すると,そのサイトではそのフレームワークでしか動かせなくなる、
なんてことは無いんじゃないかな
0795デフォルトの名無しさん2016/05/04(水) 15:14:55.86ID:NPwMSLhK
>>794
なんで?
別のフレームワークで再構築するのもかなり苦労しそうだけど…
0796デフォルトの名無しさん2016/05/04(水) 15:17:22.83ID:qX1/u2G+
すまん、>793の意味を理解してなかったみたいだわ
0797デフォルトの名無しさん2016/05/04(水) 15:32:04.93ID:NPwMSLhK
>>796
そっかww
0798デフォルトの名無しさん2016/05/04(水) 17:55:48.51ID:PjMZUCXr
>>790

シンタックスエラーです。
0799デフォルトの名無しさん2016/05/04(水) 17:59:30.19ID:PjMZUCXr
>>787

頭が空っぽなことはあったとしても、
脳みそが空っなことは無いと思う。
0800デフォルトの名無しさん2016/05/04(水) 18:39:22.05ID:D79M6+1d
>>790
phpにしたいところだけ<?phpと?>で囲めばいいんだよ
その他はHTMLタグでもいい
でもファイルの拡張子はphpにしなきゃだめだよ
0801デフォルトの名無しさん2016/05/04(水) 18:45:59.92ID:BQgscAQu
mb_send_mailを使って、メールを送れるようにしたんだけど、ヘッダーのFromを適当なアドレスに変えてもメール送信できてしまうのはなぜ?
実際はどのメールアドレスを使ってメールを送信してるの?仕組みを教えてほしい
0802デフォルトの名無しさん2016/05/04(水) 18:47:46.42ID:D79M6+1d
送信先があってれば、ちゃんとアドレス解決されて相手のメールサーバーに届くんだよ
送信元はどうでもいい
0803デフォルトの名無しさん2016/05/04(水) 18:50:36.56ID:D79M6+1d
>>801
現実世界でも同じ
封筒の宛先は正しくて、裏面の自分の名前とか住所適当でもちゃんと届くでしょ?
でも正しい返信はもらえない
0804デフォルトの名無しさん2016/05/04(水) 19:02:59.57ID:BQgscAQu
返信ありがとう
もう少し細かく聞きたいんだけど、メールを送ってるのはメール送信プログラム.phpを動かしたサーバーからなの?
できれば、サーバー側から送信したメール数やメールの内容を借りてるサーバー付属のメーラーみたいなのから確認したいんだけど、それは無理かな?
0805デフォルトの名無しさん2016/05/04(水) 19:04:44.29ID:Ei88mNMV
>>801
PHPが行うメール送信は, 適当なヘッダを付与してphp.iniで指定したMTAに投げるだけ
通常FromヘッダやReply-Toヘッダは送信側が付与する自己申告でしかない
処理を投げられたMTAはSenderヘッダを付与してメール転送を行う
0806デフォルトの名無しさん2016/05/04(水) 19:11:29.33ID:Ei88mNMV
>>804
メーラーってのはPOP3とかIMAPを使ってサーバとメールボックスの内容をやり取りするソフトウェアだぞ?
SMTP経由でMSAを叩くことはあるが, 基本的には送信と同時に送信済みトレイのようなメールボックスに記録を書き込んでいるに過ぎない

PHPを用いたメール送信では, 単に直接MTAを叩いているだけなのでメールアカウントやメールボックスは必要ない
(adminでもない限りは)送信履歴を知りたければ自分でそれを記録する仕組みを実装せねばならない
0807デフォルトの名無しさん2016/05/04(水) 19:12:44.29ID:BQgscAQu
二人ともありがとう
すっきりしました
0808デフォルトの名無しさん2016/05/04(水) 19:16:21.77ID:p/7XQ3tJ
CCとかBCC使えば良いんじゃ?
0809デフォルトの名無しさん2016/05/05(木) 01:32:25.51ID:1Fw8lEK/
>>790
あまりに馬鹿すぎて釣りかと思ったぞ
0810デフォルトの名無しさん2016/05/05(木) 08:04:08.44ID:EXZ7EHt5
質問なんですがphpってなんで echoもprint、それどころかhtmlの様にクオーテーションも使わずタグを直接<html> <body>見たいな書き方出来るんですか?
perlだと一々httpヘッダ返してたような・・・

echo <<< HTML
<html>
<body>
<h1>初めてのホームページ</h1>
HTML;

みたいにecho的な物なくてなんで動くんです?
0811デフォルトの名無しさん2016/05/05(木) 08:07:18.54ID:PKr2xLG/
<<< は、ヒアドキュメント

<<< hogehage


hogehage;

は、hogehageからhogehage;までの間をダブルクオートで囲ってるのと同じ意味

ヒアドキュメント自体はPHPに限らず多くの言語に搭載されている。
0812デフォルトの名無しさん2016/05/05(木) 08:23:39.65ID:PKr2xLG/
>> perlだと一々httpヘッダ返してたような・・・

HTTPヘッダは全く別の問題
0813デフォルトの名無しさん2016/05/05(木) 08:35:17.14ID:jemhh2fV
phpってなんでphpなんです?と聞いてるに等しい気がする
なんでっつーか、そもそもそういう使い方したくて作られた言語
0814デフォルトの名無しさん2016/05/05(木) 08:41:59.08ID:8xagvOEy
>>810
<?php 〜 ?>で囲まなければ普通のHTMLとして書けたり、
他の言語と違ってHTTPヘッダが省略できたりするのは、
もとがテンプレートエンジン的な発想で作られてるからじゃない?
0815デフォルトの名無しさん2016/05/05(木) 10:06:41.04ID:nbA95sOS
PHPはHTMLの中にプログラムを埋め込むって思想だからね。
0816デフォルトの名無しさん2016/05/05(木) 12:05:09.03ID:t5LH2BEu
HTMLを出力するために多くのコマンドを記述する (C やPerl のように) 代わりに、
PHPのページは
0817デフォルトの名無しさん2016/05/05(木) 12:06:25.19ID:t5LH2BEu
HTMLを出力するために多くのコマンドを記述する (C やPerl のように) 代わりに、
PHPのページは "何か" (この例では、"Hi, I'm a PHP script!" と出力) を
行うコードを HTML に埋め込むことになります。
http://php.net/manual/ja/intro-whatis.php
0818デフォルトの名無しさん2016/05/05(木) 12:15:44.69ID:7dEyD0UL
perlとかはデザイナーさんとの協業きつそうだな
0819デフォルトの名無しさん2016/05/05(木) 12:18:11.35ID:PKr2xLG/
まぁ、だからPerlは廃れたんだろう。
0820デフォルトの名無しさん2016/05/05(木) 14:37:50.14ID:euu0RITH
昨日のmb_send_mailの者です

プログラムファイルは細かく分けた方がいいかな?

メールアドレスを入力するページ→メールアドレスをデータベースに登録し、入力されたメールアドレスへメールを返信するページ(ファイル)と分けようと思ってるんだけど
0821デフォルトの名無しさん2016/05/05(木) 15:13:34.62ID:8xagvOEy
>>818
デザイナーさんは別にプログラム部分いじらなくない?
テンプレートの使いやすさとかはあるかもしれんけど
0822デフォルトの名無しさん2016/05/05(木) 15:22:09.22ID:8xagvOEy
>>820
自分なら、ユーザがアクセスするページ(index.php)は共通にするかな。

で、内部的には、それぞれの機能を別ファイルに書いておき、require_onceなりで呼び出す。
メールアドレス登録くらいなら1ファイルに詰め込んでもそんなに問題なさそうだけど。
0823デフォルトの名無しさん2016/05/05(木) 16:02:40.55ID:euu0RITH
>>822
なるほど
ありがとう!
0824デフォルトの名無しさん2016/05/05(木) 17:01:23.50ID:3wAjz+y3
本職デザイナー、php独学でWebアプリ作って700人ユーザーいるけど頑張ったと思う!
一人でよくここまでできるようになった
phpに関してはまだまだだけど、どうやって学習したかとかアプリについてとかなんでも聞いてくれ
0825デフォルトの名無しさん2016/05/05(木) 18:58:25.89ID:4op0HH4D
>>824
じゃあ遠慮なく・・・
Webアプリのジャンルは?
会員制サイト?
作成からの期間は?
オブジェクト指向?
役に立ったPHPの本は?
1日のページビューは?
月間の収益は?
0826デフォルトの名無しさん2016/05/05(木) 19:21:26.55ID:3wAjz+y3
>>825
アプリは会員制、ジャンルはある分野の管理ツール
作成期間は半年
99%手続き型、オブジェクトはほぼなし、完全に思いつきで作ってる
いちおうAjaxな作り
デザイナーだからGUIはそれなりな見栄え
書籍はまったく見なかった
参考にしたのはひたすらネットで検索
役に立つのはStackOverflow、教えてgoo、たまにテラテイル
Mysqlはゼロから6時間だけ他人に家庭教師してもらってあとは独学
もちろんセキュリティは素人レベル
ページビューは知らない、というか気にしてない
収益は約700人×(月額3000〜15000円)
0827デフォルトの名無しさん2016/05/05(木) 19:48:43.19ID:4je1U+qY
>>826
Webアプリ名は?使ってみたい。
0828デフォルトの名無しさん2016/05/05(木) 19:59:21.99ID:4op0HH4D
>>826
参考になる。ありがとう。
デザインの見栄えがいいのはポイント高いね。羨ましい。
ただ会員制ならセキュリティ関係はより強固にした方がいい。
つーか1ヶ月に200万円以上を稼ぐのはすごいね。
0829デフォルトの名無しさん2016/05/05(木) 20:34:40.65ID:PKr2xLG/
>>826

クソだな、と思って読んでいたが、

> 収益は約700人×(月額3000〜15000円)

ここで目が輝いた。
0830デフォルトの名無しさん2016/05/05(木) 21:08:31.39ID:7dEyD0UL
>>826
すげえな。それ一本で食っていけるじゃん
サイト公開から初めての有料会員ができるまで何ヶ月?
そして700人になるまで何ヶ月?
0831デフォルトの名無しさん2016/05/05(木) 21:22:33.30ID:3wAjz+y3
>>827
すまんムリ

>>828
ほんと見た目だけは最近の流行りのデザインだからね
中身はクソだけどw
セキュリティは誰かにお願いしようかと思ってる

>>829
プログラミングのド素人だから中身はほんと酷いよ

>>830
まだ公開して3ヶ月経ってないんだ
スケールアップどうしようと思ったけど今の10倍来ても専用サーバーだから大丈夫っぽい
ただしデータベースが肥大化してく…
0832デフォルトの名無しさん2016/05/05(木) 21:39:43.25ID:vgfVBBtA
ここでサイト名晒してもマイナスにはならないと思うが
俺もビジネスモデル知りたい
0833デフォルトの名無しさん2016/05/05(木) 23:27:41.69ID:hd3jTl8m
>>832
いや損にしかならないからこんなところで晒すわけねぇだろ
誘導していただこうとか無能な乞食はすっこんでろよ
0834デフォルトの名無しさん2016/05/05(木) 23:42:31.30ID:NeiUFsGk
>>831
肥大してくってもたいした量じゃないと予想するんだが、
とりあえず100万件単位になるまではまず不安に思わなくていいよ。
0835デフォルトの名無しさん2016/05/06(金) 00:04:19.19ID:HFUPBWY3
デザイナーがサーバ言語とJS覚えたらプログラマーは完敗だからね
ベーシストがギター弾けないのと同じで逆は難しいんだよ
0836デフォルトの名無しさん2016/05/06(金) 00:12:02.04ID:3OzCd6+q
やっぱりペチパは馬鹿だなあ
ギター弾けるベーシストは腐る程いるけど
ベース弾けるギタリストなんかプロでも数える程しかいねーよ
0837片山博文MZ ◆T6xkBnTXz7B0 2016/05/06(金) 00:12:38.69ID:HhxzYC09
依頼主が単語をいくつか組合せる。人工知能が単語にぴったり
のレイアウト・色彩・フォントのホームページを自動的に作成する。
これならデザイナーもプログラマーも要らないよ。
0838デフォルトの名無しさん2016/05/06(金) 00:15:07.60ID:wPJwNWAJ
でもセキュリティーガバガバらしいやん
ちょいとヘマしたらえらいことになるで
0839デフォルトの名無しさん2016/05/06(金) 06:15:48.85ID:V/xhXv/O
セキュリティーとか気にする様な奴らがデザインやってるとは思えないっす
0840デフォルトの名無しさん2016/05/06(金) 10:57:31.22ID:u5m6Baf4
>>834
もう少しで100万件に届きそう
DBバックアップはcronで定期的に実行してるけど、この大量のsqlをリストアしたことないから何かあったら不安…

>>835
ほんと中途半端に覚えたから基礎ができてないんだよね
見た目はきちんと動作してるから今のところ問題は起きてないんだけど
あとサーバーのことはよくわからないからバカ高いマネージド専用サーバーで運用してる

>>838
そろそろセキュリティについて勉強始めようかな

ちなみにこれからは機能をどんどん追加していく感じ
0841デフォルトの名無しさん2016/05/06(金) 12:12:36.45ID:mFPgLSt9
>>840
うちは1テーブルで800万件くらい扱ってるけど今のところ問題ない。
フルバックアップもできてるし。

ところで、マネタイズが難しいんだけど決済手段は何を使ってる?
銀行振込とかペイパル?
0842デフォルトの名無しさん2016/05/06(金) 12:33:20.13ID:f2yhxO8i
おれもそこが知りたい

どうやって集金してるの?
詳しく教えてほしい
0843デフォルトの名無しさん2016/05/06(金) 12:38:09.97ID:n/L4oBy1
自分で調べろ
0844デフォルトの名無しさん2016/05/06(金) 12:49:24.67ID:u5m6Baf4
>>841
ペイパルだよ
ペイパルもきちんとプログラムしてサイトの中で決済ボタンも作って、ペイパルサイトで決済したら
自分のサイトに自動で戻ってデータベースに支払い済みが登録されるようになってる
ただし実際に決済されたかはきちんと確認しないとダメ
これも確認できる方法がペイパルに用意されてるんだけど面倒だからそこまではやってない
0845デフォルトの名無しさん2016/05/06(金) 12:53:39.02ID:EDudo8XY
決済の前にセキュリティの方をやるべきじゃないの?
商用環境ならぶん殴られるレベルだな
0846デフォルトの名無しさん2016/05/06(金) 13:01:57.54ID:u5m6Baf4
ちなみにSSLってなんですか?レベル
知ってはいるんだけど設定方法知らない
だけどお客様から文句言われたことないんだよなあ…
0847デフォルトの名無しさん2016/05/06(金) 13:03:50.03ID:mFPgLSt9
>>844
ありがとう。結構、高度な処理っぽい。
作成期間も半年かけてるし、実はしっかりしたWebアプリなんだろうね。
0848デフォルトの名無しさん2016/05/06(金) 13:18:17.88ID:3wMS96JF
初めましてのPHP初心者です
PHPによる2chへの書き込みをテストしています

【テスト】PHPで2chにHello Worldを書き込む 2
http://tamae.2ch.net/test/read.cgi/php/1362790136/
↑ここへの書き込みは成功しましたが、

競馬
http://yomogi.2ch.net/keiba/
↑この板の任意のスレへの書き込みが失敗します

2ch内で板によって仕様が異なるということなのでしょうか
その辺りをご指導、説明しているサイトの紹介などお願いします


なおソースは↓を修正して使っています
http://tamae.2ch.net/test/read.cgi/php/1362790136/575-576
0849デフォルトの名無しさん2016/05/06(金) 13:18:20.08ID:u5m6Baf4
>>847
うーん、ペイパル自体は開発用アカウント(管理者、ユーザー)も簡単に作れるし
仕様読むのはかなり面倒だけど一度理解できたら、ああそうなんだって感じだったよ。
ちなみにペイパルの前はWebPayってやつ使おうと思ってWebPayの中の人に聞きながら作ってたけど
LINEに吸収されたからなんだかんだいってペイパルのほうがいいんだなって思った。
認知度も高いしね。
0850デフォルトの名無しさん2016/05/06(金) 13:27:22.61ID:mFPgLSt9
>>849
サンクス
前に挫折したけどもう一回やってみる!
0851デフォルトの名無しさん2016/05/06(金) 13:42:25.89ID:n/L4oBy1
>>848
そもそもAPIが変更になってからそういうの2chから許可もらったやつじゃないと
無理になったんじゃなかったっけ?
0852デフォルトの名無しさん2016/05/06(金) 13:43:25.22ID:n/L4oBy1
>>846
やべぇなそれ
0853デフォルトの名無しさん2016/05/06(金) 14:14:59.50ID:f2yhxO8i
>>849
ペイパルと連携してる部分を晒しても問題ない範囲でソース書いてほしい。参考にしたい。
0854デフォルトの名無しさん2016/05/06(金) 14:21:23.51ID:3OzCd6+q
なんでド素人を自認してるやつに質問しとんねんw
0855デフォルトの名無しさん2016/05/06(金) 14:25:00.20ID:n/L4oBy1
>>853
こんなところで訊いてるお前みたいな無能には無理
0856デフォルトの名無しさん2016/05/06(金) 14:29:33.44ID:u5m6Baf4
>>853
ソースはぐちゃぐちゃだからw
ユーザー登録部分に入り組んでるんだけど
それよりペイパルのサンプル見たほうが確実だよ
0857デフォルトの名無しさん2016/05/06(金) 14:34:15.04ID:u5m6Baf4
ちなみに業界からはスーパープログラマーって言われてる。
実際にはスーパー(ド素人)プログラマーなんだけど、見た目や動作はたしかに法人用システム並に動いてるから
作れない人にはすごいと思われてるんだろうなあ。
あとこの規模なら複数人で作るところを一人で作ったってのがあるかな。
いちおうシステム開発は引っ張りだこだよ。
0858デフォルトの名無しさん2016/05/06(金) 14:35:47.23ID:n/L4oBy1
商用サービスで使われてるプログラムのソースが実は2chですとかアホかと
無能でもはり合わせで何となくできた気になってる脆弱性maxなwebサービスが
巷には溢れてるわけだ
おそろしい世の中だな
0859デフォルトの名無しさん2016/05/06(金) 14:42:03.75ID:QtueP+kp
>>851
APIがどーたらこーたらで面倒なのは.dat通信とログインしての書き込み
ブラウザで普通にできてることは特に何も考えず.phpで出来て当然っしょ
0860デフォルトの名無しさん2016/05/06(金) 14:44:34.66ID:u5m6Baf4
どうせでかい企業が作ったってお漏らしするんだし、適当に集めた派遣プログラマーがぐちゃぐちゃにしたコードで
どこでバグでてるのかもわからんようなのたくさんあるよね

それならそこそこ動いてて見た目バッチリなアプリ作って問題出たらゴメンナサイ、バレなかったらほったらかし
でいいんじゃない?って思ってる
0861デフォルトの名無しさん2016/05/06(金) 15:00:02.47ID:f2yhxO8i
>>856
そっか、残念。

客側は毎回クレジットカード番号を入力してサービス料金を払うの?
「3000円のコースを支払う」みたいなボタンを押すと決済されるようになってるの?
0862デフォルトの名無しさん2016/05/06(金) 15:00:07.11ID:8xAviQH0
本職デザイナーで>>826>>840>>844までやってりゃ十分だろ
言語が手段にすぎないことを知ってる勝ち組
どう作るかより何を作るかだよ
0863デフォルトの名無しさん2016/05/06(金) 15:03:27.57ID:f2yhxO8i
>>856
>>844で書いてたね、ごめん。
0864デフォルトの名無しさん2016/05/06(金) 15:05:30.79ID:u5m6Baf4
>>861
俺の場合は定期購読って奴だから一回申し込みすれば毎月自動的に引き落としになるようにしてる
解約するのもサイトにボタン作ったほうがいいんだけど、なるべく解約させないためにユーザーが自分のペイパルから解除するか、こちらが管理画面から解除するかにしてる。

どっちにしろ本当に支払ってるか、決済されてるかは自分で確認しないといけないんだよね。
それも自動的に確認する機能が法人向けの有料版にたしかあったはず。
俺は面倒だからやってないけど。

あと毎月確認するの嫌だから月額やめて半年か年払いにしようと思ってる。
0865デフォルトの名無しさん2016/05/06(金) 15:14:38.76ID:n/L4oBy1
ID:u5m6Baf4 は保険入っとけよ
0866デフォルトの名無しさん2016/05/06(金) 15:25:39.20ID:0hFielSC
>>840
> もう少しで100万件に届きそう
> DBバックアップはcronで定期的に実行してるけど、この大量のsqlをリストアしたことないから何かあったら不安…
全然たいしたことないよ。

ちなみに、全部で100万レコード以上ある手元のデータベースをダンプしたら4秒で終了。
$ time pg_dump hoge > hoge.sql
real 0m4.150s

hoge.sql: データベース定義+1行1列のデータ+α

$ wc -l hoge.sql
1391681 hoge.sql

リストアはちょい時間かかるけど40秒ちょいで終了。
$ createdb fuga
$ time psql fuga < hoge.sql
real 0m41.915s
0867デフォルトの名無しさん2016/05/06(金) 15:39:27.25ID:f2yhxO8i
>>864
サーバー代は月々いくらくらい?
0868デフォルトの名無しさん2016/05/06(金) 15:42:10.91ID:QtueP+kp
dbのダンプ/リストアが怖い状況ってリレーションが複雑で主キーとあいまってややこしくなる場合じゃないの
もしただの馬鹿でかいcsvな内容だったら確実に早くリストアできて当然
0869デフォルトの名無しさん2016/05/06(金) 15:44:47.76ID:QtueP+kp
連投すまんけどついでに>>866
それインデックス再構築の時間入ってないんじゃね
0870デフォルトの名無しさん2016/05/06(金) 15:57:16.60ID:0hFielSC
>>868
> dbのダンプ/リストアが怖い状況ってリレーションが複雑で主キーとあいまってややこしくなる場合じゃないの
ダンプしたものをそのまま読めないようなRDBMSなんてないと思うが。

>>869
$ grep 'CREATE TABLE' hoge.sql | wc -l
112

$ grep 'CREATE INDEX' hoge.sql | wc -l
48
0871デフォルトの名無しさん2016/05/06(金) 15:59:19.60ID:u5m6Baf4
>>866
>>868
ありがとう、安心した!

>>867
3万くらい
0872デフォルトの名無しさん2016/05/06(金) 20:28:12.19ID:es3Ss1KG
オレはぶっちゃけグラマなので
DBのリストアとかやった事ないからよくわからん…
レプリケーションもわからん…
0873デフォルトの名無しさん2016/05/06(金) 20:36:44.30ID:HlF6I7nV
でもテキストファイルの扱いならまかせてや…
0874デフォルトの名無しさん2016/05/06(金) 22:01:14.66ID:MaHvIWJS
>>826
ある分野の管理ツールという事だけれど月額3000円からって結構高めだよね。
もっと低価格や無料で類似のサービスなどは無いの?
そう言う心配が無い非常にニッチな分野なの?
0875デフォルトの名無しさん2016/05/06(金) 22:31:29.99ID:lGw6lAiu
うまく商売にして稼いでるのが羨ましいのはよくわかる(おれも羨ましい)が、いい加減スレチ過ぎるだろう。
そもそも儲け方を根掘り葉掘り聞くなんて浅ましいことは自重しろって。
0876デフォルトの名無しさん2016/05/06(金) 22:45:06.38ID:lqFn8ml+
>>872
マだからといって避けないで、そのうちどぞ。
やれることかなり広がるし、むしろDBありきで設計するくらいには考え方変わるよ。
0877デフォルトの名無しさん2016/05/07(土) 08:48:37.87ID:Tfh/0iZx
片山博文って誰?w
0878デフォルトの名無しさん2016/05/07(土) 15:35:22.02ID:rAsmYtub
あーあ、止まっちゃった…

喧嘩ならいざ知らず、盛り上がってる時に水さすもんじゃ無いと思う。
所詮2chなんだから型にはまらない方が
参加者も運営も嬉しいんじゃ無いかな?
0879デフォルトの名無しさん2016/05/07(土) 15:37:58.37ID:rAsmYtub
PHPなんだから、型にこだわらない方がいいんじゃ無いかな?

と、言うべきだった…

まあ、PHPだからこそ型を意識しなければいけないんだけど。本当は。
0880デフォルトの名無しさん2016/05/07(土) 16:04:46.21ID:pBBnydGZ
>>875
覚えてサイト作るの目指してるヤツが多いのに、スレチっておまえバカ?
0881デフォルトの名無しさん2016/05/07(土) 16:08:06.95ID:6IXt9uZe
ビジネスモデルと言語は関係ないからね
0882デフォルトの名無しさん2016/05/07(土) 16:08:07.77ID:1XEkqAZJ
いやスレチなのは間違ってないだろw
下手に水をさすのはスレチより悪いとは思うが
0883デフォルトの名無しさん2016/05/07(土) 16:09:41.25ID:pBBnydGZ
>>882
じゃあまたゴミスレにもどってどうぞ。
0884デフォルトの名無しさん2016/05/07(土) 16:17:38.94ID:rCqt5XGU
ビジネスがうまいやつはただでライバルを増やすような馬鹿なことはしない
ここで情報入手しようと必死な姿が浅ましい
0885デフォルトの名無しさん2016/05/07(土) 16:23:10.28ID:pBBnydGZ
>>884
単純に面白いだろ、おまえのゴミみたいな投稿とは比較にならん。まぁスレチだけどな。
まぁ肩の力抜けよ。
0886デフォルトの名無しさん2016/05/07(土) 16:26:59.32ID:6IXt9uZe
面白かろうが何だろうがスレチには変わりないんだから落ち着きなさいな
0887デフォルトの名無しさん2016/05/07(土) 16:32:52.54ID:pBBnydGZ
>>886
スクリプトデリミタの使い方も間違ってるペチパーのウンコみたいな質問もうイヤですよ。
実際に運用してるヤツの話しが聞けて楽しかったの!!

>>884
完成まで作れない人が9割だから。君も含めて。まぁオレも含めてだがな。
少し落ち着けやゴミが。
0888デフォルトの名無しさん2016/05/07(土) 16:35:19.01ID:mzfrj+Ng
くだ質だからなぁ・・・・

あと実際設計/コーディングする人間は運用にはあまり携わらないし・・・・
0889デフォルトの名無しさん2016/05/07(土) 16:41:09.94ID:rCqt5XGU
>>887
落ち着いてないのはあなたでしょう
0890デフォルトの名無しさん2016/05/07(土) 16:45:30.27ID:8kiHQWJT
ID:pBBnydGZ←こいつが一番面白いw
0891デフォルトの名無しさん2016/05/07(土) 16:52:11.96ID:oJFlbAHv
だいたい >>824 に聞きたいところは PHP と全く関係無いところだし、
その聞きたいところには答えるつもりも無いんだから引っ張っても無駄だということに早く気付け。
0892デフォルトの名無しさん2016/05/07(土) 16:52:53.67ID:YVzhxVlg
なんか「レベル高い話がしたい」君のにおいがする気が
0893デフォルトの名無しさん2016/05/07(土) 17:05:25.08ID:37koFAHB
PHPDocで可変引数はどうやってコメント書けばいいの?
0894デフォルトの名無しさん2016/05/07(土) 17:12:34.25ID:mzfrj+Ng
>>893
https://manual.phpdoc.org/HTMLSmartyConverter/HandS/phpDocumentor/tutorial_tags.param.pkg.html
0895デフォルトの名無しさん2016/05/07(土) 17:29:25.52ID:37koFAHB
>>894
ありがとう
これでうちのおばあちゃんが作った関数にコメントがつけられるよ
0896デフォルトの名無しさん2016/05/08(日) 01:52:01.39ID:p2bQRvkc
$leap_flg = date('L');
0897デフォルトの名無しさん2016/05/08(日) 01:53:21.41ID:p2bQRvkc
>>896のつづきですけど
って$leap_flgにはどのような値がはいっているのですか?
if文の条件になにいれるか不明なんですけど…
0898デフォルトの名無しさん2016/05/08(日) 02:08:56.42ID:trCfsxUy
ダンプしろハゲ
0899デフォルトの名無しさん2016/05/08(日) 03:10:25.86ID:YMoJEced
>>896
http://php.net/manual/ja/function.date.php
ダンプする前にマニュアルを見よう。
0900デフォルトの名無しさん2016/05/08(日) 09:52:10.38ID:T8bQ9WHB
mysqlのtime型から検索する機能で、
H:i〜H:iの間のデータをbetweenで抽出するという機能を作っています。

検索フォームからH:iを2つ取得できたものの、そこからどう文字列に(例えば"15:00")に変換すればよいのかわかりません
調べて色々試してみたのですが、いっこうに成功しませんでした。

どなたかお願いします。
0901デフォルトの名無しさん2016/05/08(日) 09:54:25.55ID:T8bQ9WHB
解決しました
0902デフォルトの名無しさん2016/05/08(日) 11:47:43.97ID:H8xAg3Jw
2分w
0903デフォルトの名無しさん2016/05/08(日) 12:07:09.79ID:n3Nh2GSe
何なんだろうね
質問を書いてる時間がもったいない
質問を書いてる間に頭が整理されて分かっちゃうこともあるけど
0904デフォルトの名無しさん2016/05/08(日) 12:53:00.87ID:iQ9cFpLd
>>903
それ大事
テディベアとコードレビューするやつな
0905デフォルトの名無しさん2016/05/08(日) 14:16:50.68ID:WiyOtAwJ
たしかにまれによくある。
ベアプログラミング(テディベア効果)というのか。
ペアプログラミングではなくて。
0906デフォルトの名無しさん2016/05/08(日) 18:22:07.68ID:H8xAg3Jw
と、いうことは、まぁ、このスレが何らかの役には立ったのだろう。
0907デフォルトの名無しさん2016/05/08(日) 19:25:24.84ID:eiW4bgLe
中身が空で適当な要素数の配列を確保するのはどうするのでしょう?
Cで書くと
T *p = calloc(n, sizeof(T));
みたいな感じのこと。
とりあえず
$a = array_fill(0, n, NULL);
って書いてみたんですが。
0908デフォルトの名無しさん2016/05/08(日) 19:51:53.55ID:yxmWn5Ei
それでいんでね?専用の構文ないし
必ずしも前もって配列長明示して確保しなくてもいいと思うけど
foreach( $array = array_fill(0, 10, null) as $key => $value ) $value = $source_data[$key + 5];
とかするためかね
0909デフォルトの名無しさん2016/05/08(日) 20:39:41.14ID:H8xAg3Jw
か、可読性が…
09109072016/05/08(日) 21:52:16.40ID:eiW4bgLe
ありがd。

実は$aは配列の配列で、
if (!key_exists($k, $a[$i])) ...
みたいな処理をするので、あらかじめ$a[$i]が存在していて欲しかった、っていう感じです。
まぁ警告出るだけで予め配列作っておかなくても動くんだけれども。
0911デフォルトの名無しさん2016/05/08(日) 21:57:51.62ID:XQojpZYz
>>910
これでどう
if(!isset($a[$i][$k]))

多少判定条件が違うので使えないケースもあるけど、array_key_exists より isset の方が速いよ
09129072016/05/08(日) 23:48:43.60ID:eiW4bgLe
>>911 あぁ、これで全然いいかも。
まだPHP使いだしてひと月くらいなんで、いろいろと助かります。
ありがとう。
0913デフォルトの名無しさん2016/05/10(火) 07:28:39.61ID:ZEfFfe+X
PHPでツイッターIDとパスを使って投稿したいんだけど、どうしたらいい?
0914デフォルトの名無しさん2016/05/10(火) 09:33:54.84ID:yhkvT0H8
見当がつかない質問したところで作れるわけがないじゃん
0915デフォルトの名無しさん2016/05/10(火) 10:16:53.40ID:Mp7ZOf2g
>>913
Twitter OAuth
https://dev.twitter.com/oauth
0916デフォルトの名無しさん2016/05/10(火) 10:21:56.39ID:ZEfFfe+X
oauth認証しないとやっぱり駄目か
IDとパスだけで呟けたらよかったんだけど
0917デフォルトの名無しさん2016/05/10(火) 12:35:28.76ID:2gjhVXxt
得体の知れないサーバ管理者に生パス渡すわけにいかんからな
0918デフォルトの名無しさん2016/05/10(火) 17:22:35.71ID:/c+E/E1d
>>913
そう言うのって、初心者がよく分からないまま投稿して無限ループで無数に投稿したなどの事故は起こらないのかな?
0919デフォルトの名無しさん2016/05/10(火) 17:36:38.58ID:3P/I+6gp
同じ内容を連続で投げると蹴られるよ
しょうがないから時刻を入れてるw
0920デフォルトの名無しさん2016/05/10(火) 18:45:09.17ID:matDD0JO
もう、本当にPHPerと一緒に仕事するの嫌になった。

public function hoge(){
 $request_posted_flg = false;
 $my_request_para_txt = $this->getMyIns();
 $my_url_query_string = $my_request_para_txt;
 if(!$request_posted_flg){
  $para = "req_id";
  foreach($my_url_query_string as $key => $val){
   if($key == $para){
    $my_target_para = $my_url_query_string[$key];
   }
 }
 $this->setMyTargetPara($para);
 return $request_posted_flg;

}

みたいなコードが数千行に渡って書いてある。
これ書いたやつ人間じゃない。多分、ものすごく出来の悪いコンパイラ。
どうしてこう、PHPerっていうのは頭おかしい奴ばっかなんだ?
0921デフォルトの名無しさん2016/05/10(火) 18:45:47.85ID:matDD0JO
$this->setMyTargetPara($my_target_para);

の間違い…
0922デフォルトの名無しさん2016/05/10(火) 18:47:59.09ID:p4MwWBVW
数値を要素としている配列が2つ有り
要素内に同じ数値が存在するか判別するいい方法って何かない?
0923デフォルトの名無しさん2016/05/10(火) 19:06:13.86ID:XIhsDrnx
これでいいの?
$a = [1, 3, 5];
$b = [2, 3, 6];

if (array_diff($a, $b) !== $a) {
echo “同じ数字が存在してまっせ”;
}
0924デフォルトの名無しさん2016/05/10(火) 19:09:55.07ID:XIhsDrnx
あ、array_intersectでいいか
まぁそのへん使って
0925デフォルトの名無しさん2016/05/10(火) 19:39:13.48ID:yhkvT0H8
>>920
意味もなくgetterとsetter使ってるから?
つうかよくわからんがそれ条件文意味あるんか?
常にrequest_posted_flgはfalseじゃないんけ
0926デフォルトの名無しさん2016/05/10(火) 20:03:10.51ID:matDD0JO
無いよ全く。
変数も片っ端から意味無い。
普通に書いたら300行くらいで済むところを、
そういう意味の無いコードで1000行くらいに膨れ上がらせてる。
0927デフォルトの名無しさん2016/05/10(火) 20:03:20.13ID:p4MwWBVW
>>924
ありがとうございます。
できました。
0928デフォルトの名無しさん2016/05/10(火) 20:15:34.24ID:IOgaEvdb
行数水増ししなきゃいけない糞な会社にお勤めなんじゃねーの
0929デフォルトの名無しさん2016/05/10(火) 20:18:48.54ID:GH5TUzj8
ソースレビューってしてないのか
0930デフォルトの名無しさん2016/05/10(火) 20:19:10.53ID:2gjhVXxt
>>920
何が悪いのかイマイチわからん
いまのうちのプロジェクトよりだいぶマシだわ
0931デフォルトの名無しさん2016/05/10(火) 21:42:22.65ID:TeiLsP5R
>>930
マシかもしれないが、改善点はいくつも見つかると思うんだけど
0932デフォルトの名無しさん2016/05/10(火) 21:50:55.52ID:2gjhVXxt
ああ、これで済むって話か。
$this->setMyTargetPara($my_request_para_txt["req_id"]);
変数名のつけ方やインデントがまともだからウチよりマシと思ってしまった。
0933デフォルトの名無しさん2016/05/10(火) 23:07:40.32ID:/u9NXzco
>>920
コードレビューしないのが問題
こんなん書いたやつにどういう意図なのか問い詰めるわ
0934デフォルトの名無しさん2016/05/10(火) 23:35:31.66ID:oz2wxhed
やヴぇな
0935デフォルトの名無しさん2016/05/10(火) 23:58:07.07ID:VZevxVLJ
やべえけどPHPer特有の問題じゃないだろ
そういうksみたいなコード書くのはJavaerのほうが多い
0936デフォルトの名無しさん2016/05/11(水) 07:48:55.06ID:hUyymvDA
>>928
もちろん、ステップ数で料金が決まる、などというアホなことはしていない。
そして、そのクソコードを別の人間がメンテナンスするる…

>>929、933
部署の長が「コードなんて見ませんよ」と平気で言う会社だからね。

>>935
それは確かにある。PHPは幼稚なコードが多いが
Javaは浅い知識だけはあるんだが使い方を間違ってるクソコードが多い。
PHPにはJavaerもいっぱい流れこんでるから、もう、数多のジャンルのクソコードが揃い踏みしてる。

もうすぐ契約切れる予定だけど、あとからあとから新鮮なクソコードが流れ込んできて
本当に頭おかしくなりそう。
0937デフォルトの名無しさん2016/05/11(水) 07:50:19.88ID:ZmjTdhIX
自分のコードだけはクソじゃないという前提
0938デフォルトの名無しさん2016/05/11(水) 07:52:17.51ID:hUyymvDA
気が重いけど出勤する…

どうもこっちのスレ的ネタだった
ttp://echo.2ch.net/test/read.cgi/tech/1429279230/l50

スレチ、すいませんでした…
少し気が晴れました…
0939デフォルトの名無しさん2016/05/11(水) 07:55:55.21ID:hUyymvDA
>>937
言っとくけど、オレのコードは本当に綺麗だよ。
お前が見たら一目惚れして結婚申し込むこと間違いない。
0940デフォルトの名無しさん2016/05/11(水) 09:07:29.65ID:uMvBRYWE
まともなプログラマーが2chに愚痴書いてるわけがない。
0941デフォルトの名無しさん2016/05/11(水) 17:54:38.12ID:0wDfvzAN
Laravelerのワイ、高みの見物
0942デフォルトの名無しさん2016/05/11(水) 18:44:53.48ID:S5nTUzj1
laravel ってリンク切れ多いサイトばかり
0943デフォルトの名無しさん2016/05/11(水) 19:11:15.31ID:hUyymvDA
>>940
本当にそう思ってるならお前が周り見えてなさすぎなだけ。

>>942
YouTubeの「〜てみました」系の奴らなんかマトモな設定してねーのよ
Nginxもエラー画面出まくりじゃん。
0944デフォルトの名無しさん2016/05/11(水) 19:43:45.56ID:kvpM6w4K
PHPそこそこできるようになったからmySQLチャレンジしてみたいんだけど
なんとか起動できたけどそれ以降が全然できない
みんなどんな感じでSQL勉強した?
0945デフォルトの名無しさん2016/05/11(水) 19:49:42.80ID:WoDhKz74
気付いたらできるようになってた
0946デフォルトの名無しさん2016/05/11(水) 19:52:02.92ID:hUyymvDA
それ以降というと、具体的には?
0947デフォルトの名無しさん2016/05/11(水) 20:11:13.53ID:Qb9Kyo2I
>>944
これはSQLでは無理なんじゃないかっていう思い込みを無くすように意識していた時期はあった
あとはせっせと情報収集と実験の繰り返し
0948デフォルトの名無しさん2016/05/11(水) 20:34:35.14ID:H9B83Y6z
つーか、DB使ってやるような具体的なやりたいことを考えるのが先じゃね。
0949デフォルトの名無しさん2016/05/11(水) 20:35:42.75ID:hUyymvDA
しかし、PHPでストリングリテラルをシングルクオートで囲う馬鹿は、本当にどうにもならんな。
シングルクオートとダブルクオートの扱いがPHPでどうなっているか知っていれば、
通常、シングルクオートなんかで囲うことはありえないんだが。

シングルクオートの方がコンマゼロゼロゼロ何秒かくらいは速いかもしれんが、
そんなの帳消しにするくらいデメリットが多すぎる。

意図してシングルクオート利用しなければいけないケースなんて限られてるんだから、
その時だけシングルクオート使えばいいだけで、
通常はダブルクオート使うのが当たり前なんだが、
要するに、違いが分かってない馬鹿が多すぎるということなんだろう。
0950デフォルトの名無しさん2016/05/11(水) 20:36:57.65ID:H9B83Y6z
>>949
デメリットってどんなこと?
0951デフォルトの名無しさん2016/05/11(水) 20:41:28.26ID:S3kH2EJT
>>949
俺はJavaラーだから好みでダブルクオート使ってた
PHP使うやつはシングルクオート使いが多くて嫌だなとは思ってたが
デメリットは正直よくわからん
0952デフォルトの名無しさん2016/05/11(水) 20:51:06.59ID:hUyymvDA
>>950

シングルクオート
create_link('test/' . $param['hoge'] . '/val1/' . $param['hage'] . '/val2/' . $param['moge'], $url . '?' . $sess_name . '=' . $sess_id);

ダブルクオート(strict)
create_link("test/{$param["hoge"]}/val1/{$param["hage"]}/val2/{$param["moge"]}", "{$url}?{$sess_name}={$sess_id}");

ダブルクオート(loose)
create_link("test/$param['hoge']/val1/$param['hage']/val2/$param['moge']", "$url?$sess_name=$sess_id");

何が変わったか、一目瞭然だろ? PSRで許容される一行の文字数知ってるか?

シングルクオートは変数展開できないから . で文字列を結合しなければならない。
一番上みたいな例で、一目で、どこまでが1つのパラメターで、どこから別のパラメターに切り替わったのか判別できるか?

シングルクオート使うバカが居ると、コードの隅々に渡って間違い探しと対して違わないような事しなきゃいけないような自体になるんだよ。
視力がいくつあっても足らんわ。
0953デフォルトの名無しさん2016/05/11(水) 20:56:47.08ID:e/4BOK4y
>>952
PSRの一行の制限はハードリミットを規定してないし, 単に書き方や慣れの問題だな
コーディング規約でどっちかに決めてそれに従えばいいだけ
0954デフォルトの名無しさん2016/05/11(水) 20:57:47.95ID:hUyymvDA
>>953

そう思うのなら、お前は一生間違い探しやってろ。
オレは自分の眼のほうが大事だ。
0955デフォルトの名無しさん2016/05/11(水) 21:01:38.96ID:hUyymvDA
まぁ、どうせシングルクオートなんかつかってる馬鹿は
馬鹿すぎて、リテラルをスポットライトしてくれないクソエディタ使ってるんだろう。
だから、何が変わるのか全然理解できないのだと思う。
0956デフォルトの名無しさん2016/05/11(水) 21:03:29.97ID:9I7Ewr6L
変数展開を必要としないケースでデメリットを提示してくれると思ったらまさかのw
0957デフォルトの名無しさん2016/05/11(水) 21:05:12.55ID:S3kH2EJT
ほんとダブルクオートで統一してほしいね
php3時代は配列のキーを
ダブルでもシングルでも囲まないやついてさらに地獄だったな
0958デフォルトの名無しさん2016/05/11(水) 21:05:56.43ID:O2+YRvW5
シンクはc#の文字型みたいでキモイ
0959デフォルトの名無しさん2016/05/11(水) 21:06:47.25ID:9I7Ewr6L
機能が違うんだから統一する必要ないだろうにw
使い分ければいいんだよ
0960デフォルトの名無しさん2016/05/11(水) 21:07:18.39ID:UDwF5RQX
いかにも初心者らしい確固たる信念だねw
0961デフォルトの名無しさん2016/05/11(水) 21:08:35.17ID:H9B83Y6z
>>956
うん、まさかのだったな。

>>952
それはデメリットの一例だと主張してるのはわかったが、多すぎる他のデメリットはどんなこと?
変数展開の話なんて単純に使い分ければいいだけでしょ。
0962デフォルトの名無しさん2016/05/11(水) 21:09:15.80ID:e/4BOK4y
まさかそんなに強い宗教観をお持ちとは思わなかったわ・・・・
でもそれ俺に言うより職場のシングルクォート使いに言った方がいいんじゃね?
0963デフォルトの名無しさん2016/05/11(水) 21:10:20.95ID:hUyymvDA
>>956

なにがまさかのwなの?
頭おかしい馬鹿の笑いのツボはよくわからんな。
日本語も読解出来てないし。馬鹿はだまってればいいのに。
0964デフォルトの名無しさん2016/05/11(水) 21:16:10.69ID:hUyymvDA
>>959

面白いこと言うな、お前。

機能の違いは変数展開するかしないかって事はわかってると思うんだけど、
じゃあ、変数展開されると困るケースってどういう時だ?

そういうケースって、コード書いててどのくらいあるか思い出してみろよ。

変数展開して貰ったほうが有り難いケースがどのくらいあるか思い出してみろよ。

通常ダブルクオートで統一しといたほうが、サルが考えても合理的だろ。

↓ 以下サルどもの戯言
>いかにも初心者らしい確固たる信念だねw
>変数展開の話なんて単純に使い分ければいいだけでしょ。
>まさかそんなに強い宗教観をお持ちとは思わなかったわ・・・・
0965デフォルトの名無しさん2016/05/11(水) 21:17:50.80ID:H9B83Y6z
>>963
>シングルクオートとダブルクオートの扱いがPHPでどうなっているか知っていれば、
>通常、シングルクオートなんかで囲うことはありえないんだが。
違いを知っていれば、変数展開を必要としない文字列リテラルの表現にはむしろシングルクォートじゃないの。
速度も速いし、デメリットが無ければわざわざ遅いダブルクォートを強いる必要もないでしょう、*違いを知っていれば*。

つーかシングルクォートがそんなに憎いなら、var_export の出力仕様の変更を要求しといたらいかが?
0966デフォルトの名無しさん2016/05/11(水) 21:18:07.36ID:hUyymvDA
だから前の方に書いたんだよ。PHPerは馬鹿ばかりだって。

わざと変なコード書いてメンテナンスの時間をもりもりと膨らませる馬鹿ばっかなんだもん。
なんかしらんけど、必至に挙げて馬鹿晒すんだから、本当にPHPerの馬鹿さ加減にはあきれるわ。
0967デフォルトの名無しさん2016/05/11(水) 21:19:01.00ID:hUyymvDA
>違いを知っていれば、変数展開を必要としない文字列リテラルの表現にはむしろシングルクォートじゃないの。


お ま え は 日 本 語 の 勉 強 を 一 か ら や り な お せ
0968デフォルトの名無しさん2016/05/11(水) 21:20:19.71ID:e/4BOK4y
NG推奨ID:hUyymvDA
0969デフォルトの名無しさん2016/05/11(水) 21:20:28.95ID:hUyymvDA
ID:H9B83Y6z

こういう、日本語が理解できない馬鹿がいるのも、PHPerの特徴です。
0970デフォルトの名無しさん2016/05/11(水) 21:21:31.39ID:H9B83Y6z
なんだろ、晩になっておくすりが切れちゃったのかな
0971デフォルトの名無しさん2016/05/11(水) 21:21:46.00ID:hUyymvDA
アホはNGしてろ。

>意図してシングルクオート利用しなければいけないケースなんて限られてるんだから、
>その時だけシングルクオート使えばいいだけで、

最初っから言ってる事も理解できないアホばっかなんだから。
0972デフォルトの名無しさん2016/05/11(水) 21:22:36.76ID:hUyymvDA
>>970

うん、おまえがな。本当に頭わるそうだな、お前。
0973デフォルトの名無しさん2016/05/11(水) 21:23:42.15ID:UDwF5RQX
ID:hUyymvDA←日本語が理解できない馬鹿なPHPer
0974デフォルトの名無しさん2016/05/11(水) 21:23:59.64ID:H9B83Y6z
>>971
シングルクオート利用*しなければいけない*ケースってどんなの?
0975デフォルトの名無しさん2016/05/11(水) 21:24:17.83ID:hUyymvDA
まだageでアホが頑張ってるよ

>>973

論拠は?
0976デフォルトの名無しさん2016/05/11(水) 21:25:31.37ID:hUyymvDA
>>974

>シングルクオート利用*しなければいけない*ケースってどんなの?

は? 本気で聞いてるのか? お前はほんとうの馬鹿なのか???

これがアホなPHPerの実態なんだよな…
0977デフォルトの名無しさん2016/05/11(水) 21:26:20.46ID:H9B83Y6z
>>976
バカ認定してくれていいから教えてくれよ。
あと、多すぎるデメリットの他の例もな。
0978デフォルトの名無しさん2016/05/11(水) 21:26:29.29ID:hUyymvDA
ちょっと、ID:H9B83Y6z こいつの頭が弱すぎる…

さすがに呆れ返った。
0979デフォルトの名無しさん2016/05/11(水) 21:27:56.12ID:e/4BOK4y
そういえば, Mcrypt関数よりOpenSSL関数が推されてる感があるんだけど, OpenSSL関数で指定した暗号アルゴリズムのキー長を得る方法ってある?
Mcryptならmcrypt_get_key_sizeで取得出来るけど・・・
0980デフォルトの名無しさん2016/05/11(水) 21:28:47.71ID:hUyymvDA
あのな、ダブルクオートは強制的に変数展開されちゃうんだよ。

だからな、

例えば、password_hash()とか使ってハッシュ作るとするだろ?

$2y$07$BCryptRequires22Chrcte/VlQH0piJtjXl.0t1XkA8pw9dMXTpOq

こういう文字列つくられるだろ?

これ、ダブルクオートで囲ってストリングリテラル定義したら、何が起こると思う?

そのくらいわかってくれよ、本当に。
0981デフォルトの名無しさん2016/05/11(水) 21:32:28.63ID:hUyymvDA
ID:H9B83Y6z はさ、ブラウザの向こうの人が自分とは全然レベルが違うこともいっぱいあるんだって事くらい、
いい加減理解したほうがいいよ
0982デフォルトの名無しさん2016/05/11(水) 21:34:13.61ID:H9B83Y6z
>>980
エスケープって知らないのかな?
ダブルクォートにもシングルクォートにも使った方が便利なケースはあっても使わなければいけないケースなんてないんだよ。
もう少し慣れてくるとよく分かると思うから、あとちょっとだ。がんばろう。
0983デフォルトの名無しさん2016/05/11(水) 21:35:30.90ID:UDwF5RQX
もう息切れかバカ?
0984デフォルトの名無しさん2016/05/11(水) 21:37:10.95ID:hUyymvDA
一生シコシコやってろ

駄目だ、こういう馬鹿ばっかだからPHPは本当にゴミコードばっかりになって本当に救いようがないや。
0985デフォルトの名無しさん2016/05/11(水) 21:37:20.22ID:e/4BOK4y
お前らも相手してないで僕の質問に答えてくださいお願いします
0986デフォルトの名無しさん2016/05/11(水) 21:39:37.26ID:hUyymvDA
必要もないのに、わざわざ手数増やすして可読性下げる馬鹿は、本当に救いようないな

ageてる馬鹿は煽りたいだけのプログラマでもないただのニートだから対して気にならんけど
ID:H9B83Y6z こいつは本当に頭がヤバ過ぎる。
0987デフォルトの名無しさん2016/05/11(水) 21:41:23.94ID:hUyymvDA
>>985

スーパープログラマの ID:H9B83Y6z に
凄まじく手数の多い解決策でも教えて貰ってろ、ハゲ!
0988デフォルトの名無しさん2016/05/11(水) 21:43:48.14ID:e/4BOK4y
次スレ行きます
0989デフォルトの名無しさん2016/05/11(水) 21:44:11.27ID:hUyymvDA
>もう少し慣れてくるとよく分かると思うから、あとちょっとだ。がんばろう。

うん、おまえがな。おまえはまだ、かなり頑張んなきゃいけないけど。
0990デフォルトの名無しさん2016/05/11(水) 21:47:39.85ID:UDwF5RQX
このスレはここから馬鹿(ID:hUyymvDA)専用になりました
0991デフォルトの名無しさん2016/05/11(水) 21:49:17.03ID:e/4BOK4y
次スレには持ち越さないのよー

【PHP】下らねぇ質問はここに書き込みやがれ 5 [無断転載禁止]©2ch.net
http://echo.2ch.net/test/read.cgi/tech/1462970810/
0992デフォルトの名無しさん2016/05/11(水) 21:50:18.55ID:hUyymvDA
レスを見返すと、
ID:H9B83Y6z こいつと ID:e/4BOK4y こいつは、本当に頭が悪すぎるな。

いかにもThe PHPer って感じだ。
0993デフォルトの名無しさん2016/05/11(水) 21:53:09.29ID:hUyymvDA
ID:e/4BOK4y なんか、お前の宗教で

979 : デフォルトの名無しさん2016/05/11(水) 21:27:56.12 ID:e/4BOK4y
そういえば, Mcrypt関数よりOpenSSL関数が推されてる感があるんだけど, OpenSSL関数で指定した暗号アルゴリズムのキー長を得る方法ってある?
Mcryptならmcrypt_get_key_sizeで取得出来るけど・・・

この問題解決してもらったらいいんじゃねぇの?
0994デフォルトの名無しさん2016/05/11(水) 21:56:00.50ID:Qb9Kyo2I
あら…宣言見落とし重複すみませぬ
0995デフォルトの名無しさん2016/05/11(水) 21:56:13.81ID:hUyymvDA
977 : デフォルトの名無しさん2016/05/11(水) 21:26:20.46 ID:H9B83Y6z
>>976
バカ認定してくれていいから教えてくれよ。


認定しなくても、ほんとうのバカでした。
0996デフォルトの名無しさん2016/05/11(水) 21:56:53.24ID:O2+YRvW5
話題変えようぜ
0997デフォルトの名無しさん2016/05/11(水) 21:57:48.41ID:0wDfvzAN
>>995
自分が基地外だってことにいい加減気付こうな
0998デフォルトの名無しさん2016/05/11(水) 21:57:56.68ID:e/4BOK4y
>>994
ドマ

今後のスレはワッチョイはどうすべきだろう?
あとテンプレも古いからちょっと更新したい感
0999デフォルトの名無しさん2016/05/11(水) 21:58:53.22ID:hUyymvDA
>>996
必要ないだろ、新スレ立ったんだし。ここは消化ゲームだ。

>>997
その基地外にからむのはお前みたいなバカくらいだって気づけよw
1000デフォルトの名無しさん2016/05/11(水) 21:59:55.94ID:hUyymvDA
PHPer 馬鹿ばっか確定!
10011001Over 1000Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。
life time: 59日 22時間 34分 23秒
10021002Over 1000Thread
2ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。


───────────────────
《プレミアム会員の主な特典》
★ 2ちゃんねる専用ブラウザからの広告除去
★ 2ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────

会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。

▼ プレミアム会員登録はこちら ▼
http://premium.2ch.net/
http://pink-chan-store.myshopify.com/
レス数が1000を超えています。これ以上書き込みはできません。