【PHP】下らねぇ質問はここに書き込みやがれ 4at TECH
【PHP】下らねぇ質問はここに書き込みやがれ 4 - 暇つぶし2ch2:デフォルトの名無しさん
16/03/12 23:27:11.25 j4grSBgs.net
◆質問用テンプレ
【OS名】CentOS
【PHPのバージョン】5.5
【連携ソフトウェア】MySQL ImageMagick
【質問内容】
◆質問する時の注意
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に関連リンクの公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
◆質問後の注意
・ 解決しなくても回答をもらった場合はお礼を言うこと。
(荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
◆回答者への注意
・ 誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
【その他諸注意】
・ SQL・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ

3:デフォルトの名無しさん
16/03/13 18:01:24.11


4: ID:9dwDTtH+.net



5:デフォルトの名無しさん
16/03/13 18:29:54.00 kS6/ihj4.net
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();

6:デフォルトの名無しさん
16/03/13 18:56:27.35 PAomMvms.net
>>4
とりあえずSQL文吐いてみ
というかそれ以前にテーブル名やらカラム名やらを外部入力で受け取るとか正気の沙汰じゃないから

7:デフォルトの名無しさん
16/03/13 19:23:29.33 kS6/ihj4.net
?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文を自動作成するソースが見つからなかったため、
この方法はひょっとして非推奨なのでしょうか?
手動でも出来なくはない量なのですが、メンテナンス性や可読性のために挑戦してみました。

8:デフォルトの名無しさん
16/03/13 19:31:11.69 GjqBj5dI.net
→に半角スペースはいらない。
$stmt = $pdo -> prepare($sql);
$stmt = $pdo->prepare($sql);

9:デフォルトの名無しさん
16/03/13 19:40:29.09 GjqBj5dI.net
スペースと中括弧を入れて変数を明確にする。
{$table} ({$clmname}) VALUES ({$valname})";

10:デフォルトの名無しさん
16/03/13 20:27:39.52 PAomMvms.net
>>6
PHPのバージョン, 利用するRDBMSとバージョン。
名前付きプレイスホルダで42000エラーが発生することがあった。
その方法で自動生成を実装するとSQLインジェクションのいい的だぞ
自前で実装するならDataMapperでSQLをカプセル化する手法を採るべきだし, テーブルの変更が頻繁ならテーブル生成とActiveRecordクラス生成を同時に行うようにすべき(手動では弄らない)
あんまりテーブル構造変更が頻繁ならそもそも設計を見直すべきだろうが
何れにせよテーブル名を外部入力から受け取るなんてのはまともな実装とは言えない

11:デフォルトの名無しさん
16/03/15 00:55:48.95 vuaCyoYo.net
俺一人で作るWebサービス、初フレームワークだけどFuelPHPでいい?

12:デフォルトの名無しさん
16/03/15 01:00:58.09 Yu+x6j+1.net
vimなら許可する

13:デフォルトの名無しさん
16/03/15 01:39:32.63 XuEL3mf6.net
フレームワークも自前で

14:デフォルトの名無しさん
16/03/15 12:00:31.00 vuaCyoYo.net
自前でやってたけどセキュリティ関係が不安…

15:デフォルトの名無しさん
16/03/15 17:35:49.44 M/KZKru9.net
半日程費やしたのですが、もしかしてwindows環境で64bit版のPHP7とapache2.4の組み合わせは無理ですか

16:デフォルトの名無しさん
16/03/15 18:52:30.10 6Fnnrg8u.net
ウェブブラウザで動くPHPのプログラムを、サーバーなしのWindowsソフトに変換する方法を教えてください。

17:デフォルトの名無しさん
16/03/15 19:07:10.09 Yu+x6j+1.net
.exeにするとして画面どうすんの引数授受どうすんのjavascriptどうすんの

18:デフォルトの名無しさん
16/03/15 19:47:53.75 0p8ka/G8.net
htaでいいじゃん
javascriptに変える必要があるけど

19:デフォルトの名無しさん
16/03/15 20:20:47.01 61Q7YxSP.net
PHPって5年後も開発されてると思う?

20:デフォルトの名無しさん
16/03/15 20:39:21.88 O2FU5DmM.net
Webの仕組みが大きく変わらないなら、残っているでしょうね

21:デフォルトの名無しさん
16/03/15 21:49:01.86 6tnBTcMG.net
>>15
Nabetapって言うのがある。
これはexeには変換できないけど自分のソフトのようには見せれる
>>16
CGIは元々コマンド引数ないよ。
Nabetap使うと画面出てPHPとjavascript使えるよ

22:デフォルトの名無しさん
16/03/15 22:15:38.87 bRerDqNG.net
PDO で LIKE を使った部分一致検索をするとき、値そのものに % なんかが含まれてる場合のエスケープってどうやってる?
泥臭く strtr かなんかでやるしかない?

23:デフォルトの名無しさん
16/03/15 22:26:34.65 Yu+x6j+1.net
addcslashesの第二引数に指定してやるとか
>>20
GETやPOST、それと考え方によっちゃcookieなんかも引数だろうというのはおいとくとしても
簡易Webサーバ&(IE利用の)簡易Webクライアントを「サーバなしのWindowsソフト」というのはどうなんだ
bcompilerって手もあるが

24:デフォルトの名無しさん
16/03/15 23:05:03.91 g1PqSQB6.net
>>21
str_replace を使ってる。
%は\\%に置き換える。_は\\_に置き換える。
strtr でも同様だろう。
他にやりようが有れば知りたいね。

25:デフォルトの名無しさん
16/03/16 00:52:15.32 YUxkRKsr.net
>>22
ネットつながってなくても動くんならWindowsソフトでいいんじゃない?

26:デフォルトの名無しさん
16/03/16 01:20:47.41 BN+Lq3m+.net
配列に対してある操作をする時って、
foreachとarray_*関数使うのはどっちが早いの?
例えばある配列から特定のキーと値だけを取り出す場合、
foreachで回して取り出すのか、array_searchで取り出すのかで処理スピードに差は出てくる?

27:デフォルトの名無しさん
16/03/16 01:22:13.55 W+A3q4l0.net
なぜ試さないのか

28:デフォルトの名無しさん
16/03/16 03:07:40.77 6pUenI4F.net
>>22
プロセス間通信にhttp使ったらそれはも�


29:、サーバなしのソフトとはいえないだろ的な?



30:デフォルトの名無しさん
16/03/16 09:42:43.04 31XCK0BE.net
そういえば毎回処理速度を計測するの面倒だけどみんなちまちま計測してるの?
俺は関数あればそっち使って、問題ありそうなら回してるって基準だけでやってる。
よほど大きなデータじゃなければいちいち計測なんかしてない。

31:デフォルトの名無しさん
16/03/16 10:44:00.47 Ny+vSnKw.net
普通は速度よりもコードの読みやすさを重視する
関数があれば関数を使う
速度が要件を満たさない場合にボトルネックの発見と改善のために計測する

32:デフォルトの名無しさん
16/03/16 11:31:36.06 .net
二重ループになってるところくらいしか計測しないっすわ
データベースはデータベースで計測出来るし

33:デフォルトの名無しさん
16/03/16 13:01:21.01 uy33h+7U.net
phpに詳しい方、教えてください
現在JavaScriptでロード時(リロード時)に特定のhtmlタグの値を書き換えるコードを使用しているのですが、訳あって使うことができなくなります
phpは使うことができるのですが、上記の動作と同じようなものは作成可能でしょうか
よろしくお願いします

34:デフォルトの名無しさん
16/03/16 16:57:24.73 WJMGp9Ue.net
詳しい状況がわからないけど、出来るかできないかといえば出来る。
ただそれがあなたの思ってるとおりのものなのかは保証できない。
最初から書き換えたものを使えばいいのでは?という疑問に答えてくれれば、
もっといいアドバイスが出来ると思う。

35:デフォルトの名無しさん
16/03/16 17:34:10.57 uyHrsjE6.net
>>31
PHPを使おうと使うまいと、普通のウェブブラウザを使う限りJavascriptは使えると思うが。
PHPはリロード痔にタグを書き換えるどころか、全く違うHTMLを出力することもできる。
常に全く同じHTMLを出力するだけなら、HTMLでよく、PHP使う必要ないでしょ。
だから、できると思うが、できるんですか?と聞いている人にできるかどうかは分からないよ。

36:デフォルトの名無しさん
16/03/16 19:56:53.04 08Q65Pye.net
いやこれは答えとしては出来ないだろうな
phpはhtmlそのものを書き換える事は出来るけどタグだけなら書き換え出来ない

37:31
16/03/16 20:02:58.06 uy33h+7U.net
>>32
>>33
お二方、レスありがとうございます
>>32
個人的なことなのですが、正確には書き換えるではなく削除するでした
htmlの話になるので割愛しますが、textareaタグの初期値をロード時に削除しないとplaceholder属性を使用することができないため、JavaScriptを使って削除していました。
本題の初期値を指定しなければいいという話になりますが、指定せずにいるとバリデーターにて構文エラーが出て気持ちが悪いという本当にただの個人事です。
>>33
おっしゃるとおりJavaScriptは使おうと思えば使えます。
使うことができないという理由はこちらもhtmlの話になるので割愛しますが、doctype宣言をhtml4.01からiso-htmlに切り替えるためということになります。
iso-htmlではJavaScriptを使用することができないため、phpでできないかと考えたしだいです。
お二方のアドバイスからphpでも可能と判断しました。
これから参考書を買ってきます。
レスをくださり、ありがとうございました。

38:デフォルトの名無しさん
16/03/16 21:26:32.52 bVagARgS.net
>>34
はあ?タグを書き換えられないだと? 意味不明。
#!/usr/bin/php
print "<html><body>";
if($tag_default){
print "<tag 1>";
}
else{
print "<tag 2>";
}
print "</body></html>";

39:デフォルトの名無しさん
16/03/16 21:34:35.21 /m4HeSgG.net
それPHPのコードじゃないw

40:デフォルトの名無しさん
16/03/16 21:38:12.31 08Q65Pye.net
>>36
上の人曰くロード時にjsを使ってタグを書き換えると書いてある
なら最初からタグを書き換えた"html"をphpで吐けばいいと言う話でそちらの例文通りなんだが
わざわざタイミング的にロード時に"タグ"を書き換えるというなら出来ないと

41:デフォルトの名無しさん
16/03/16 21:38:16.49 6pUenI4F.net
>>35
なんか不安になる流れだけど、言葉を借りながら書くと、ロード後に何か変更することはできないよ。

42:デフォルトの名無しさん
16/03/16 21:39:18.20 TswKIM7e.net
>>36
いやぁ>>35の要求は無理でしょ
バリデーションエラー抑制なんだから読まれるHTMLそのものにはtextareaの初期値が設定されている必要があり, onload或いはreadyイベント時にクリアする必要があるわけでしょ
クライアントサイドのお仕事なんだからサーバサイドではどうにもならん

43:デフォルトの名無しさん
16/03/16 21:42:40.76 1Ad9HLvE.net
>>40
form部品のidだかnameだかを動的に変えてやってcacheも無効にすればあるいは

44:31
16/03/16 21:54:52.61 uy33h+7U.net
みなさんレスをくださり、ありがとうございます。
荒らしてしまったようで申し訳ありません。
>>38
補足として、ロード時にタグを書き換えるではなく、ロード時にタグの値を削除するです。
before:<textarea>hoge</textarea>
after:<textarea></textarea>
紛らわしかったですね。ごめんなさい。
>>39
ロード後というよりはロード時なのでScript系でいうonload的な何かトリガーになる関数やメソッドがないかなと思いまして。

45:デフォルトの名無しさん
16/03/16 22:41:03.47 TswKIM7e.net
>>41
実装案あるなら詳しく知りたい

46:デフォルトの名無しさん
16/03/16 22:41:21.24 uh2T6fm3.net
>>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で受け取れるだろ。何言っているのか意味不明だよマジで。

47:デフォルトの名無しさん
16/03/16 22:54:25.28 TswKIM7e.net
>>44
何でCGIとか言い始めたのか分からんのだけど
で, >>35の要求はクライアントサイドでの書き換えだと読めるわけだし, それは>>42でもそうだということが分かるわけだけど, サーバサイドで何するの?

48:デフォルトの名無しさん
16/03/16 23:06:42.52 uh2T6fm3.net
>>45
「ロード時」って言っているんだからサーバーだろ。
というか、おまえのブラウザはPHPプラグインでもあるのかよ?
聞いたことねーぞそんなの。
どこに、ブラウザのクライアントサイドでPHP使っている奴がいるんだよ。
話にならんわマジで。
PHPはJavascriptみたいにクライアントサイドでは動くわけない。
そんな低次元な話を言いたいわけ?当たり前じゃん

49:デフォルトの名無しさん
16/03/16 23:13:18.12 TswKIM7e.net
>>42
とまぁサーバサイドからすればロード後もロード時もレスポンス送出後の話なので関与出来ない。
当然JavaScriptで操作するイベントハンドラもサーバ側からは全く見えない。

50:デフォルトの名無しさん
16/03/16 23:21:29.98 yE3DB2AT.net
つまりクライアントサイドPHPという方向

51:デフォルトの名無しさん
16/03/16 23:28:54.37 UiCQsACT.net
>>46
既にあるシステムの出力をいじりたいんだろ?
サーバサイドを自由にできるなら既存の出力処理に手を入れる話だろ。
PHP がどうとかいうレベル以前のことなわけで。

52:デフォルトの名無しさん
16/03/16 23:29:40.46 uh2T6fm3.net
まあ、ここにバカがいることから分かるように、
サーバーとの通信で成り立っているから、
クライアントだけで完結するプログラムで簡単にできることも、CGIとなると難しいんだよ。
できるんですか?って聞いているような人にはできないから諦めなよ。
バカにかかるとできることもできなくなる。
それはどんな言語でもどんなプログラムでも同じ。

53:デフォルトの名無しさん
16/03/16 23:42:41.54 UiCQsACT.net
バカは誰なんだかw
後半には同意だがな

54:デフォルトの名無しさん
16/03/16 23:50:29.07 t34HQYxh.net
>>31
>上記の動作と同じようなものは作成可能でしょうか
PHPでは無理。不可能。
>>42
>Script系でいうonload的な何かトリガーになる関数やメソッドがないかなと思いまして
PHPには無い。
だから参考書は買わなくていいぞ。

55:デフォルトの名無しさん
16/03/16 23:52:26.23 TswKIM7e.net
もうNGしちゃったけど, 見てて恥ずかしいから補足しておくと, 多くの場合PHPはmod_phpで実行されるからCGIではない
CGIとはCommon Gateway Interfaceの略で, Apacheならばmod_cgiやfastcgiモジュールがPHPインタプリタを叩いて実行するもの

56:デフォルトの名無しさん
16/03/17 00:04:39.60 SrjbyMW+.net
ちょっとこのひとすごすぎない ID:uh2T6fm3
> ロード後というよりはロード時なのでScript系でいうonload的な何かトリガーになる関数やメソッドがないかなと思いまして。
onloadはロード直後に動くイベントなのでロード後ですよ。
で、まぁ、PHPでそれは無理。

57:デフォルトの名無しさん
16/03/17 02:10:23.89 E3PmrLA5.net
>>54
Javascript使わないって言っているんだから、onload関係ないでしょ。
それはJavascriptなんだから。
リロードかかるということは、サブミットかかったってことだから、
サブミット(Enter)で、サーバー側に情報送って、サーバー側のPHPが処理すればいいの。
ロード後はそりゃ何もできないよ。
でも必ずロードされるんだから、ロード前に処理ができるでしょ。
Javascript使わないって言っているのに、ロード後、ロード後って気でも狂ったの?
Javascript使わないならJavascriptの処理はできないが、それは当然のことで君がわざわざ言う理由が分からん。
>>53
いつの時代の話してるんだよ。
もうPHPはCGIが普通になっている。
詳しい事情はよく知らないが、もうモジュール版はほとんど使用されてない。
今はモジュール版しか使えなかったレンタルサーバーも、逆にPHPはCGIでしか使えなくなってるよ。
PHP側がCGI推奨してモジュール版非推奨になったんじゃないの?
最新のPHPでもモジュール版ってあるの?

58:デフォルトの名無しさん
16/03/17 04:16:17.63 +pOWXd9M.net
>>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して値があるかチェックすりゃいい
その程度

59:デフォルトの名無しさん
16/03/17 04:21:00.26 RyL0OfbX.net
>本題の初期値を指定しなければいいという話になりますが、指定せずにいるとバリデーターにて構文エラーが出て気持ちが悪いという本当にただの個人事です。
textareaにそんなルールあったっけ?

60:デフォルトの名無しさん
16/03/17 04:30:16.22 +pOWXd9M.net
あー、一応56の補足
>>35のレスから、textareaで、placeholderを有効にするためにリセットしたい、と読んだからこう書いたけど



61:ハにtextareaじゃなくてinputでもinnerHTML/textContentsじゃなくてvalueの中身でも好きにしていいと思う それとDOMツリーが何基準で構成されてるか知らんからアレだけど、もしかしたら <textarea>ではなく<form>のほうの、あるいはnameだけでなくidも、変えてやる必要があるかもしれない >>57は自分も興味ある。iso-html使ったことない



62:デフォルトの名無しさん
16/03/17 04:42:48.51 RyL0OfbX.net
iso-htmlは知らないけど一応html5でやってきた
結果は問題なくパスしたし仕様書にも特に初期値入れろなんて書いてないような
(隅々まで読んだわけじゃないけど)
例にも初期値入れてないサンプルが書かれてるし不要なんだと思う
ただW3Cのバリデーターでは問題なかったけどAnother HTML-lintでは指摘されるね
どっちを信用するかといったら自分はW3Cを信用するけど

63:デフォルトの名無しさん
16/03/17 04:50:59.99 +pOWXd9M.net
え、バリデータが云々ってそういうことなのか
ユーザが入力した内容がリロード時に残ってそれが何かのチェックに引っかかるのかと勘違いしてた
だからhtmlの話なのか……>>56,58まったく意味ないわすまん iso-htmlじゃスクリプトの類使えないらしいしなあ

64:31
16/03/17 09:35:54.48 7bUuFC4K.net
おはようございます。
みなさん沢山のレスをくださり、ありがとうございます。
>>47
関与できないのですか
phpはサーバーサイドで動くので あるいはと思たのですが
>>52
不可能ではしょうがないですね
でもphpは学びたいので参考書は買うことにします。
>>54
phpではロードがトリガーになるタイプの関数などはないのですか
>>57
>>59さんのおっしゃるとおり URLリンク(openlab.ring.gr.jp)
では指摘される箇所です。w3cの構文チェックでは問題ありません。
>>58
アドバイスありがとうございます
inputだけならvalueは空でも問題が発生しないのですが、textareaだけは融通が利かず困っております。
問題の解決には時間がかかりそうですが、妥協せずに努めます。
>>31の質問についてはここで〆させていただきます。
皆さん本当にありがとうございました。

65:デフォルトの名無しさん
16/03/17 15:09:51.59 tyGZO1LH.net
>>54
マニュアル読んでないの?
URLリンク(php.net)

66:62
16/03/17 15:10:32.51 tyGZO1LH.net
>>54じゃないわ>>55
失礼

67:デフォルトの名無しさん
16/03/17 15:33:57.91 C8WQ31QC.net
>警告
>Apache2 の MPM マルチスレッドモードを実運用環境で使用することは推奨されません。
>代わりに prefork MPM を使ってください。
>これは Apache 2.0 および 2.2 におけるデフォルトの MPM です。
>prefork MPM を使う理由については、 マルチスレッド版 MPM の Apache2の FAQ エントリを参照してください。
意訳
worker使うにはfastcgi入れてね
今nginx+fastcgiで構築中

68:デフォルトの名無しさん
16/03/17 23:09:31.14 tyGZO1LH.net
分かった, 多くがmod_phpという点は撤回しよう

69:デフォルトの名無しさん
16/03/18 02:50:58.31 VCEknKj5.net
>>55 の人は状況を理解できたのかな。

70:デフォルトの名無しさん
16/03/18 16:25:00.45 b9TT5Thu.net
PHPで掲示板作りたいんだけどどうやって作ればいい?

71:片山博文MZ ◆T6xkBnTXz7B0
16/03/18 16:34:07.36 Ap+aghgX.net
>>67
SQLを勉強。
データベースを元にレス一覧を表示するページを作る。
データベースにレスを追加する機能を付ける。
個人認証とアクセス規制の機能を付ける。
RoRの方が簡単だよ。

72:デフォルトの名無しさん
16/03/18 16:36:42.93 6oRuSaMu.net
>>67
まずは基礎的なことを学べばいい
ファイルの読み書きとPOST,GETの概要がわかれば作れる

73:デフォルトの名無しさん
16/03/18 16:42:05.89 R++Q/oTK.net
こんなとこで聞くような人にはどっかに落ちてたこんなので十分
<?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>

74:デフォルトの名無しさん
16/03/18 17:07:51.15 tFp6SKta.net
>>70
試しにそのスクリプトを動かして見たんだが、log.csvには何も書き込まれん。
動かんぞ

75:デフォルトの名無しさん
16/03/18 17:37:32.82 ylD08sGN.net
全くの初心者でこれを作るのに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>

76:デフォルトの名無しさん
16/03/18 18:16:32.51 Ncw6iORz.net
Route::post('/task', function (Request $request)
larevelの上記コードで
URLリンク(localhost)から
URLリンク(localhost)に行くと思うのですが、
URLリンク(localhost)に移動して404が出てしまいます。
初フレームワークでいまいちピンと来ないのでご教授願います。

77:デフォルトの名無しさん
16/03/18 18:18:38.48 ylD08sGN.net
スレリンク(php板)
こっちで聞いたほうがええで

78:デフォルトの名無しさん
16/03/18 18:27:28.59 kCkFI5Um.net
閉じ括弧足りてへんで

79:デフォルトの名無しさん
16/03/18 18:44:41.00 4GbB4r0Q.net
掲示板のスクリプトが全然動かねぇ…
ファイル書き込みできない理由がわからんな…

80:デフォルトの名無しさん
16/03/18 18:56:49.98 ylD08sGN.net
親ディレクトリやログファイルのパーミッションが正しくないんちゃいます

81:デフォルトの名無しさん
16/03/18 19:11:37.81 Ncw6iORz.net
php artisan serveでした。
こんなのドキュメントにさえ書いてなかったぞ

82:デフォルトの名無しさん
16/03/18 19:15:56.65 VCEknKj5.net
URLリンク(localhost)
そもそもこんなアクセスが可能な時点で何か間違えてる

83:デフォルトの名無しさん
16/03/18 19:19:01.05 Ib/Six5x.net
>>77
いや、単純なファイルへの書き込みプログラムは動くんだがここで上がっている掲示板が動かん。
Macだからログファイルを777に設定してみたが無駄だった

84:デフォルトの名無しさん
16/03/18 19:28:18.96 VCEknKj5.net
>>80
試してないけど、少なくともphp5.4以降じゃないと動かないかと

85:デフォルトの名無しさん
16/03/18 19:52:51.02 PmB3GW7n.net
>>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

86:デフォルトの名無しさん
16/03/18 20:15:10.33 VCEknKj5.net
内容的に、試してるのって>>70でいいんだよね。
動かしてみたら動いたよ。

87:デフォルトの名無しさん
16/03/18 20:25:43.68 fETB3aTj.net
symfony1を使うことになった… 今更propelだなんて、石器時代に戻ったようだ…

88:デフォルトの名無しさん
16/03/18 21:05:02.39 ylD08sGN.net
なーんもエラーメッセージ出てないの?
action先指定してないせいとかそんなんだったりして

89:デフォルトの名無しさん
16/03/18 22:19:38.49 1/+/M8CG.net
>>85
何も出てないね。
action先指定してもダメ
調べたらPOSTされた値の取得失敗してる
よくわからん

90:デフォルトの名無しさん
16/03/18 23:51:19.80 VCEknKj5.net
スーパーグローバルの中身それぞれ確認してみたりした?

91:デフォルトの名無しさん
16/03/19 10:23:11.43 RdVsRxwn.net
PHPによるwebアプリ開発を主目的とした場合、オススメのパソコンありますか?
現在は一人でwindowsのVistaを使っていますが買い替える予定です。
開発者はmacの方が多いんでしょうか?

92:デフォルトの名無しさん
16/03/19 10:53:37.88 .net
>>88
VisualStudioにPHP Toolsを入れるのが一番捗るぞ
Windowsでよろしい

93:デフォルトの名無しさん
16/03/19 12:07:25.47 TH+k+4Mf.net
PHPってなんでこんなに最高な感じなんですか?

94:デフォルトの名無しさん
16/03/19 12:39:27.23 7KrQRChZ.net
>>88
開発バリバリやっている人ならMacがおすすめ。
ただし、Macは値段高いよ。
俺はmid2015 16GBのMBP使ってる
brewで簡単にいろいろ入れられるのは便利だね
IDE使っているとすぐメモリ10GB近く食われてるから8GBだときついかも

95:88
16/03/19 13:09:06.17 KQyZU1EN.net
>>89
ありがとうございます。参考になります。
10ならIDEのもっさり感がないと期待したいです。
>>91
調べてみたら爆速との評価で羨ましいです。
ただお高いですね・・・
今はWindows10を買って、Macの購入は今後の目標にするのが現実的みたいです。
ありがとうございました。

96:デフォルトの名無しさん
16/03/19 13:17:01.38 KP8Apys+.net
>>92
持ち運ぶ事がなければデスクトップ、持ち運びたいならノート
メモリーは 8G 以上、16G あれば十分。当然OSは64ビット版。
デスクトップであればHDD 2台内蔵しておくと何かと便利。
OSはWindowsかLinux、より多く使う可能性があるものをインストール。
その後、他方をVM使ってインストールする。
これで1台のPCで2台分になり、サーバー・クライアント環境が実現


97:できる。



98:デフォルトの名無しさん
16/03/19 14:01:59.09 uL3uF0Qy.net
>>87
プログラムは>>72のやつなんだかやっぱりだめだわ
$_POSTに値が入っていない
postでリクエストを受け取っているのに値がないってどういうこっちゃ
フォームにhiddenで値を仕込んでみたりしたが値が入ってなかった。

99:デフォルトの名無しさん
16/03/19 15:22:31.48 S6HwApMW.net
試しに@抜いたら?

100:デフォルトの名無しさん
16/03/19 15:32:07.50 JCgDTcvT.net
>>95
Undefinedだね。
issetで見ても入ってないしどうなってるんだ…

101:デフォルトの名無しさん
16/03/19 15:38:28.26 S6HwApMW.net
php,Web鯖が動き、簡単なpostが入らないてもう設定ファイルを疑うレベルやな
鯖の再起動は?

102:デフォルトの名無しさん
16/03/19 15:40:12.50 KlqJkaFE.net
まずは他のブラウザやスマホからPCへと閲覧環境を変えたりしてみる
そこで問題がなければサーバ側に問題があると予想ができる
phpかwebサーバの設定が濃厚だけど
問題がosまで及ぶと一般人には難しいかもしれん

103:デフォルトの名無しさん
16/03/19 16:01:53.57 TH+k+4Mf.net
(´・ω・`)

104:デフォルトの名無しさん
16/03/19 16:05:51.16 OXv0vTm9.net
>>97
PHP自体は動くんだが値を受け取れない状態だからもうよくわからん
PHPStormのビルトインサーバーでデフォルト状態のままなんだがなぁ…
再起しても意味なかったで。
わからんから他で質問してみたわ。

105:デフォルトの名無しさん
16/03/19 16:14:40.54 8q6oCiAL.net
var_dump($_POST)はemptyなの?

106:デフォルトの名無しさん
16/03/19 16:45:48.19 FPRwOkHw.net
>>101
array(0) { } だった

107:デフォルトの名無しさん
16/03/19 17:29:32.94 MsPwdRrK.net
なぜフレームワークの簡易サーバで試す
ぐぐったら$_POST always empty とか腐るほど出てくる

108:デフォルトの名無しさん
16/03/19 17:54:45.58 8q6oCiAL.net
>>102
そもそもinputのvalueに値は入ってるのかな?
ためしにhiddenで適当な値を渡してみてはどうだろう。
それでダメならサーバ設定かなあ

109:デフォルトの名無しさん
16/03/19 17:58:17.54 8q6oCiAL.net
いや違うか。
空でもvar_dumpしたらname=>''ってなるか。

110:デフォルトの名無しさん
16/03/19 18:27:23.31 69KMUp3G.net
>>103
まさにこれだった。
URLリンク(www.reddit.com)
$post = file_get_contents('php://input');を追加して$postから値をとったらできたわ

111:デフォルトの名無しさん
16/03/19 22:25:45.21 FGEWUki8.net
どなたかご教授ください。
URLリンク(codezine.jp)
この記事の一番上にある黄色い枠内のPHPコードについてなのですが、コードの内容としては「変数emailに格納されたメールアドレスをエンティティ化してURLと一緒に吐き出している」という感じでいいのでしょうか。
よろしくお願いします

112:デフォルトの名無しさん
16/03/20 01:51:37.61 7rdlXsW/.net
urlというと語弊がある気もするが、それで合ってる

113:デフォルトの名無しさん
16/03/20 01:57:35.30 sIxj3/qZ.net
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>

114:デフォルトの名無しさん
16/03/20 06:49:09.21 7rdlXsW/.net
どうせ全角に置換するなら&を&amp;に変えれば良いのではないか

115:107
16/03/20 09:48:22.76 Rtd+5JCT.net
おはようございます。
>>108
合ってましたか。良かったです。
>>109
実行後の結果を見たらそのようになっていました。php初心者の自分から見れば謎技術です。
皆さんレスをくださりありがとうございました。
最後にひとつ気になることがあるのでアドバイスをください。
今回のPHPコードは結果としてメールアドレスをエンティティ化していますが、
PHPコードを使用せずに最初から「URLリンク(www.luft.co.jp)」のようなサイトを使ってエンティティ化したメールアドレスをHTMLに組み込んでいる場合とではセキュリティ(回収ロボット対策)に違いが生じるものなのでしょうか。
よろしくお願いします。

116:デフォルトの名無しさん
16/03/20 11:20:55.28 7rdlXsW/.net
最初から実体参照にしてようがphpで都度実体参照にしようが、受け取る側にとっては同じ
どっちかってーとphpというよりHTTPのおはなしだなや
ロボット対策としては、実体参照を使うより
画像化するとかjavascript経由でdecodeさせるとかの方が良い気もするけど
経験則ではすごく単純にやるだけでも画像化するとほぼ全くスパム来ない

117:デフォルトの名無しさん
16/03/20 11:47:54.77 ocz4IH7r.net
人間ならwebサイトの内容みてメールアドレスがこれだなってのがわかるけど、
botはwebサイトのソースコードを解析してメールアドレスを探し出す。
レベルの低いbotは、~@~.comみたいなのでメールアドレスと判断するから、
実体参照にしておくとそのルールにはひっかからなくなるっていうだけのお話。
だから>>111のサイトで変換したものを使っても差はない。
むしろ最初から変換したものを静的に使ったほうが、動的に毎回変換するより賢い。
並のbotは実体参照に変換されたのをさらにデコード(元通りに)してから判別するので無意味。
あくまでも数多くあるbotの中でもっとも低レベルなbotの対策と捉えた方がいい。

118:デフォルトの名無しさん
16/03/20 12:35:04.56 q7lvq1yy.net
GDで出力すればいいじゃない

119:107
16/03/20 12:37:18.67 Rtd+5JCT.net
レスありがとうございます。
>>112
画像化すると良いというのはよく見かけますが本当だったんですね。
>>113
エンティティ化したメールアドレスは低レベルなロボットには対策できるんですね。
お二方、アドバイスありがとうございました。
これからサイト作りに励みたいと思います。
ありがとうございました。

120:107
16/03/20 12:40:49.25 Rtd+5JCT.net
>>114
レスありがとうございます。
今の自分にはGDは使いこなせませんです;;

121:デフォルトの名無しさん
16/03/20 13:08:19.56 R3VnfHe8.net
GDなんか使わなくても比較的簡単に使える
URLリンク(www.maurits.vdschee.nl)

122:デフォルトの名無しさん
16/03/20 13:12:07.42 ocz4IH7r.net
誤解してるようだから言うけど、実体参照変換は全く無意味だからね。
ちょっとコード追加するだけでデコード出来るし、初心者でもそんくらい簡単に出来るから。
ただGD使って画像ねじまげたりまでする必要はない。
画像解析までいくと導入ハードルはあがるし、作業も大変なだけだから、そこまでやるスパマーはそうはいない。
他の人も言ってるけどアドレスかいた画像おいとおけばいい。
画像に関して強いて言うならば、mail.jpgとかわかりやすい名前にはしないほうがいいってことぐらい。
でも実際スパマーが使ってる手口は総当り攻撃的あるいは辞書攻撃的に、
適当な文字列でYahooとかGmailとかメジャーなアドレスを作成して、
実際にそのメールアドレスが存在するか調べた後にそこに送信してるだけ。

123:107
16/03/20 16:06:37.44 Rtd+5JCT.net
レスありがとうございます。
>>117
今の自分にはエベレストのように高いハードルです。
>>118
やはり画像が一番無難のようですね。
本当はメールフォームを置くのが一番なのでしょうが、訳あって置くことができないため、このような質問をいたしました。
納得のいく答えが出たので>>107の質問はここで〆といたします。
沢山のレス、ありがとうございました。

124:デフォルトの名無しさん
16/03/20 18:59:16.49 UVbtKDHl.net
PHPではスーパーグローバルは直接操作せず、filter_input()使えってことだけど、
$_FILESはどうするのかな?

125:デフォルトの名無しさん
16/03/20 19:23:05.07 ocz4IH7r.net
そんなことはない
isset使った三項演算子のコードで書いてる人のほうが多分多い
php7では??演算子ってのがあってそれが主流になっていくと思われる(タブン)

126:デフォルトの名無しさん
16/03/20 21:27:02.46 UVbtKDHl.net
106あたりを読んでたら、
今後スーパーグローバルの直接参照ができなくなるんじゃないかと焦ったんだけど、
邪推かね。
やれ、10年分汗かいた。屁でもして寝るか…

127:デフォルトの名無しさん
16/03/21 06:14:59.31 csZVNDaX.net
>>121
初見だと「おっ書くの楽になるないいかも」と思ったけど
これってnullか未定義しか拾えないし判定に使ったものと実際に代入するものを別にできないよな
使われることなく忘れられていきそう

128:デフォルトの名無しさん
16/03/21 07:33:32.57 .net
>>121
empty(判定する変数 ? : 空でなければこうする);
ってどうなりますか

129:デフォルトの名無しさん
16/03/21 07:57:20.73 tg5Bjvem.net
質問にすらなっていない

130:デフォルトの名無しさん
16/03/21 21:16:11.86 QwlARmOt.net
>>124
結局何が言いたいんだ…?

131:デフォルトの名無しさん
16/03/21 22:44:58.69 JGe4MEfE.net
以下の処理を行いたいのですが何か良い方法があればご教示いただけないでしょうか。
1.メイン処理で別スレッドを生成する
2.別スレッドをバックグラウンド実行する
3.別スレッドの処理結果(標準出力)をメイン処理に返却する
<環境>
PHP:7.0.3
OS:Windows7
よろしくお願いします。

132:デフォルトの名無しさん
16/03/21 23:37:09.63 hs33rQ/Z.net
「php 外部プログラム 非同期」で検索!

133:デフォルトの名無しさん
16/03/23 19:40:56.99 bhVhOKrP.net
パーフェクトPHP読んでたら
$path_info=(string)su


134:bstr($request_uri , strlen($base_url)); というコードがあったんですが、(string) って何を表しているのですかっっ(´・ω・`)



135:デフォルトの名無しさん
16/03/23 19:48:17.15 /CoInmbi.net
>>129
URLリンク(php.net)

136:デフォルトの名無しさん
16/03/23 19:56:23.21 SGU6tbYr.net
>>129
substr の結果を文字列化してる。
元々 substr の結果は文字列じゃないかと思うかもしれないけど、切り出し位置が元の文字列の範囲内に引っかからないと結果は boolean型の false になる。
これをキャストしてヌルストリングスにしてる。

137:デフォルトの名無しさん
16/03/23 20:43:50.59 bhVhOKrP.net
>>131
解説わかりやすいです(´・ω・`)
ありがとうございます(´;ω;`)ブワッ

138:デフォルトの名無しさん
16/03/23 20:47:59.96 1FyX1z+W.net
このコードは美しいから参考になるっていう
phpのライブラリは有りますか?
自分が作るとループとネストが多くなってあとで読み返すのが辛いです。

139:デフォルトの名無しさん
16/03/23 21:01:22.20 ygSnWzaX.net
エラーなり例外なり返せよなあ
php7では空文字返すようになったみたいだけど

140:デフォルトの名無しさん
16/03/23 21:20:26.54 lc58fuH/.net
php the right way

141:デフォルトの名無しさん
16/03/23 21:53:15.96 g8IzY8y0.net
>>133
CakePHP
リファクタリングを読めばいい
オブジェクト指向でメソッドを適度に細かくすればネストは減る

142:デフォルトの名無しさん
16/03/23 22:29:08.16 1FyX1z+W.net
>>136
おーCakeですか
ありがとうございます

143:デフォルトの名無しさん
16/03/23 23:39:47.02 q0Mdl0g1.net
リファクタリングを読めばいい同意

144:デフォルトの名無しさん
16/03/24 00:13:42.66 J46FDWsl.net
コードを2種類書いて比較して綺麗な方を採用していく
というのを繰り返していけば、自然と綺麗なコードが書けるようになると思う

145:デフォルトの名無しさん
16/03/24 13:43:58.72 5kgXhXKu.net
セッション保持している間、オブジェクトは$_SESSIONに突っ込んでおけばいいの?
例えばセッション開始したときにPersonオブジェクトを作ったら、$_SESSION['person']に突っ込んでセッション保持している間はこれを参照する感じ?

146:デフォルトの名無しさん
16/03/24 15:10:49.34 ryYCL5Z2.net
それが一番効率良いならそうすればいんじゃね

147:デフォルトの名無しさん
16/03/25 17:09:00.06 9tPeO3Xg.net
$はみなさんどう読んでますか

148:デフォルトの名無しさん
16/03/25 17:11:16.43 nroxL6SM.net
ドル
人に説明するときゃ変数っていうだろうよ

149:デフォルトの名無しさん
16/03/25 17:11:22.46 R5xBwmiE.net
だらー

150:デフォルトの名無しさん
16/03/25 17:12:19.49 sGrJOjWZ.net
読まないことも

151:デフォルトの名無しさん
16/03/25 17:50:00.07 Psh2jzTy.net
だら

152:デフォルトの名無しさん
16/03/25 18:38:58.10 0FfQhw//.net
どら

153:デフォルトの名無しさん
16/03/25 18:45:15.87 ir49Z4lH.net
えもん

154:デフォルトの名無しさん
16/03/25 21:00:45.71 jE5E6FoE.net
変数が入っているときは「へんすう」
配列が入っているときは「はいれつ」
オブジェクトが入っているときは「おぶじぇくと」

155:デフォルトの名無しさん
16/03/27 23:18:01.97 2Si7i7dw.net
PHPの勉強をやるには何を準備したらよいですか?
Win7です

156:デフォルトの名無しさん
16/03/27 23:19:43.94 B1uwwf8h.net
やる気

157:デフォルトの名無しさん
16/03/27 23:21:22.83 zkDYEIdB.net
>>150
師匠を選ぶ目

158:デフォルトの名無しさん
16/03/28 00:07:56.74 eqDgVfq/.net
最低限メモ帳とphpバイナリがあれば開発はできるが
本番環境でVPSとか使うならちゃんとLinux環境でインストール設定出来るようにしといたほうがいいが
とりあえず素人なら環境構築はxamppとかオールインワンパッケージにまかせておいたほうがいい
プログラム素人ならIDEよりPHPエディタやNotepad++みたいなの使えばいいと思う
もしプログラム経験あるんなら環境構築は仮想マシンにvagrantでIDEはEclipse Netbeans VSあたりから選べばよい
有料でいいならPhpStormがいいらしい
ただこのへんは開発マシンのスペックと相談してください
たいしてスペックがないならxampp+エディタ系で

159:デフォルトの名無しさん
16/03/28 00:16:30.94 c7fcoboN.net
>>153
ローカルのxammpで開発し動作確認しながら、
実際のサーバーに転送して再度動作確認すればいいんですね

160:デフォルトの名無しさん
16/03/28 00:39:56.72 xoXx/JLy.net
俺はnabetap と普通のテキストエディタで開発

161:デフォルトの名無しさん
16/03/28 00:41:37.13 eqDgVfq/.net
>>154
本番環境で使えるのにxamppのインストール直後では使えないってこともあるので
出来れば本番環境のphpinfoを調べてエクステンション周りだけでもローカル(xampp)のphp.iniを編集して合わせてやるといいんだけどね

162:デフォルトの名無しさん
16/03/28 01:32:48.66 kF6uGKy4.net
>>156
xamppとnotepad++ EUC-JP対応版をインストしました。
動かす環境はできました。さっそくソース書いて行きたいとこですがphpの基本わかってないんで
本屋行ってphpの本買ってサンプルソースで勉強するしかないですね。
>>155
xampoみたいなオールインワンにnabetapってのもあるんですね。

163:デフォルトの名無しさん
16/03/28 02:10:34.22 WGFAAxFb.net
EUC-JP は古い
in/outするすべてのファイルを、UTF-8 にしないとバグを起こす

164:デフォルトの名無しさん
16/03/28 04:13:30.30 c7fcoboN.net
npp.6.9.installerを公式からダウンロードしインストしなおしました。
EUC-JP版はじゃなくてこっちでいいんでしょうか?

165:デフォルトの名無しさん
16/03/28 04:52:10.62 eqDgVfq/.net
euc-jp版でいいよ
元ある機能の拡張でeuc-jp,sjisも扱えるようになるってだけで
utf-8が扱えなくなるわけじゃないから

166:デフォルトの名無しさん
16/03/28 04:56:44.16 eqDgVfq/.net
使い方はencodingでutf-8(bomないほう)選んで
languageのPからPHP探してセットすれば入力補完してくれるようになる

167:デフォルトの名無しさん
16/03/28 05:08:28.66 c7fcoboN.net
なるほどですeuc-jp版に戻しました。utf-8(BOMなし)もわかりました
あとは慣れてきたらIDEのNetbeansも導入てみようと思います。

168:デフォルトの名無しさん
16/03/28 19:51:26.79 IKi/yKO6.net
わしは、pleiadesというのを使っとる。
xamppとeclipseがセットだったんで楽じゃった。

169:デフォルトの名無しさん
16/03/29 09:55:43.28 JWick5hX.net
xamppとeclipseで作ってサーバーで中規模アプリ動かしてるけど何も問題ないよ
Linuxなんて使いたくないし
windowsで十分、てか便利

170:デフォルトの名無しさん
16/03/29 12:25:01.83 6JekQQcR.net
windowsで作ってwindowsで動かすのは問題ない。
windowsで作ってlinuxで動かすと動かない場合がある。
大文字小文字とか文字コードがらみ。

171:デフォルトの名無しさん
16/03/29 13:56:11.99 nKJmxYgr.net
未だにEUCJP使ってる人とかいるのか
スゲーな
まだSJISの方が理解できるわ

172:デフォルトの名無しさん
16/03/29 14:07:02.53 MGaWHjrZ.net
sjis(-win)使う理由がwindowsとの関係や一部のクソなモバイルとの関係なように
旧資産・古いunix/linuxつかっててどうしても切り離せないというケースなのかもしれない

173:デフォルトの名無しさん
16/03/29 14:11:09.82 JWick5hX.net
windowsの膨大な資産メリットに比べたら文字化けなんてサーバーで確認すればいいだけの微々たるレベル

174:デフォルトの名無しさん
16/03/29 17:31:26.24 aXDijjSz.net
ローカルの開発でLinux使いたくないってのはわかるけど
本番環境とはわけて考えないと

175:デフォルトの名無しさん
16/03/29 18:38:33.15 4928WWNs.net
php設置する時に777やら755やら設定するけど、どういうphpの処理する時にrwxそれぞれの権限が必要になるの?
644にしたり755にしたり 777にしたり。
(´・ω・`)なんで


176:オーナーとその他の権限分けるの?



177:デフォルトの名無しさん
16/03/29 19:03:53.27 52Yuz1Q/.net
>>166
EUC-JPを使うじゃなくてEUC-JP対応のエディタを使うっていう話でしょ。
EUC-JPやSJISに対応してるのは日本語環境のエディタの基本機能といってもいい。
notepad++調べたけど、公式に開発されてるのはEUC-JPにもSJISにも対応していない。
notepad(付属メモ帳)の代わりとして使うことを想定すれば対応しているべきで、
EUC-JP対応版(EUC-JPとSJISに対応)があっても不思議でない。

178:デフォルトの名無しさん
16/03/29 19:48:41.14 vFEhZxRE.net
>>170
セキュリティのために必要最低限のパーミッションを与える

179:デフォルトの名無しさん
16/03/29 20:36:50.97 hB33GZnr.net
>>170
通常実行権限はいらないよ

180:デフォルトの名無しさん
16/03/29 21:37:58.05 jyk5ZdaS.net
winで制作したphpを公開Linux鯖にftp転送した後、phpのパーミッション変更なんてしたことがないな。
perlなら実行権限与えてやらないとそのままじゃinternal errorが発生するけど。
てかphpってパーミッションなんて変更してやる必要あるの?

181:デフォルトの名無しさん
16/03/29 21:43:09.44 W1iwza/S.net
phpからログ吐いたりファイルアップするなら
書き込み権限与えないとできんやろ

182:デフォルトの名無しさん
16/03/29 21:52:47.09 uzyAT3MD.net
phpファイル自身の更新権限でしょ?

183:デフォルトの名無しさん
16/03/29 22:44:35.78 4928WWNs.net
(´・ω・`)Loggerとか使ってログを吐く場合、loggerを呼び出すphpは全部7にしないとダメって事?

184:デフォルトの名無しさん
16/03/29 22:47:40.20 4928WWNs.net
間違えた 吐き出す先のファイルか(´・ω・`)

185:デフォルトの名無しさん
16/03/29 22:56:48.41 BDGBq9XE.net
>>177
ファイルは604、ディレクトリは705にしておけばいい

186:デフォルトの名無しさん
16/03/29 22:57:15.80 W1iwza/S.net
php自体の権限の話?
実行権限は確かにいらないね。
>>178
ログを吐き出したいディレクトリに
書き込みphpユーザから書き込みできるようにする。
しないと出力でエラー。

187:デフォルトの名無しさん
16/03/29 23:16:42.01 4928WWNs.net
>>179,>>180
そうそう、php.exeじゃなくて なんちゃら.phpっていうソースファイル(?)
write.php - 604(apache:apache)
log/ - 705(apache:apache)
って感じでいいのかな(´・ω・`)

188:デフォルトの名無しさん
16/03/29 23:31:58.90 BDGBq9XE.net
>>181
それでいい
書きこめるか試してみな
パーミッションについては自分でよく調べることだな

189:デフォルトの名無しさん
16/03/29 23:42:07.24 e0CNVUKY.net
あなたの得意で、誰かを幸せに
みんなの「得意」を売り買いできる、モノを売らないフリーマーケットです
URLリンク(coconala.com)
占い・恋愛相談からロゴの作成・ビジネスのクラウドソーシングまで、
みんなの得意を500円から売り買いできる「ココナラ」

190:デフォルトの名無しさん
16/03/29 23:43:44.09 hB33GZnr.net
できればSELinux有効にしてこまめな設定しておいたほうがいいんだけどね。

191:デフォルトの名無しさん
16/03/30 00:01:28.97 njWzXt21.net
cgiで動かしてる場合は実行権限が要る、のでは

192:デフォルトの名無しさん
16/03/30 17:47:31.83 Muyb9Qgo.net
>>181
userをapacheにできるなら600と701でいいと思うが

193:デフォルトの名無しさん
16/03/31 01:26:01.16 GJ2QbDh0.net
CGIとphpの違いってなに?
perl、ruby→CGIという。
PHP→CGIとは言わない?

194:デフォルトの名無しさん
16/03/31 01:39:01.14 gTuU4O2h.net
>>187
実行方法が違う
Nginxとかのことはよく知らないからApacheで喋るけど,
CGI: Apacheがmod_cgiからプログラムを実行する(ファイル先頭のシェバングのプログラムから起動)
PHP: Apacheがmod_phpから.phpファイルを読んで実行
レガシーなCGIではアクセス毎にインタプリタなり実行ファイルなりを起動するからパフォーマンスが極めて悪い
Apacheモジュールで実行すればサーバプロセスと一緒に常駐するからCGIより極めて高いパフォーマンスが実現出来る
尚, 最近はPHPでも高負荷環境下ではphp-fpmからFastCGI経由で実行されることが多い模様(シェバングは不要なのでレガシーCGIっぽくはない)

195:デフォルトの名無しさん
16/03/31 02:06:39.04 tPwPmbpG.net
>>187
なんか10年前にタイムスリップしたような質問だなw

196:デフォルトの名無しさん
16/03/31 02:28:46.49 i4QRtt5O.net
むむむ、、難しい

197:デフォルトの名無しさん
16/03/31 03:09:22.24 9egfbJrh.net
すごくぼかしていうと、実行ファイルを動かすか、プログラムを読みこんで動かすかの違い

198:デフォルトの名無しさん
16/03/31 03:17:43.67 +i7BlQ0K.net
とりあえず言語は関係なく
実行方式の違いってことだけ知ってればいいよ
PHPだってCGIで動作するし
Perlだってmod_perlでApacheのモジュールとして動作する

199:デフォルトの名無しさん
16/03/31 06:17:49.36 n9weBv5F.net
Linuxのuptimeコマンドで得られるサーバの稼働時間を、PHPで表示させたいんだけどPHPド素人過ぎて全くわからん。
[root@ホスト名 ~]# uptime
06:04:10 up 5 days, ←この部分
uptime.phpとして
「5日6時間04分10秒、起動中です。」と表示させたい。

200:デフォルトの名無しさん
16/03/31 06:25:53.80 .net
$uptime = shell_exec('/usr/bin/uptime');
あとはカンマで区切って頑張れ

201:デフォルトの名無しさん
16/03/31 07:48:14.72 n9weBv5F.net
>>194
マジでありがとう(´;ω;`)そういう風に取得するんだ。
shell_execすら見つける事ができなかった。
これはLinuxのコマンドを実行させるphpの関数かな。だいぶイメージが湧いてきた

202:デフォルトの名無しさん
16/03/31 08:12:49.01 n9weBv5F.net
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(分)

203:デフォルトの名無しさん
16/03/31 08:43:49.83 dysJg4uT.net
$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";

204:デフォルトの名無しさん
16/03/31 08:48:23.85 tPwPmbpG.net
uptimeとか知ってるくせに正規表現すら思いつかんのかえ

205:デフォルトの名無しさん
16/03/31 08:50:01.21 dysJg4uT.net
「5日6時間04分10秒、起動中です。」という文字列を得たいだけなら
$patを工夫すれば、そのまま希望する文字列にできるよ

206:デフォルトの名無しさん
16/03/31 09:22:07.14 n9weBv5F.net
>>197
>>199
ありがとう(´;ω;`)
(¥d+)の意味すらわかってないから、phpの文法の基礎から勉強し直してくるよ

207:デフォルトの名無しさん
16/03/31 09:47:20.27 .net
起動して1日経ってないとまた表示が違うから注意な

208:デフォルトの名無しさん
16/03/31 09:55:30.49 NqUBDLqn.net
デザイナー上がりの俺がコード書くと手続き型になってしまう
この前1000人~くらいが使うシステム作ってみた
一人で作ってるから手続き型で困ることは一切ないんだけど、まあ動けばいいんだよね

209:デフォルトの名無しさん
16/03/31 10:14:49.77 7iH4R6mM.net
shell_execで思い出したけど
exec、shell_exec、passthru等って引数・戻り値・結果の取得方法以外はどんな違いがあるの?
実行時にたどるフローとか権限とか使うシステムコールとか生成されるプロセス/スレッドの扱いとか

210:デフォルトの名無しさん
16/03/31 10:53:54.43 tPwPmbpG.net
URLリンク(github.com)
php_execのif (typeから始まるところらへんが差

211:デフォルトの名無しさん
16/03/31 12:37:49.17 eK9DBRn+.net
fwrite関数で大容量のログをファイルに書き込みたいのですが、内容が
128MBを越えるとファイルが作成されません。
原因がわかる方いらっしゃいましたら教えていただけると助かります。
環境
centos6.7
php7

212:デフォルトの名無しさん
16/03/31 12:43:17.19 zV4jiE60.net
PHPで128MBといえばmemory_limitが思い付くが

213:デフォルトの名無しさん
16/03/31 12:55:38.39 gTuU4O2h.net
逐次書き込め

214:デフォルトの名無しさん
16/03/31 14:26:35.21 yy0681Er.net
>>200
(\d+) は、PHPの文法というよりも、Python, Ruby, JS などで使われる正規表現
( )はキャプチャーと言って、マッチした文字列を後で、
$1, $2, $3 のように、番号を付けて使う。
\d は、数字にマッチする。[0-9] と同じ。
+ は直前の文字の、1回以上の繰り返しにマッチする
つまり、\d+ は、数字の1回以上の繰り返しにマッチする(最長一致)。
数字以外の文字が来たら、その直前までがマッチする

215:デフォルトの名無しさん
16/03/31 14:42:31.80 7iH4R6mM.net
>>204
ありがとう。後ろの方のshell_execまで読んできた
全部php_stream_fopen_from_pipeじゃねーか結果・リターンコードの扱いが違うだけじゃねーか
なんで関数名を分けてんだよこれ

216:デフォルトの名無しさん
16/03/31 18:22:20.07 n9weBv5F.net
>>208
list()や正規表現preg_replace()まったく分かってなかったんで勉強しなおしてる

217:デフォルトの名無しさん
16/03/31 19:35:48.87 eK9DBRn+.net
>>206-207
ありがと。メモリリークしてたわ。

218:デフォルトの名無しさん
16/03/31 22:27:35.98 i8T5nkpN.net
phpとcgiはそもそも比べるものではない
ビジネスマン(cgi)とスーツ(言語)って何が違うのみたいなもんよ
ビジネスマンは良くスーツ着用するけどそもそもその2つは比べられないよって言う話
俺も詳しく理解してないからよく分かんないけど phpとかPerl、Cなんかで書かれたプログラムをどうやってサーバー側で実行するかみたいな話しだったと思う

219:デフォルトの名無しさん
16/03/31 23:28:08.63 gmE6pszy.net
ウェブサイトでのPHPが普及し始めた時、
Perl/CGIとmod_phpの速度を比べて、PHP早い!Perlはクソ!って言ってる人がどれだけ居たことかw

220:デフォルトの名無しさん
16/03/31 23:33:38.39 gTuU4O2h.net
Perl/CGI時代に書かれたコードがmod_perlではまともに動かなかったからなー
あの時代の立場で言えばPerl/CGIとmod_perlは別言語だったから・・・・

221:デフォルトの名無しさん
16/03/31 23:39:05.69 gmE6pszy.net
今のスタイルで書けばそんなに問題起こらなそうだけどねー
PHP/CGIだと、そういう違いってあるのかな

222:デフォルトの名無しさん
16/03/31 23:52:53.66 7iH4R6mM.net
いや、変わりない
#!/path/to/php で動かすにしてもfpmで動かすにしても
同じバージョンのmodule版で動いてるものならソース書き換えなしで方式変更可能

223:デフォルトの名無しさん
16/04/01 01:56:08.60 ZIYWI5KO.net
つまんない話題そろそろ終わらせてよ

224:デフォルトの名無しさん
16/04/01 05:10:17.51 NdnuNKsT.net
はじめてAtomというテキストエディタを知った。すげえ
これ使うのと、NetBeans使うのとどっちがいいのかな?
併用するってのも難しいよー

225:デフォルトの名無しさん
16/04/01 05:26:16.14 d9YSx1pe.net
エディタ類はカスタマイズをある程度しないとまともに使えないでしょ。
ちゃんと自分流にカスマイズされればベストになる可能性はあるけど、
カスタマイズに自信がない人はIDE使ったほうが作業効率はいいだろう。

226:デフォルトの名無しさん
16/04/01 06:31:34.00 PU9mDoTr.net
そいつは正規表現だ
php以外でも同じように使う

227:デフォルトの名無しさん
16/04/01 11:57:09.68 .net
AtomがWebサーバになって、書いたHTMLとJSがその場で動いたら面白い?のでは?
JavaScriptのEmacsとしてこの先生きのこれるか

228:デフォルトの名無しさん
16/04/01 12:37:20.32 NdnuNKsT.net
エディタがクッソ重くなる予感

229:デフォルトの名無しさん
16/04/01 18:29:01.39 uCJ+Rmhu.net
IDEのエディタ部分に不満をもったりしないのだろうか。

230:デフォルトの名無しさん
16/04/01 22:24:42.03 ZIYWI5KO.net
VS codeってどうなんだろ…

231:デフォルトの名無しさん
16/04/01 23:37:04.41 9y/cXELu.net
インテリセンス機能するんだっけ?

232:デフォルトの名無しさん
16/04/03 04:04:48.56 A3StH/M8.net
phpstormが無料で使える(30日評価版ではない)って聞いたんだけど
やり方まとめてるサイトないかな?

233:デフォルトの名無しさん
16/04/03 04:35:20.52 Leps+2Do.net
そりゃ海外サイトでごにょごにょしてくれば使えるだろうけど
有料ソフトウェアなんだからそんなことするんじゃありません

234:デフォルトの名無しさん
16/04/03 05:33:40.35 iNd2PQNq.net
Adobe税にApple税に……大変だ

235:デフォルトの名無しさん
16/04/03 22:25:24.56 vWJbXXGn.net
とりあえずNetBeansにしとくかな

236:デフォルトの名無しさん
16/04/04 06:40:50.08 4hZuKlgI.net
有料ソフトを無料で使おうなんて考える奴は
プロとして失格

237:デフォルトの名無しさん
16/04/04 09:44:25


238:.62 ID:s52B3h8o.net



239:デフォルトの名無しさん
16/04/04 09:45:21.88 s52B3h8o.net
会社でいうと人件費(固定費)に金をかける社長は基本的に社長失格。向いてない

240:デフォルトの名無しさん
16/04/04 09:45:53.36 s52B3h8o.net
それと同じ

241:デフォルトの名無しさん
16/04/04 11:27:01.25 .net
家賃と人件費は毎月掛かる費用だから、
100倍の金銭感覚で考えた方がええで、って
ばっちゃが言ってた

242:デフォルトの名無しさん
16/04/04 12:50:07.11 tWTMiefV.net
URLリンク(alfalfalfa.com)
このサイトみたいに記事の2chレスに対してのコメントを近くに表示するのってどうやるん?

243:デフォルトの名無しさん
16/04/04 12:55:59.98 LrWEI3Rn.net
JavaScriptでDOM操作するの

244:デフォルトの名無しさん
16/04/04 14:26:43.44 +Zn59SDD.net
PHPかんけーねーし、
ブラウザのソースみりゃわかんだろ

245:デフォルトの名無しさん
16/04/04 22:08:09.50 1LILMCI+.net
>>236
ほえーjavascript使うんっすね
ありがとう!
>>237
すまんすまん初心者なりに考えた結果PHP使うのかと思ってw
ソースも覗いてみるよ~

246:デフォルトの名無しさん
16/04/04 22:12:34.35 XmiF8pQ4.net
まあサーバサイドとかクライアントサイドとか
基本のキすら学んでない人にとっては、間隔がつかみにくいんだろうな

247:デフォルトの名無しさん
16/04/04 22:35:56.66 0+RtGrV4.net
URLリンク(millkeyweb.com)
にある、
<?php if ($is_chrome) : ?>
// Chrome用コンテンツ
<?php else: ?>
// その他用コンテンツ
<?php endif; ?>
をWordPressで試しているのですが、Chromeで実行しても $is_chrome が
空のようで「その他のコンテンツ」のほうが表示されます。
なぜですか?

248:デフォルトの名無しさん
16/04/04 22:50:30.56 LrWEI3Rn.net
WPなんてしらんけど
$is_chromeっていうグローバル変数はちゃんとそのファイル内で使えるようになってんの?

249:デフォルトの名無しさん
16/04/04 22:54:41.79 9uPoM1fV.net
やってることを理解していない典型例
教えてもらったうえで何が理解出来るというのか

250:デフォルトの名無しさん
16/04/05 00:22:50.90 PBrOQNL5.net
WPで試してるんだから使えるんじゃないの
URLリンク(codex.wordpress.org)
UAに何送信してるか調べてみたら?

251:デフォルトの名無しさん
16/04/05 00:37:57.65 aIjRskG1.net
if文をコロン/セミコロン/endifで書けることを今知った
いやたぶん使わんけど

252:デフォルトの名無しさん
16/04/05 06:26:24.09 w1a858Dh.net
PHPだけに限ったことじゃないんだが、プログラミングやってると文字列ばかり見てめまいがする。
みんなは頭が基地外になってこない?オレは文字列の羅列を見るだけでめまいがする。

253:デフォルトの名無しさん
16/04/05 06:35:27.28 hR4UL7wD.net
>>244
PHP自体がテンプレートエンジンだから軽量な実装する場合にviewで割りとよく使われるぞ

254:デフォルトの名無しさん
16/04/05 10:35:42.12 ppnKHRiK.net
>>241
どうやればいいの?

255:デフォルトの名無しさん
16/04/05 11:13:51.20 oEPANDny.net
グローバル宣言してますか?

256:デフォルトの名無しさん
16/04/05 11:17:29.11 ppnKHRiK.net
>>248
特に何もしていません

257:デフォルトの名無しさん
16/04/05 11:21:27.14 oEPANDny.net
>>249
使う前に
global $is_chrome;
とおまじないを唱える

258:デフォルトの名無しさん
16/04/05 11:24:37.57 ppnKHRiK.net
>>250
出来ました。ありがとうございました。
グローバル変数を使う場合にわざわざ再宣言しなくちゃいけないのはなぜ?
phpって面倒臭い言語ですね

259:デフォルトの名無しさん
16/04/05 11:36:24.48 hR4UL7wD.net
PHPが悪いんじゃなくてWPの設計が悪いだけだろ

260:デフォルトの名無しさん
16/04/05 11:42:29.01 oEPANDny.net
>>251
PHPにおける変数のスコープを理解することは重要
>グローバル変数が自動的に関数で使用可能で ある C 言語と少々
>異なっていると気がつかれるかもしれません。C言語のような場合、
>グローバル変数を不注意で変更してしまうという問題を生じる可能性
>があります。PHP では、グローバル変数は、関数の内部で使用する
>場合、関数の内部でグローバルとして宣言する必要があります。
URLリンク(php.net)

261:デフォルトの名無しさん
16/04/05 12:08:31.00 5k7a1AT7.net
【OS名】MacのMAMP
【PHPのバージョン】5.6.10
【連携ソフトウェア】なし
【質問内容】
こちらのページの、ページ数がいくつあるかをスクレイピングで取得したいです。
URLリンク(www.amazon.com)
このページの場合だと、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('URLリンク(www.amazon.com)');
$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>

262:デフォルトの名無しさん
16/04/05 12:11:59.63 5k7a1AT7.net
続きになります。
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) }
ばかりで変わりませんでした。
勉強不足で非常につまらない所で間違えているとは思うのですが、
今の私にはどこが間違っているかわかりませんので、
お知恵を貸しいただけませんでしょうか。
ご指摘いただけますと非常に嬉しく思います。

263:デフォルトの名無しさん
16/04/05 12:49:13.36 PBrOQNL5.net
>>254
まずは取得したHTMLの内容を見ること。
そしてそこに書かれている内容を読むこと。

264:デフォルトの名無しさん
16/04/05 13:01:19.31 w0vmBuKb.net
file_get_contents して正規表現で抜き出せばいい
URLリンク(php.net)

265:デフォルトの名無しさん
16/04/05 13:02:56.33 hR4UL7wD.net
>@$dom->loadHTMLFile('URLリンク(www.amazon.com)');
@なんてつけてエラー制御してるから肝心なことがわからないんやで
503返ってきてるしBOTと見なされて拒否られてるってところだろう
ストリームコンテキスト作成してみるとかcURL使ってみるとか


266:



267:デフォルトの名無しさん
16/04/05 14:11:45.62 ruInOaYl.net
カウントして、ファイルに書き込んでリダイレクトすると、カウントが1つ増えるんだけど、なにが原因でしょうか…

268:デフォルトの名無しさん
16/04/05 14:27:24.69 F6iG++QK.net
>>254
$dom = new DOMDocument;
@$dom->loadHTMLFile('URLリンク(www.amazon.com)');
$xpath = new DOMXPath($dom);
$num_pages = $xpath->query('//ul[@class="a-pagination"]/li[last()-1]/a');
$num_pages がおかしいなら、その前の、$xpath もチェックする。
それもおかしいなら、その前の、$dom もチェックする
こういうように、周辺の変数の内容を、すべて見るのが早い。
それか、1行ずつデバッグして、変数の内容を見ていく

269:デフォルトの名無しさん
16/04/05 14:48:14.91 hR4UL7wD.net
>>259
コードも出さなきゃ答えようがない

270:デフォルトの名無しさん
16/04/05 16:31:14.94 yO8yjDkc.net
例えばなんだけど DBに接続するためのユーザー名とパスワードを記述したphpファイルがあるとして
/web/lib/userdb.php(600)
みたいな形にしてwebからアクセスできないようにすればたとえそのメインphpファイルがサーバーのミスやなんかしらの際に流出してもdbのIDとパスワードは守れる?

271:デフォルトの名無しさん
16/04/05 16:37:11.54 Urfcnp8R.net
>>262
dbのIDとパスワードが漏れても外部からアクセスできないようにしとけよ

272:デフォルトの名無しさん
16/04/05 16:41:19.57 +K5F7tY8.net
Webに公開されていないパスに置けば大丈夫では

273:デフォルトの名無しさん
16/04/05 19:24:34.83 izAp1z4+.net
>たとえそのメインphpファイルがサーバーのミスやなんかしらの際に流出しても
ファイル自体が流出したらパーミッション関係ないがな。

274:デフォルトの名無しさん
16/04/05 20:35:59.23 H8S937SL.net
WordPressなんかは、ユーザー名とパスワードを記述したファイルも公開領域だけどね。

275:デフォルトの名無しさん
16/04/05 22:24:24.93 cf9M5ih9.net
MySQLの部分一致 
%ae%
とかやると
abcdeのレコードが一致してしまうんですがどうすればいいんでしょうか
つまり何が言いたいかというと
続いてない文字列が一致してしまう
先頭と端が一致してるのも取り出してしまう

276:デフォルトの名無しさん
16/04/05 22:34:15.27 1mo6kAvy.net
それはおかしい。
SQLとその付近のコードはどうなってんの?

277:デフォルトの名無しさん
16/04/05 22:34:20.37 UC4UBEI8.net
MySQLのほうのログ漁って
想定通りのクエリが飛んでるか調べるとか?

278:デフォルトの名無しさん
16/04/05 22:38:27.01 cf9M5ih9.net
ああ、まじですか
やっぱりおかしいみたいですね
コードを見直してみます。
ありがとうございました

279:デフォルトの名無しさん
16/04/05 22:42:55.17 cf9M5ih9.net
>>269
なるほど。。

280:デフォルトの名無しさん
16/04/05 23:00:19.33 gOJOQ9cJ.net
未だに開発環境でも常にApache+PHPでやってた骨董品なんだけど, PHPのビルトインWebサーバめっちゃ便利やな, 軽んじてたわ

281:デフォルトの名無しさん
16/04/06 06:32:29.83 cc6aqB73.net
全レススマソ
>>263 それだわ 有難う
>>264 一応そうしてるけどそれでもなんか怖くて・・・
>>265 エッ

282:デフォルトの名無しさん
16/04/06 06:58:14.77 chXvhDzz.net
メインの文字読み落としただけだから気にしないでくんろ

283:デフォルトの名無しさん
16/04/06 11:48:54.09 CSfgqPLP.net
>>267ですが一日中考えた結果
前方一致と後方一致の両方が一致しているので取り出してしまっている
という結論に至りました
あいまい検索って本当にあいまいなんですね

284:デフォルトの名無しさん
16/04/06 11:58:30.75 MS+65iNt.net
>>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とか使えなくね

285:デフォルトの名無しさん
16/04/06 12:43:28.61 cc6aqB73.net
サーバーのミスって.htaccessの設定ミスとかそう言う話だよ!
後は何らかの原因でユーザーログイン出来てしまった時にrootのパスワードがわからない状態でソースが覗けなければいいかな程度
そっから先は俺らの考える事じゃないし・・・

286:デフォルトの名無しさん
16/04/06 13:26:05.81 K9SGMphy.net
>>275
いやその結論はおかしい。mysqlスレいこ

287:デフォルトの名無しさん
16/04/06 14:09:25.41 ZQg6xGn/.net
>>275
んなわけないだろ
where句全部書いてみろよ
つかSQL作ってるコードを貼ってみろよ

288:デフォルトの名無しさん
16/04/06 14:58:23.75 MS+65iNt.net
>>277
領分で想定範囲に線引き入れるならばshellに入られる事態がすでにお手上げ状態だと言っても良いと思うが
それはそれとして、webから覗ける範囲に所有者以外が書き込み可能なファイル/ディレクトリが1つもないことの確認を推奨
メインの.phpにセキュリティホールがあればやはり全部無駄になるからこれも(ありがちなのがアップローダ機能)
ところで.htaccessでどんな設定書いてんの

289:デフォルトの名無しさん
16/04/06 15:28:04.17 gq7o88bt.net
ドット始まりのファイル名にしとけばよほどのことをしてもWeb経由では見られないんじゃね

290:デフォルトの名無しさん
16/04/06 16:07:22.70 b8EzfBRn.net
Laravelなら安心!

291:デフォルトの名無しさん
16/04/06 16:22:16.52 zh0XMq5l.net
>>281
これは隠しファイル扱いですよという一種の約束事なので、
知っていれば自由に読み書きできてしまう

292:デフォルトの名無しさん
16/04/06 18:58:39.31 Y+jXv/sp.net
超初歩的な質問で申し訳ないのですがXSS対策のエスケープで事前に
function h($s) {
return htmlspecialchars($s, ENT_QUOTES, 'UTF-8');
}
を作っておくことを学んだのですが
$sはそのphpでは上記部分以外では見つからないのですがどういう意味を持つ引数なのでしょうか?
また事前に$sの宣言を行わなくても良いのはなぜでしょうか?

293:デフォルトの名無しさん
16/04/06 19:22:28.16 xAgh0Pyq.net
引数って言葉使ってるけど、関数が何か理解してますか?

294:デフォルトの名無しさん
16/04/06 19:23:39.55 b8EzfBRn.net
Manual見よう

295:デフォルトの名無しさん
16/04/06 19:45:33.76 ZQg6xGn/.net
>>283
httpdのデフォルトの設定でドット始まりは見せないようになってるでしょ
.htaccess の設定ミス程度ではこの動作は変わらないから、余程のことをしない限りは安全でしょ

296:デフォルトの名無しさん
16/04/06 19:50:32.95 xAgh0Pyq.net
Apache限定の話だけどネ

297:デフォルトの名無しさん
16/04/06 22:06:02.77 chXvhDzz.net
PHPでは$_POSTなどのスーパーグローバルは直接操作するなと言われているけど、
書き換えることが出来てしまうということが、
バリデーターのテストコードを書く上で、物凄く便利であるということに気付いた春。

298:デフォルトの名無しさん
16/04/06 23:11:26.49 q1HrDxSz.net
javascriptやってて最近php始めたんですが、文字列や正規表現などの記述でphpはイライラします。phpは何でjavascriptみたいな柔軟な記述が出来ないのでしょうか?phpなんて作った奴は誰ですか?

299:デフォルトの名無しさん
16/04/06 23:20:26.16 HSAkNgFK.net
>>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)であって、
実際に流れの中で利用されている変数で、宣言や代入され値が入っている。

300:デフォルトの名無しさん
16/04/07 00:34:49.43 838jiYpM.net
まずjsは柔軟じゃない。ガバガバなのだ

301:デフォルトの名無しさん
16/04/07 03:41:23.49 861uWPB3.net
Apacheともう一個なんだっけ最近上がってきてたやつ あれの評判どうなんだろうね

302:デフォルトの名無しさん
16/04/07 04:18:50.70 PO5E9BnC.net
スレチ 独り言 質問しっぱなしが最近大杉
こっちに引っ越してきてから過疎スレそのものだったのに
春休みで同じやつがやってるんだろ

303:デフォルトの名無しさん
16/04/07 13:08:16.18 O69mbgIK.net
php-cs-fixerをインストールしたらPHPのバージョンが勝手に7に上がってました。OS標準(Mac)のバージョンに戻すことは可能ですか?
上書きされてしまったのでしょうか

304:デフォルトの名無しさん
16/04/11 13:57:00.23 pJYoLHo6.net
read.php ← conf.txt
write.php → conf.txt
こんな感じて特定の設定を保存しておきたいんだけど、おすすめの方法ないですか
自前で全部作らないとダメ?

305:デフォルトの名無しさん
16/04/11 14:24:35.69 2HwASHVN.net
すみません、ページごとの閲覧数を表示できるPHPってありますか?
ワードプレスの「WP-PostViews」プラグインは知っていますが、ワードプレスではないサイトなので・・・

306:デフォルトの名無しさん
16/04/11 14:28:52.63 cX0ZVNHx.net
>>296
おれは設定を array にした PHPコードにしてファイルに書いちゃう手をよく使う。
書く処理は作らなくちゃいけないが、読む処理は include するだけでいい。

307:デフォルトの名無しさん
16/04/11 14:34:17.61 pHIRjOY+.net
>>297
スレリンク(php板)

308:デフォルトの名無しさん
16/04/11 14:42:15.76 2HwASHVN.net
>>299
ありがとうございます。
質問してみました。

309:デフォルトの名無しさん
16/04/11 14:58:26.31 zPYXS2gG.net
>>298
書く処理を作るくらいならばいっそserialize()してしまったほうが良くないか
以前試したときは速度的には配列だけの.php読み込みもcsv読み込みもunserializeもほぼ変わらない
ただ、設定ファイルをそれなりに頻繁に手で書き換えるなら配列.phpやcsvのほうが確かに便利

310:デフォルトの名無しさん
16/04/11 15:28:56.19 cX0ZVNHx.net
>>296
設定ファイルの可読性を全く問わないなら serialize/unserialize を使うって手もあるね。
JSON形式で保存することにして json_encode/json_decode を使うって手もありそう。

311:デフォルトの名無しさん
16/04/11 15:34:31.20 cX0ZVNHx.net
おお、かぶったw
>>301
おれも計ったけど、unserialize は結構遅かったような。
設定ファイルじゃなくキャッシュだが、それで serialize 使ってたのを array を使うようにした。
と言っても設定ならどのみち一瞬で読めるから出来合いでやれる方がいいかな。

312:デフォルトの名無しさん
16/04/11 15:41:47.48 cX0ZVNHx.net
連投すまん
array でやるなら var_export が使えるのを思い出した。
おれは余計なスペースや改行だらけになるのを嫌って自前で書いたが、設定ファイルならむしろこっちの方がいいだろう。

313:デフォルトの名無しさん
16/04/11 15:45:31.94 YMrMfC9q.net
ディブ アライン アライン
なんですかこれ

314:デフォルトの名無しさん
16/04/11 16:34:07.85 PHHPdBbi.net
JSのTypeScriptみたいな、PHPを別言語から変換して使う言語はないのでしょうか?
静的型付け言語出身なので、動的言語に慣れなくて・・・
本当はjava鯖がいいのですが、共用鯖だと使えないところが多いので

315:デフォルトの名無しさん
16/04/11 16:46:29.06 zPYXS2gG.net
>>303
実際やってることがほぼ変わらないからか、php5.6系ではいずれもほぼ同じだった
確認は定番のmicrotime(true)@cli、読み込むデータのサイズをバカみたいに大きくしても同様
真面目に考えるならopcacheとの兼ね合いを第一に考えるべき
…というかunserializeと他とで速度差が露骨に出るって.phpコード読み込みにopcache効いてましたってオチじゃなかろうな
var_exportは設定読み書きに使うにはちょっと読む処理を書かなきゃいけないような

316:デフォルトの名無しさん
16/04/11 16:50:34.64 jGs+gPDI.net
そんな1回あたり1ms未満の戦いしても意味ないんじゃないの
1万req/sec超とかなら話は別だが

317:デフォルトの名無しさん
16/04/11 17:45:50.42 cX0ZVNHx.net
>>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
それはその通り、ほ


318:とんど影響の無い時間を稼ぐのに無駄に苦労するのはただのアホだわな。 おれの場合は処理済みデータのキャッシュ化に使ったから読み取りパフォーマンスを重視したけど。



319:デフォルトの名無しさん
16/04/11 18:38:16.01 jGs+gPDI.net
YAMLにしろよ

320:デフォルトの名無しさん
16/04/12 01:59:13.91 vDLzdyvt.net
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ソースを取得したいのですが、何か良い方法は無いでしょうか。
よろしくお願い致します。

321:デフォルトの名無しさん
16/04/12 02:12:44.98 NLppiuAm.net
>>311
PHPとは関係無い話になっちゃうけど、chrome かなんかのレンダラを使う方法があったような。
早い話、ブラウザのインスタンスを作ってそれを制御する感じ(もちろん物理的な画面は必要無い)。
スクリーンショットの取得なんかもできたと思うし、多分JSなんかで加工された後のDOMも取得できると思う。
やり方わかったら教えて。

322:デフォルトの名無しさん
16/04/12 02:20:26.21 20poyVM6.net
cssの擬似要素だけが問題なら自分で展開すりゃいいんでないの
っていうかjavascriptでUA判定して内容切り替えとかしてたらどうすんの

323:デフォルトの名無しさん
16/04/12 02:38:41.31 vDLzdyvt.net
>>312
やっぱり一旦ブラウザに読み込んでからhtmlを取得した方が確実みたいですね
設定作業が難しそうなので避けていましたが、セレニウムってのでそんな感じの事が出来ると思うのでもう少しやり方を調べてみようと思います
>>313
UAならリクエスト送る段階で偽装出来ると思うのですが、なるべく対応したいです
やっぱりページ更新のチェック位置が取得出来ない部分にあったら巡回不可能なサイトが出来てしまう訳ですし・・・
HTMLやCSSにはあまり詳しくないのですが、擬似要素での可変部分は内部的な記述で隠蔽しているという訳ではないんですね
自分で展開できそうならそちらも視野に入れて調べてみます、ありがとうございます

324:デフォルトの名無しさん
16/04/12 03:01:29.60 20poyVM6.net
>>314
スクレイパなどではなくてほんとに汎用web巡回更新チェックか。cssの擬似要素は単純っちゃかなり単純なのですぐわかると思う
ところで素朴な疑問なんだけど
rssを使うとかならともかく生htmlを使って巡回・更新チェックを行う場合、同じく生htmlに吐かれたアクセスカウンターとかどうすんの?
さらに生htmlに実データが無くデータ取得から整形までクライアントに負わせ同時に確実な広告表示を実現してるサイト等の場合も
更新に関わらず内容が変化しうる、これはjsエンジン等を突っ込んだー、だけじゃ解決できない気がするんだけどこの辺どうなんだろう?

325:デフォルトの名無しさん
16/04/12 03:29:34.82 vDLzdyvt.net
>>315
あまり詳しくはないのですが要素の位置に変化が無ければ値が変化しても特に問題は無いと思います
htmlが取ってこれればそれをdomに突っ込んでxmlに変換してxpath通せば特定要素だけを取ってくる事は出来るので
それでhtml上の更新時に必ず変化が起きる要素を一定時間ごとにチェックして変化が確認できたらログを保存してチェックデータを更新といった具合で実装しようと思っています

326:デフォルトの名無しさん
16/04/12 03:32:39.65 w4romtCS.net
思い込みで話すとだめという例

327:デフォルトの名無しさん
16/04/12 05:46:53.79 vDLzdyvt.net
しかしどうしても不思議なんだけど外部サーバから動かす時ってブラウザはどうやって用意するんだろ・・・
seleniumにブラウザのドライバがあってそれ使ってコマンド飛ばせばブラウザを動かせるってのは分かるんだ
そしてwindowsやらmacならフツーにfirefoxなりchromeなりインストールしたら使えるってのも分かる
しかし外部サーバにphpファイルをアップロードして使うって話になると肝心のwebブラウザはどうやって読みこませればいいんだろう
元からインストールされてるとも思えないしレンタルサーバにwebブラウザがインストール出来るのか、それともwebブラウザのexeファイルだけ置けば普通に使えるのか
そもそもレンタルサーバがGUI環境じゃなかった場合webブラウザってのはマトモに動くのか
php web driverってのがある以上何らかの手段はあるんだろうけど、レンタルサーバ上でセレニウムを動かすに当たって何をアップロードすればいいのかっていう必要なものが見えてこない・・・うーむ・・・

328:デフォルトの名無しさん
16/04/12 09:22:36.97 .net
>>318
めんどくさいので、
(1)node.jsが使えるレンタル鯖を借りて
(2)JS+Node.jsによるWebクローラー/ネットエージェント と言う本を買いなさい

329:デフォルトの名無しさん
16/04/12 09:30:30.18 K20+5BP2.net
>レンタルサーバ上でセレニウムを動かすに当たって何をアップロードすればいいのか
いやいや、普通はルートでやるんですよ
VPSが最低要件
それとそこそこのメモリが必要になるでしょうね
そもそもクローラーをレンタルサーバでやる意味がわからないのだけれど・・・
自分のPCでいいじゃない

330:デフォルトの名無しさん
16/04/12 10:42:50.72 PLXRZMCg.net
レンタルサーバーでそれやられたら負荷が高くて同居人に迷惑だな

331:デフォルトの名無しさん
16/04/12 10:55:55.85 NLppiuAm.net
>>320
マナーの問題は置いておいて、こんな処理で root が必要?
パッケージマネージャみたいので入れるなら root を要求されるだろうけど、ディレクトリ一式上げれば動くんじゃないの?

332:デフォルトの名無しさん
16/04/12 11:55:03.31 gTjFdqWa.net
PhantomJSとかその派生は使わんの?

333:デフォルトの名無しさん
16/04/12 11:59:06.19 uMcJYrhA.net
>>322
FirefoxとXvfbが必要
結局JavaScriptで操作した分の対応ってだけで
DOMでない擬似クラスの:afterや:beforeはどうしようもないけど

334:デフォルトの名無しさん
16/04/12 14:46:55.51 pjxLuk2S.net
ログファイルを利用してwebサービス的なものを考えてはいたんですがseleniumは負荷が激増しそうなのでやめておこうと思いますお騒がせしました
むしろ読み込んだhtmlデータを確実に破棄出来てるか、メモリリーク起きてないかが気になってきました
今までは使った変数とか適当に放置してましたがunsetで確実に破棄して行こうと思います

335:デフォルトの名無しさん
16/04/12 16:06:33.46 xc/VnKsQ.net
レベルが高くで全然わからん
やっと$変数名っての覚えた

336:デフォルトの名無しさん
16/04/12 17:46:29.87 ZuNPcNPl.net
PHPやろうと思ったら仮想サーバーとかSQL?とかいろいろ設定しないといけなくて手が出せない
なんていうか全部パッケージされてて解凍かインストールするだけでPHP初められる開発ソフトって何かないか?

337:デフォルトの名無しさん
16/04/12 17:54:12.53 xc/VnKsQ.net
>>327
xampp

338:デフォルトの名無しさん
16/04/12 17:56:37.42 pjxLuk2S.net
>>327
WebMatrix3ってのインストールして起動して新規で空サイト立ち上げたらホーム→新規→新しいファイル→PHPっての入れて
phpコード書くっぽい部分にecho 'test';って入れてから作ったファイル右クリして「ブラウザで起動」選んだら動くよ
mysqlとかwordpressとかも大体入ってる

339:デフォルトの名無しさん
16/04/12 20:52:26.03 VhrT22lj.net
Propelって、コードを読めば読むほどアホが作ったんだなって分かる。
壮大なゴミクズだな。

340:デフォルトの名無しさん
16/04/12 20:57:22.23 uMcJYrhA.net
php4時代の産物に文句言ってもしゃーない

341:デフォルトの名無しさん
16/04/12 21:09:45.08 FIX7kEEP.net
何で今Propelなんや, Doctrineやろ

342:デフォルトの名無しさん
16/04/12 21:33:32.50 VhrT22lj.net
既存プロジェクトだから。
新規ならDoctrineだって馬鹿らしい。

343:デフォルトの名無しさん
16/04/13 00:09:44.78 pIZn+U3p.net
>>327
PHPやるために仮想サーバやデータベースは必要じゃないよ。
仮想サーバが必要なら入れないといけないし、データベースもそう。
深く考えすぎじゃないでしょうか。

344:デフォルトの名無しさん
16/04/13 00:36:38.99 eHbmdEvw.net
>>333
おすすめORMおしえて

345:デフォルトの名無しさん
16/04/13 03:31:33.91 .net
>>327
土日でわかるPHPプログラミング
と言う本やな
自分のパソコン側ではなくてVirtualBoxにPHPやらデータベース入れて動かす方法

346:デフォルトの名無しさん
16/04/13 04:22:33.01 799QV5+T.net
VirtualBoxで動作確認環境を構築するって仮想マシンのOSはLinux入れろってこと?
ローカルpcでphpのソース書いて、わざわざVM側にアップロードして動作確認するの?
開発する時はローカルにxampp入れてソース書いてはローカルで動作チェックしてってやらないの?
ローカルでチェックした後にLANにあるテストサーバや本番サーバにアップしたりしないの?

347:デフォルトの名無しさん
16/04/13 04:39:51.30 SBj4pmRf.net
最低限php -l script-fileできりゃいいや
最近のphpはwindows版バイナリがvcランタイム必須なのがちょっと面倒

348:デフォルトの名無しさん
16/04/13 05:45:48.69 .net
>>337
Vagrantと言う仕組みが有って、ローカルのフォルダの内容をVM側に自動で同期出来る
ローカル側では秀丸エディタとかPhotoShopとか使えるわけで転送も不要、楽だろ
本番機との同期はGitにしなさい
ローカルで開発、SourceTreeでBitBucketにプッシュ、本番機でプル
バージョン管理もバックアップも出来る

349:デフォルトの名無しさん
16/04/13 05:51:50.27 od2stSEV.net
IDEの設定でサーバと連携させる
実行したらFTPなりSCPなりでデプロイしてIEでの実行結果がIDE内に表示される

350:デフォルトの名無しさん
16/04/13 07:30:03.80 m+b23jHk.net
>>335
一般に出回っているもので、まともなORMなんてPHPには無いよ。どれもこれもクソ。
PDOがとても優秀なんだから、PDOをラップしたライブラリを自作すればいいと思う。
何年か前にPDOをラップしたDataMapperの作り方を詳細に書いてくれてたページがgoogle検索の上位にいて、
オレはそれを参考に作って使ってる。
さっきちょっと検索してみたけど、今はどうでもいい内容の薄いページばかりが上がってきて、
ちょっと見つけられなかった。

351:デフォルトの名無しさん
16/04/13 16:10:54.68 m2aMgexj.net
初歩的で申し訳ないですがスマホ用ページとPC用ページでURLを変えたくない場合
一つのPHPにスマホ用とPC用のコード両方書いてもブラウザで判別して分岐させたら
処理は重くならないですよね?
ファイル分けた方が軽いんでしょうか

352:デフォルトの名無しさん
16/04/13 16:29:00.50 V9vZnwrf.net
重くなるってほど変わるような話じゃない
というか最近のトレンドは画面サイズで処理振り分ける方法
ようは全部スタイルシートでやる

353:デフォルトの名無しさん
16/04/13 17:30:50.08 Qs0P8RGZ.net
諸先輩方に質問なのですが
特定の文字列の末尾に[]で囲まれた0以上の整数値(最大値は不明)が入っている事があります
文字列にこれが含まれているかを判定して[]まで含めて除去したいという場合どのような処理を用いればよいのでしょうか

354:デフォルトの名無しさん
16/04/13 18:05:35.83 KCoW39g8.net
>>344
微妙に曖昧な点があるから、文字列の具体例と欲しい結果を書いてごらんよ

355:デフォルトの名無しさん
16/04/13 18:50:02.39 SBj4pmRf.net
>>345
曖昧な点がどこにあるか教えてもらえないでしょうか

356:デフォルトの名無しさん
16/04/13 18:53:10.23 fbVZAWIt.net
例を書けよ、オレもあいまいだから様子見してた
その探したい文字列は複数あるの?
全体は複数行なの?

357:デフォルトの名無しさん
16/04/13 18:59:33.89 OSAV0HGg.net
preg_replace('/\[\d+\]$/', '', $s)
とかじゃないの

358:デフォルトの名無しさん
16/04/13 19:04:16.19 pIZn+U3p.net
そうだと思うよ。
文字列のパターンによっては [ 以降を切り捨てるだけで解決する話かもしれない

359:デフォルトの名無しさん
16/04/13 19:20:04.40 eHbmdEvw.net
整数値と明示されていると/\[[1-9][0-9]*\]$/としたくなるな

360:デフォルトの名無しさん
16/04/13 19:20:44.70 pIZn+U3p.net
0以上の整数値だそうですよ

361:デフォルトの名無しさん
16/04/13 19:21:34.17 eHbmdEvw.net
Oh

362:デフォルトの名無しさん
16/04/13 19:30:22.40 Qs0P8RGZ.net
返答遅れましたが、具体例は'foo/bar[1]/qux/quux[3]'といった形で
'foo/bar[1]/qux/quux'だったり'foo/bar[1]/qux/quux[30]'だったりします
欲しい結果としては、どのパターンでも最後のカッコだけを切り落として'foo/bar[1]/qux/quux'という結果です

363:デフォルトの名無しさん
16/04/13 19:38:51.78 Qs0P8RGZ.net
>>348
今確認しましたがピッタリです。ありがとうございます


次ページ
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch