18/11/28 17:09:08.08 Nb5yTkdM0.net
関連リンク
■PHPマニュアル URLリンク(www.php.net)
■日本PHPユーザ会 URLリンク(www.php.gr.jp)
■PHPNG URLリンク(wiki.php.net)
■メーリングリスト URLリンク(ml.php.gr.jp)
(以下英語)
■公式リポジトリ URLリンク(git.php.net)
■PHP-RFC URLリンク(wiki.php.net)
■PECL URLリンク(pecl.php.net)
■Composer URLリンク(getcomposer.org)
■Packagist URLリンク(packagist.org)
■Zend Tech. Ltd. URLリンク(www.zend.com)
フレームワーク(一部)
■Zend Framework URLリンク(framework.zend.com)
■Symfony URLリンク(symfony.com)
■Laravel URLリンク(laravel.com)
■CodeIgniter URLリンク(codeigniter.com)
■Yii URLリンク(www.yiiframework.com)
■FuelPHP URLリンク(fuelphp.com)
■CakePHP URLリンク(cakephp.org)
テンプレートエンジン(一部)
■Twig URLリンク(twig.symfony.com)
■Blade URLリンク(laravel.com)
3:デフォルトの名無しさん
18/11/28 23:49:26.47 9Jzc2TOo0.net
下痢が出そうで出な
4:いのですがどうすればよいでしょうか? お腹が下らないんです
5:デフォルトの名無しさん
18/11/29 01:17:40.41 fezToc6/0.net
>>3
本屋に行け
6:デフォルトの名無しさん
18/11/30 07:00:27.66 EXc3g5vT0.net
class FriendList implements IteratorAggregate{
private $list=[];
public function getIterator():Traversable
7:デフォルトの名無しさん
18/11/30 07:14:24.64 EXc3g5vT0.net
↑誤爆すみません。↓よろしくお願いします。
---Friendlist.php---
<?php
class FriendList implements IteratorAggregate{
private $list=[];
public function getIterator():Traversable{
return new ArrayIterator($this->list);
}
public function add($p){
$this->list[]=$p;
}
これを他のクラスでインスタンス化して、foreachで反復処理する場合、
$friendl=new Friendlist();
foreach($friendl as $value){
}
どの部分でFriendlist.phpのgetIterator()が読み込まれるのでしょうか?
foreact部ですか?
8:デフォルトの名無しさん
18/12/02 15:51:21.58 JoV96n8f0.net
>>6
foreachでインスタンスを使うと、getIteratorが呼び出され、ArrayIteratorのコンストラクタにlist配列が引き渡され、ArrayIteratorインスタンスとしてiteratorが戻されます。
9:デフォルトの名無しさん
18/12/02 17:45:47.71 LBfjyA1g0.net
アクセスカウンターを自分のサイトに
付けたんだけど、シンプルにこれにしようかと思うんのだが、
やっぱ、30分~1時間の同じipは弾くとかの改造すべきなのだろうか?
なんか漠然と意識高い系のアクセスカウンターにしたい気もする
アドバイスお願いします。
URLリンク(www.php-factory.net)
10:デフォルトの名無しさん
18/12/04 13:06:18.62 lEYKJ99g0.net
>>8
そんなの自分次第なんだし好きにすれば?
コード読んでみたけど
同じIPが連続した時のみカウントしないようにはなってるが
あんま意味ないなこれw
クッキー食わせて指定時間以内ならカウントしないとかなら
ちょっとした改造でできるんだしやってみれば?
11:デフォルトの名無しさん
18/12/06 12:15:37.67 m4YfQK1J0.net
Symfony2に関しての質問です。
EC-CUBEのプラグインを開発しているのですが、
例えば、管理画面の会員登録にradioを置きたいのですが、
どうやってフックすればいいのか、よく理解できていません。
というか、Hello Worldに到達できていません。
何かいい解説サイトとかないでしょうか?
12:デフォルトの名無しさん
18/12/06 23:33:16.69 O2YT1bAS0.net
鼻の穴に入れたらそのまま頭の上まで通すんだよ
13:デフォルトの名無しさん
18/12/08 07:24:27.43 LXRFdUog0.net
unsetについて教えてください
<?php
$x=10;
function fc(){
global $x;
unset($x);
return ++$x;
}
print $x;// 結果10
print fc();//結果 1
となるのですが、関数内で$xをグローバルにしても、
unset($x)すると、ローカルな$xを作ってしまう、ということなのでしょうか?
14:デフォルトの名無しさん
18/12/08 07:56:43.69 fWle4nJW0.net
unsetしたら無くなる
returnの行で
$x=0;$x=$x+1;
をしてる
return ++$y;
ならどうなんだろうね
15:デフォルトの名無しさん
18/12/08 10:05:40.16 yelb6oUt0.net
>>12
最後にもう一度 print $x; をやってごらんよ
16:デフォルトの名無しさん
18/12/08 10:13:33.95 RDjv1fsh0.net
>>12
URLリンク(php.net)
unset($x)の時の$xはローカル変数の$xになってます。
関数内でグローバル変数としての$xを破棄したいのなら
unset($GLOBALS[]);を使います。
そもそもグローバル変数とローカル変数のスコープが異なるのは、
関数内の変数の取り扱いで、グローバル変数に影響させない為
関数の外でunsetせず、関数内で安易にグローバル変数をunsetさせず、
特別な取り扱いをさせている、ということなのですね
17:デフォルトの名無しさん
18/12/08 12:13:49.89 iKq5+OXH0.net
>> 12
これ、notice 発生するでしょ。
学習時は、そういうの気にしたほうが良いですよ。
グローバルに使うケースなんてあまりないから、マニュアル見る良いきっかけにはなったけどw
18:デフォルトの名無しさん
18/12/08 22:24:20.62 LXRFdUog0.net
>>13
>>14
>>15
>>16
皆様ありがとうございました。
最後にprint $xをすると、結果10になります。
関数内の$xと外の$xは別の値を参照してるのですね。
noticの部分も見逃さずに調べる癖を付けようと思います。
どうもありがとうございました。
19:デフォルトの名無しさん
18/12/10 12:14:54.37 5+iaWJW90.net
>>17
>>16も書いている通り
return ++$x; の行で
Notice: Undefined variable
というエラーが発生するので、そもそもコードとしておかしい
php.iniの設定で
error_reporting = E_ALL
display_errors = On
を指定してエラーを全部見る癖をつけよう
どうしてもphp.iniの設定を変えられないならスクリプトの先頭で
error_reporting(E_ALL);
ini_set('display_errors', 1);
を宣言
これやらずに勉強しても意味ないと思え
それぐらい重要
20:デフォルトの名無しさん
18/12/10 21:59:19.28 C/CCdKQw0.net
>>18
何冊かテキスト買って読んでいるのですが
初めて教えてもらえました。
今後、是非、そのコードを入れて
エラーに慣れていこうと思います。
ありがとうございました。
21:デフォルトの名無しさん
18/12/11 18:35:27.17 RBYf2Nxf0.net
>>19
学習・開発環境では
error_reporting = E_ALL
display_errors = On
log_errors = On
error_log = /path/to/error
で、本番(ネット上に公開する)環境では
log_errors = Off
として、エラーは出力せずログに記録するのみとする
(エラーを出力する事はセキュリティ的な穴になり得るから)
/path/to/error ってのはエラーを記録したいファイルへのパスってことね
書き込み権限与える事を忘れないよう
これやるとやらないとでは上達速度に相当差がつく
※本番環境では error_reporting のレベルを下げると書いてるものがたまにあるが
※大間違いなので真似しないよう
22:デフォルトの名無しさん
18/12/15 17:50:00.18 jezVqobh0.net
小数点8桁を含むjsonをjson_decodeすると6桁に丸められて出力されるわこれ
どうしたらいいんだ。。
23:デフォルトの名無しさん
18/12/16 00:15:00.03 QyRtehwq0.net
URLリンク(codepad.org)
24:デフォルトの名無しさん
18/12/17 10:59:38.41 S8NIVwif6.net
Laravelwwwwwwwww
25:デフォルトの名無しさん
18/12/19 00:15:29.67 kru7p0rZ0.net
・我慢する
・妥協する
好きな方を選んでいいぞ
26:デフォルトの名無しさん
18/12/22 23:51:36.73 uVsSh1bK0.net
age
27:デフォルトの名無しさん
18/12/23 09:55:59.13 imRge5LT0.net
laravelに関する質問って、どこですればいいですか?
28:デフォルトの名無しさん
18/12/23 11:05:13.96 1KLFWUpKr.net
Web板にある
29:デフォルトの名無しさん
18/12/23 11:08:44.03 I9bN9e1Bd.net
symfony2は?
30:デフォルトの名無しさん
18/12/23 12:02:07.91 1KLFWUpKr.net
同じくWebProg板にある
31:デフォルトの名無しさん
18/12/23 18:02:34.43 zMRMmtKp0.net
webprogのphpスレは初心者お断りみたいだから
このスレで質問したほうがいいけど
初心者お断りスレじゃなければwebprogの該当スレでいいんじゃね
age
32:デフォルトの名無しさん
18/12/23 19:28:28.95 dJkVsi530.net
エディタの配色テーマによっては、下記のようなスラッシュで囲んだ文字列がエラーっぽい色で表示されるんですが
書き方が間違っているんでしょうか?
$var = '/string/';
33:デフォルトの名無しさん
18/12/23 20:41:01.87 erEBm9IL0.net
preg_matchとかの正規表現だと判断されてるとかかな?
34:デフォルトの名無しさん
18/12/23 21:28:49.02 dJkVsi530.net
>>32
正規表現も値によっては色が変わったので、それかもしれません。
ありがとうございました
35:デフォルトの名無しさん
18/12/23 22:14:03.14 C6NZW+q00.net
EC-CUBE3の質問って、ここでいいの?
36:デフォルトの名無しさん
18/12/24 14:10:57.93 233xwMnJ0.net
>>30
ありがとうございます。
@slot と @includeの違いについてなのですが、
@slotは、@endslopまでの範囲の記載内容をテンプレの変数に割り当て
@includeでは、連想配列をつかって、テンプレ側でキーに対応する値を表示させる、ということのようですが、
結果的に同じような役割のように思えます。
決定的な違いって何なのでしょうか?
37:デフォルトの名無しさん
18/12/25 01:56:48.71 NrxUWHxX0.net
機能的な違いはない
htmlタグを含む場合はslotのほうが見やすい(書きやすい)
と誰かが言ってた
38:デフォルトの名無しさん
18/12/25 06:51:17.65 +RHRyNBd0.net
ありがとうございました!スッキリしました!
39:デフォルトの名無しさん
18/12/29 02:00:22.36 qNy1dmrU0.net
larabelを使ってます。
その機能でオートローダーのスタティックを利用してます。
useしてnewするのは不要にってます
一方、larabelにはdi機能というのもあるようです。
どちらもnew不要ですがどちらの使い分けとかパターンわけなど何か使い分けるヒントをお願いします
40:デフォルトの名無しさん
18/12/29 17:02:58.05 CFGewoy6r.net
class作るとき必ずinterfaceって作るものなの?
41:デフォルトの名無しさん
19/01/08 18:59:06.54 odmObNXY0.net
おめでとうございます。今年もよろしくお願いします。
laravelの質問なのですが、ご教授くださいましたら幸いです。
class HelloController extends Controller{
public function index(Request $request,Response $response){
$html =<<<EOF
<html>
<body>
<h1>request</h1>
<p>{$request}</p>
<h1>response</h1>
<p>{$response}</p>
</body>
</html>
EOF;
$response->setContent($html);
return $response;
}
}
この最終行から3行目の,return $responseを、return $htmlとしても、ブラウザに表示される内容は同じです。
return $htmlで表示させないで、responseのcontentにhtmlコードを追加してreturnしている理由は、何かあるのでしょうか?
42:デフォルトの名無しさん
19/01/08 21:29:14.91 IOloucApr.net
>>40
ララベルの仕様をみてsetContentはなんと書いてあるの?
43:デフォルトの名無しさん
19/01/09 11:51:40.20 rfEx/2+M0.net
>>41
ありがとうございます。
setContentは、Responseでクライアントに戻すHTMLソースが格納されてます。
HTMLソースを返すのなら、return $htmlを返しても同じなのかな、と思いまして質問しました。
44:デフォルトの名無しさん
19/01/09 18:55:24.82 MSH+15Q+0.net
掲示板作ってるんだけど、更新すると連投しちゃうのを防ぎたいんだけどどうすればいい?
POSTの中身を消して分岐させるとかイメージでいいの?
45:デフォルトの名無しさん
19/01/09 19:52:02.31 4rDfBKqR0.net
>>43
登録後にブラウザの更新ボタンが押されると送信済みのPOSTデータが再送信され結果2重登録してしまうって事だよね?
なら↓のやり方でどうか
画面アクセス毎にセッションにランダム文字列を保存&出力htmlに<INPUT type="hidden">で保存した文字列を埋め込む
登録処理時、セッションに文字列が無い場合やPOSTされた文字列とセッションに保存された文字列が一致しない場合はNGとする
46:デフォルトの名無しさん
19/01/10 12:14:58.77 DtkiUTJR0.net
戻って更新なら連投の可能性もわかるけど
ただの更新でなんでそんな状況になるのか
47:デフォルトの名無しさん
19/01/10 21:45:56.88 W9NULntl0.net
投稿内容をどこに保存しているかによるけれど
Requestに保存されてるんだからって言えばいい?
48:デフォルトの名無しさん
19/01/11 00:52:34.47 Tbw1O8r40.net
indexから同じindexにpostしてindexで更新してるってことかな?
普通はpost用のコントローラに渡して実行後にindexにリダイレクトするから
戻るおさん限りは更新しても問題にはならんと思うのだけど
チャットほどじゃないにせよリロードが出来ない掲示板なんて…
まあ手動じゃなくて更新データはスクリプトで非同期でとってくりゃいいけど
サーバでどうにかなればプッシュすれば利便性もUP
49:デフォルトの名無しさん
19/01/11 09:10:05.09 5Sr7Z6Dc0.net
ディベロッパーツールで確認してごらんよ
POSTつかってリロードするとブラウザ内でPOST情報がどうなっているか
50:デフォルトの名無しさん
19/01/11 18:16:54.21 0MVnI2bb0.net
>>43
同じ掲示板にジャンプして書き込まれたPOSTの中身を確認してテキストに保存してって感じで作ってる
でもtime変数使ってページ読み込んだ時とボタン押されたときの変数で一致したら書き込むって感じでやってみるわ
51:デフォルトの名無しさん
19/01/11 18:35:21.28 5tFH3fBo0.net
POST後はLocationでリダイレクトしちゃうな
52:デフォルトの名無しさん
19/01/11 22:43:36.05 4vkkoNusM.net
>>50
それよりは「戻る」にも対応できる >>49 の方法の方が利点があるんじゃね
53:デフォルトの名無しさん
19/01/12 00:51:32.95 IAz54C400.net
Rails など、普通のフレームワークの作り方では、
Post したら別の画面、一覧画面などに移動する
ルーティング(routes.rb)に、CRUD が定義されている。
追加(C)・更新(U)されたら、一覧(R)に戻る
一覧に戻ると、追加・更新されたのを見れる
54:デフォルトの名無しさん
19/01/12 08:15:39.30 9TmqbdMf0.net
戻るに対応するなら
セッションでトランザクション処理のようなことをやればいいだけだけど
更新するだけで連投されるなんていうミラクル仕様に突っ込んでるだけで
それとこれは話が別よ
55:デフォルトの名無しさん
19/01/12 11:26:47.84 dtC7PwsV0.net
>>49
俺が作った掲示板は、if($投稿された文章==='保存したテキスト')die('二重投稿です')ってやってる
要するに重複チェック
56:デフォルトの名無しさん
19/01/12 11:47:59.75 JRnnmwIl0.net
他人のファイルに書き込みたいのですが、うまくいきません。
<?php
$file = 'スレリンク(tech板)';
file_put_contents($file, 'shine');
?>
なぜでしょうか?
57:デフォルトの名無しさん
19/01/12 11:55:12.21 wHUCWNv00.net
phpの質問をお願いします
class HelloRequest extends FormRequest
58:デフォルトの名無しさん
19/01/12 11:58:58.16 wHUCWNv00.net
すみません、誤射でした><
class HelloRequest extends FormRequest{
public function authorize(){
if($this->path() =='hello'){
return true;
}}}
if文にあるthis->path()は、validationメソッドですが
スーパークラスのFormRequestはControllerを継承してるのでしょうか?
また、laravelのクラスの継承図のようなものってどこかにありますか?
59:デフォルトの名無しさん
19/01/12 13:04:51.50 9TmqbdMf0.net
>>55
file_put_contentsは使わないけどそれ以前にPOSTする為のパラメーターが足りてない
どういうことか理解できるならstream_context_createのページ見てみればいい
それ踏まえて方法はいくつかあるがcURLが一般的なので「PHP cURL POST」でググればいいよ
60:デフォルトの名無しさん
19/01/12 16:57:28.50 9TmqbdMf0.net
>>57
Laravelは使わないから知らないがLaravel APIでググったらこんなん出てきたけども
URLリンク(laravel.com)
あとは頑張れ
URLリンク(github.com)
61:デフォルトの名無しさん
19/01/12 21:14:39.18 zfAqW2URx.net
cakephp 2
find x3回
を
(unbind, find) x3回
にしたら8倍速くなった
やってること合ってる?
62:デフォルトの名無しさん
19/01/13 01:34:59.40 mcoRrcQP0.net
超くだらない質問なんですが
PHPにパスワードを保存しようと思うのですが
PHPのソースコードが読まれないか心配です
いちおうブラウザからはソースを選択しても表示されないのですが
もしかしたら何らかの方法で読まれる可能性もありそうで
心配で寝れません
教えて下さい
お願いします
63:デフォルトの名無しさん
19/01/13 04:56:00.12 5HRwOXUS0.net
環境変数で入れるかせめてハッシュ化する
64:デフォルトの名無しさん
19/01/13 07:19:52.26 vFHHKg450.net
パスワードをスクリプトから分離して
phpからは参照出来るが外から直接参照できないとこ(ドキュメントルートの上とかDBとか)に置く
ファイルに保存するならファイル名は.htを先頭につけるといい
パスワードはハッシュ化しておく
これらが有効なのは放置してサーバの仕様変更に気づかなかったり(php廃止とか)
設定ミスってphpをtxtとして配信してしまうようなケースのみ
そのへんに問題なくてphpのソースコードが見られてしまうような場合は
もう何もかもがだめなことが多いので心配するだけ無駄だわ
65:デフォルトの名無しさん
19/01/13 10:01:59.70 c0Flhv7n0.net
>>59
わざわざありがとう
今日は時間が取れそうなのでちょっとしらべてみます
みなさんはどんなフレームワーク使ってますか?
66:デフォルトの名無しさん
19/01/13 12:25:48.51 e78RN+cdr.net
Laravel使いたいのに絶対にcakePHP!!と言われて仕方なくそっちでやってる
67:デフォルトの名無しさん
19/01/14 07:36:31.79 qdlB9M7a0.net
すみません、助けてください
Vagrantが警告出てインストール出来ない環境って
何が問題なんでしょうか?
インストールが強制終了されます
バージョンは最新です
何が邪魔してるのでしょうか?
URLリンク(i.imgur.com)
68:デフォルトの名無しさん
19/01/14 11:20:16.98 WRAeIDjcr.net
知らん
てか普通は作ったサポートに聞くだろ
なんで関係ない他人に聞くんだよ?
69:デフォルトの名無しさん
19/01/14 12:39:08.03 Wx7rBQ7H0.net
PHPの質問でもないしなぁ
70:デフォルトの名無しさん
19/01/14 21:58:11.38 mB9ZyxQs0.net
>>65
ありがとうございます!
cakePHPもフレームワークで優れていると
買った教材に書いてありました
今後とも、色々ご指導お願いします!
71:デフォルトの名無しさん
19/01/17 02:54:30.64 PVRvfBHL0.net
今でも使えるリファレンス本って何があるのでしょうか?
出版されてるものって古いですけど使えます?
72:デフォルトの名無しさん
19/01/17 11:02:45.61 oOFYk3pkr.net
phpはほぼ変わってないからよほど古くない限りどれでもいいからさっさとやれ
73:デフォルトの名無しさん
19/01/22 15:38:00.61 +epunpvy0.net
laravel マイグレーション、シーディング処理について教えてください
現象:マイグレーションは作成できた。シーディングの実行で、columnが無い、というエラーが出る
----- migration --------
class CreatePeopleTable extends Migration{
pubulic function up(){
Schema::create('people',function(Blueprint $table){
$table->increments('id');
$table->string('name');
$table->timestamps();
74:72 誤爆すみません
19/01/22 15:54:41.18 +epunpvy0.net
laravelついて教えてください。現象:マイグレーションでテーブルは作成できた。シーディングの実行で、columnが無い、というエラーが出る
//----- migration --------
class CreatePeopleTable extends Migration{
pubulic function up(){
Schema::create('people',function(Blueprint $table){
$table->increments('id');
$table->string('name');
$table->integer('age');
$table->timestamps();
});}
//----- Seeder -----
publid function run(){
$param=['name'=>'suzu','age'=>20,]:
DB::table('people')->insert($param);
$param=['name'=>'mizu','age'=>24];
DB::table('peope')->insert($param);}
//----- Seeding実行 -----
php artisan db:seed
//----- エラー -----
General error:table people has no column named name(SQL:insert into "people"("name","age") value(suzu,20))
catch(Exception $e){//・・・
$query,$this->prepareBindings($bindings),$e
マイグレーションで作成したテーブルにデータが登録できないのはなぜなのでしょうか?よろしくお願いします。
75:73
19/01/22 16:28:02.93 +epunpvy0.net
すみません、なんだか分かりませんでしたが自己解決しました。
お騒がせしました。
76:デフォルトの名無しさん
19/01/23 08:11:47.51 3lDydxt30.net
練習兼ねて小規模&少機能で簡単なネットショップを作ろうとしてるのですが、設計段階でファイルがごちゃごちゃになってしまいそうです
フォルダの作り方やファイルの分け方はどんな感じでやればスッキリ分かりやすくなりますかね?
77:デフォルトの名無しさん
19/01/23 08:31:27.16 Kmczp3SP0.net
>>75
小規模でもフレームワーク使うのがいいよ
78:デフォルトの名無しさん
19/01/23 09:34:11.34 PjIYOotT0.net
フレームワーク自体のメンテが厄介だから入れずに済むのであれば入れない方がいいよ
79:デフォルトの名無しさん
19/01/23 11:27:05.16 aXKStg7n0.net
rep2という2chビューアのうち、DB連携部分のみうまく動かずデバッグしています。
■環境
php7.2で、phpinfo()には mysqli,mysqlnd,pdo_mysql
いずれもバージョン情報が表示されてて、必要な環境は準備できていると思っています。
■現象
$db = \DB::connect($dsn);
を実行すると、"DB Error: no database selected"というエラーになります。実際やりたいこと(imagecache2の利用)もできません。
■調べたこと
$this->comment('dsn=' . var_export($dsn, true));
の結果、以下の通り$dsnは正しいように見えます。
dsn='mysqli://rep2:password@localhost:3306/rep2'
しかし、以下のようにすると…
$db = \DB::connect($dsn);
$this->comment('db=' . var_export($db, true));
配列にusernameやpasswordが代入されていないようです。
'dsn' =>
array (
'phptype' => 'mysqli',
'dbsyntax' => 'mysqli',
'username' => false,
'password' => false,
'protocol' => false,
'hostspec' => false,
'port' => false,
'socket' => false,
'database' => false,
ではなぜ代入されないのか、がわからず。教えていただけないでしょうか。
80:デフォルトの名無しさん
19/01/23 11:46:36.90 tAarVqiS0.net
よく知らないけど、
connect は、データソースへつなぐだけじゃないの?
SQL のselect みたいなものは無いの?
CRUD も検索して
81:デフォルトの名無しさん
19/01/24 00:24:18.63 cPFOMtSZ0.net
$url = 'URLリンク(example.com)'+'/path/';
だと、途中に余分なスラッシュが入りますよね。
それを綺麗に整形してくれる関数や手法などはありますか?
82:デフォルトの名無しさん
19/01/24 19:50:20.26 kFfuye3h0.net
標準関数にズバリのものはないと思うけど探せば誰かコード書いてるはず
簡単なのでよければsubstr使うとか
parse_urlしたのを組み直すかそのあたりで
./../とかも考慮するならちょっと面倒になってくるが
83:デフォルトの名無しさん
19/01/24 23:16:07.50 TFfQdKfR0.net
>>80
自分でパスを連結する関数を書いちゃうとかどうだろう?
その中では rtrim($path1, '/') . '/' . ltrim($path2, '/') を繰り返す感じ?
84:デフォルトの名無しさん
19/01/24 23:50:15.43 1L/prd7r0.net
/ の2個以上の連続を一つに置換する操作する処理を見かけたことあるなぁ。。。
あんまりきれいじゃない気がするけどw
85:デフォルトの名無しさん
19/01/24 23:57:10.70 +WsHUVaQ0.net
ちょっと乱暴かも知れませんが、スラッシュが二重になっても
パスとしてはエラーにはならないと思います(見た目汚いですが)
86:デフォルトの名無しさん
19/01/25 23:38:05.77 H/r4QqDk0.net
echo 'aaa';
echo('aaa');
include_once 'path/file.php';
include_once( 'path/file.php');
のようにカッコが有っても無くても良い関数がありますが、
php上級者の人はどっちを使うのでしょうか?
理由も教えてけろ
87:デフォルトの名無しさん
19/01/26 17:25:33.44 y5VTPiFL0.net
関数・・・・・カッコを付ける
言語構造・・・カッコを付けない
echo も include も言語構造。
迷ったらマニュアルの例文をコピペ。
88:デフォルトの名無しさん
19/01/26 17:57:25.92 WSFNrCYQr.net
phpの関数の戻り値って望む型の他にfalseも返ることがあるよね
そんで7からは戻り値の型宣言いれて戻り値の型が違ったらTypeError出す
もうごちゃごちゃだね
89:デフォルトの名無しさん
19/01/26 18:18:29.92 HzZF0HWM0.net
言っていることがごちゃごちゃだってことは分かった
90:デフォルトの名無しさん
19/01/26 18:58:01.87 exLOU4gz0.net
Ruby では、これだけで正常につながる
File.join 'URLリンク(example.com)', '/path/'
91:デフォルトの名無しさん
19/01/28 07:17:11.62 X4/3tVW10.net
laravelに関して質問させてください。
Eloqentのモデルに関してです。
<?php
namespace ---
use ---\Model
class Person extends Model{
public function scopeAgeGreaterThan($query,$n){
return $query->where('age',$n);
}
コード中の$queryは、$thisとしても同じ結果が得られます。
$thisではなく、引数$queryを利用する意味は、何かあるのでしょうか?
もしあるのなら、その意味、意義を教えていただけないでしょうか?
よろしくお願いします。
92:デフォルトの名無しさん
19/01/29 09:22:43.65 YbHXkxp70.net
$thisは自分自身のインスタンスからテーブル情報を取得
$queryはクエリビルダーを使ってテーブル情報を取得
93:デフォルトの名無しさん
19/01/29 21:20:14.58 KhUtNVBn0.net
URLリンク(stackoverflow.com)
の5831の回答で、
if (\strpos($a, 'are') !== false) {
の部分ですが、if( の次のスラッシュは何ですか?
94:デフォルトの名無しさん
19/01/29 21:54:10.57 AnpnZGSz0.net
そのサイトの下の方では、\ は付いていないから、気にしなくてよいのでは?
<?php
$haystack = 'how are you';
$needle = 'are';
if (strpos($haystack,$needle) !== false) {
echo "$haystack contains $needle";
}
?>
95:デフォルトの名無しさん
19/01/29 22:00:03.73 KhUtNVBn0.net
>>93
了解です、気にしません。
ところで、わざわざ !==falseで判定する理由は何ですか?
96:デフォルトの名無しさん
19/01/30 00:01:17.63 T9WgAkKs0.net
Ruby には、偽がnil, false の2つしかないけど、
JavaScript, Python, PHP には、偽が10個ぐらいある
0, 0文字列、空配列とか、様々な可能性が排除できない。
少しでも表現を変えると、バグる
例えば、それをtrue に変えると、様々な偽の条件が存在してしまう。
0 の時とか、空配列とか
他の言語は、Rubyに比べて、バグる確率が高い
97:デフォルトの名無しさん
19/01/30 00:31:11.46 Xc33HHDg0.net
>>94
strposは0を返しうるから if (!strpos(...)) だと false が返ってきた(見つからなかった)のか 0 が返ってきた(先頭に見つかった)のか判別出来ない
URLリンク(php.net)
の返り値の警告の部分
98:95
19/01/30 00:54:29.54 T9WgAkKs0.net
Ruby 以外の言語では、
!= など、普通の比較演算子では、偽が10個ぐらいあるから危険!
!== などの厳密比較演算子を使うべし!
99:デフォルトの名無しさん
19/01/30 06:04:31.07 Bo5lehOR0.net
>>92-93
名前空間指定してるだけ
phpの標準関数や内部クラスはすべて\の名前空間に属している
普通はわざわざ書かない
100:98
19/01/30 06:22:12.32 Bo5lehOR0.net
>>92のサイト見てなかったけどおそらく別の名前空間内で使うこと想定して
回答したんだろうね
でも例えばこんなコードでも書かない限りは不要
namespace my;
function strpos(string $haystack, string $needle, int $offset = 0)
{
$retval = \strpos($haystack, $needle, $offset);
if ($retval === false) {
return false;
} else {
return $retval + 1;
}
}
var_dump(\strpos('abcde', 'c'));
var_dump(strpos('abcde', 'c'));
101:デフォルトの名無しさん
19/01/30 16:29:27.79 /IyzrTjj0.net
>>95
良く分かりました。
102:デフォルトの名無しさん
19/01/30 16:32:02.78 /IyzrTjj0.net
>>99
$retval = \strpos($haystack, $needle, $offset);
これだと、どこかよその名前空間で定義されているstrposと言う意味ですか?
$retval = \MY_NameSpace\strpos($haystack, $needle, $offset);
と書くと、特定の名前空間を絶対パスで指定出来るという理解で良いですか?
103:デフォルトの名無しさん
19/01/30 22:13:35.19 Bo5lehOR0.net
>>101
>どこかよその名前空間で定義されているstrposと言う意味ですか?
どこかっていうか標準関数のstrposことなんだけど
これはnamespace myで定義しなおした標準関数strposのラッパー関数
もしここで
>$retval = \strpos($haystack, $needle, $offset);
に\をつけないと自身のstrposをさしてしまうので
この関数自体は標準関数のラッパーに過ぎず実装を持たないので正しく動かない
へたしたら再帰処理でループに陥るのと同じ感じになってしまう
104:デフォルトの名無しさん
19/01/30 22:22:17.50 Bo5lehOR0.net
もう1つの質問に答えてなかった
>$retval = \MY_NameSpace\strpos($haystack, $needle, $offset);
>と書くと、特定の名前空間を絶対パスで指定出来るという理解で良いですか?
まあそんな理解で大丈夫かと
105:デフォルトの名無しさん
19/01/31
106: 13:36:09.97 ID:8UUA+SfH0.net
107:デフォルトの名無しさん
19/01/31 14:50:10.17 87rKAAGWa.net
ユーザー定義関数の引数を変数にした時、渡された変数名も同じでいいんですよね?下の様に
でもいろんな説明みると変更してることが多いけどなんで?
function func($hoge){
・・・
}
func($hoge);
108:デフォルトの名無しさん
19/01/31 15:28:08.69 hjN211+T0.net
分けて考えてはいけないという誤解を与えないため
109:デフォルトの名無しさん
19/01/31 15:28:24.41 rgWv2NOA0.net
>>104
名前空間を指定しないということは
標準関数や内部クラスと同じグローバルの名前空間(\)に属することになるので
もちろんコーディングする上での利便性はいい
名前空間がPHP5.3から導入されたように昔はなかったわけだし「やりよう」によっては問題にならない
例えば被ってしまってエラー出たら関数名を変えるとか
被る可能性がかぎりなくないような風変わりな関数名をつけるとか
先人がその「やりよう」が面倒だったから導入したんだけど
実際にはよほど巨大なプロジェクトでもない限り問題は起きないと思う
あとは名前空間の概要見て決めたらいいんじゃないかな
URLリンク(php.net)
他人に使ってもらうことを考慮するならつけるべきだけどね
110:デフォルトの名無しさん
19/01/31 19:50:03.57 8UUA+SfH0.net
>>107
解説ありがとうございました。
ところで関数にprivateやpublicを付けられるのはclassの中だけですか?
namespaceの中でprivateな関数を定義することは出来ませんか?
つまり、そのnamespaceの中だけで作業する為の関数で、
外部に公開したくない関数です。
111:デフォルトの名無しさん
19/02/06 14:06:21.85 7EDRIJEy0.net
質問させてください。
配列で「りんご・バナナ・みかん・りんご・みかん・りんご」とあった場合、
これを「りんご1・バナナ1・みかん1・りんご2・みかん2・りんご3」
みたいに同じものが何個目かを書き加えたいのです。
どうやるといいしょうか?
112:デフォルトの名無しさん
19/02/06 22:56:42.64 7o71stsH0.net
$data=array('りんご','バナナ','みかん','りんご','みかん','りんご');
$result=$count=array();
foreach( $data as $key => $value ){
if( isset($count[$value]) ){
++$count[$value];
}else{
$count[$value]=1;
}
$result[$key]=$value.$count[$value];
}
var_dump($result);
113:デフォルトの名無しさん
19/02/07 09:46:48.28 zNwO6Ncy0.net
print_r(array_count_values($data));
でよくないすか?
114:デフォルトの名無しさん
19/02/07 09:47:44.44 zNwO6Ncy0.net
よく質問読んでなかったw
115:デフォルトの名無しさん
19/02/07 11:09:21.09 YOzllYWE0.net
なんで宿題をやってあげちゃうの
116:デフォルトの名無しさん
19/02/07 12:36:05.22 2KroeUTW0.net
暇だったからでは
117:デフォルトの名無しさん
19/02/07 21:45:05.72 EixwHHP40.net
array_multisort()の配列が多�
118:沍ウだった場合はどこを比較してるの? $ar[] = array(1); $ar[] = array(1); $ar[] = array(2); $ar[] = array(2); $ar2 = array(1,2,3,4); array_multisort($ar, SORT_DESC, $ar2); Array ( [0] => 3 [1] => 4 [2] => 1 [3] => 2 ) ---- $ar[] = array(1, 1); $ar[] = array(1, 2); $ar[] = array(2, 3); $ar[] = array(2, 4); $ar2 = array(1,2,3,4); array_multisort($ar, SORT_DESC, $ar2); Array ( [0] => 4 [1] => 3 [2] => 2 [3] => 1 )
119:デフォルトの名無しさん
19/02/08 00:54:59.90 DKnzBuB20.net
>>110
返信が遅くなってしまいすみません。
うまくできました。
本当にありがとうございます。
120:デフォルトの名無しさん
19/02/08 01:23:31.06 1Q4bQ8+M0.net
phpでスクレイピングした文字列をmysqlのデータベースにInsertしたいのですが、ざっくりどういう風にやればよいでしょうか?
スクレイピング自体は出来ていて、ここからDBに挿入する方法が知りたいです。
よろしくおねがいします。
121:デフォルトの名無しさん
19/02/08 08:16:42.39 Waqd0NNdr.net
ざっくりいうとINSERTのSQL文を書けばいいんだよ
122:デフォルトの名無しさん
19/02/08 11:07:14.81 VEywR5okr.net
URLリンク(media.theync.com)
URLリンク(i.imgur.com)
123:デフォルトの名無しさん
19/02/08 16:27:15.56 k5rPGxdZ0.net
サーバー側に数万枚の画像を保存する場合、数万枚を1つのフォルダに入れるのと、10000台、20000台のようにフォルダ分けしたほうがいいですか?
124:デフォルトの名無しさん
19/02/08 16:38:40.38 j4lUPneda.net
保存して何するかによるのでは?
125:デフォルトの名無しさん
19/02/08 16:57:55.31 k5rPGxdZ0.net
1ページに20件~50件くらいサムネ表示したり、1ページに数枚表示したり
ネットショップのようなイメージ
126:デフォルトの名無しさん
19/02/08 18:04:35.54 1w1isakW0.net
フォルダ分けするとアクセス時間が短くなる場合が多い
127:デフォルトの名無しさん
19/02/08 21:42:22.40 jEGlmC9W0.net
laravel関連の質問をお願いします。4日間前進できてません(汗
laravelのデフォルトのモデルUserと、テーブルusersを使い、ログイン(sign in)認証を行いたいのです。
----- form -------
<form action="***" method="post">
<input type="email" name="email>
<input type="password" name="password">
</form>
---- controller -------
public function post***(Requeat $request){
if(Auth::attempt(['email'=>$request->emai,'password'=>$request->password])
{
XXXXX;
}
ここで、if文のtrueにならず、すべてfalseになります。
Auth::attemptが、usersテーブルを読み込んでないような気がするのですが、
どうしてtrueにならないのか、教えていただけないでしょうか><
どうか、よろしくお願いします。
128:デフォルトの名無しさん
19/02/08 22:44:50.24 SnO1YjyT0.net
$request->emaiにlが足りて無いとか?
129:124
19/02/09 06:31:09.14 3JjKiGqr0.net
すみません。$request->emailです。
タイプミスはなくても、falseになります。
よろしくお願いします。
130:デフォルトの名無しさん
19/02/09 10:15:38.13 lpNDR5cs0.net
他人のホームページを書き換えたいんでつけど
PHP使えば狩野でつか?
131:デフォルトの名無しさん
19/02/09 10:38:25.62 LiyCmRY90.net
その他人が許諾しているなら、その他人に聞け
その他人が許諾していないなら、警察が聞いてくれる
132:デフォルトの名無しさん
19/02/09 17:11:10.81 kXc/Z+zP0.net
何を書き換えたいんだろう?
HTML CSS JAVASCRIPT、それともフレームワークに依存?
PHP,CAKE,いろいろあるから、一概になんとも・・・
133:デフォルトの名無しさん
19/02/09 18:20:17.39 koH3JFsI0.net
pearのサイトが死んでるんたがなんかあった?
134:デフォルトの名無しさん
19/02/09 18:23:52.81 LiyCmRY90.net
>>130
PEAR server is down
「PEAR公式サイトのウェブサーバー上で改変された『tainted go-pear.phar』と
セキュリティ侵�
135:Qが発見されました。PEARのウェブサイト自体は無害なクリー ンサイトを再構築するまで使用不能とします。より詳細な情報はPEARの公式 ブログでチェックしてください」
136:デフォルトの名無しさん
19/02/10 04:09:45.41 jBesuRSj0.net
Python勉強してるの
リストから”取り出す”っていう日本語ってなんか違和感ある
リストから取り出して要素を付け加えると元のリストにも反映されてる
これって取り出すっていう日本語だとイメージ変だよね
なんていうかリストのいち部分をズームアップしてそこだけ見えるようにしたようなイメージのほうがいいきがするの
だって取り出したんだったらいつ元に戻したの?っていうことになるよね?
イメージ的に
たぶん想像だけど元々のリストのメモリ上の位置は全く変わっていなくてずーっとそこにあるから取り出したっていう日本語が変なんだと思うの
137:デフォルトの名無しさん
19/02/10 04:13:15.33 jBesuRSj0.net
これはリスト=辞書a、辞書b
みたいになってて辞書aをとりだしてそこになにかを付け加えた場合に
元のリストに変更がそのまま反映されることを言ってます
取り出すっていう日本語の操作だといつ元に戻したのっておもうよね?
138:デフォルトの名無しさん
19/02/10 08:09:11.07 4xhMpHOb0.net
なんかぶっ飛んでる人がいますね
139:デフォルトの名無しさん
19/02/10 08:55:31.07 t3zAhvOs0.net
laravelに関する質問お願いします
Auth;;attemptで参照されるテーブルが、どこで定義されているか分かりますか?
140:デフォルトの名無しさん
19/02/10 20:03:25.52 Bb8eA8KO0.net
laravelの質問です
コントローラーの関数にフォームリクエストを入れるとPOSTからGETになるんですけど何でですかね?
use App\Http\Requests\fivechRequest;
class fivechContoroller extends Controller
{
public function write_ready() {
return view('write_ready');
}
public function write(fivechRequest $reqest) {
return "helllo world!";
}
}
fivechRequest $reqest
これ入れた途端にGETになってしまう
Route::get('test/bbs.cgi', 'fivechContoroller@write_ready');
Route::post('test/bbs.cgi', 'fivechContoroller@write')
->middleware(fivechMiddleware::class);
141:デフォルトの名無しさん
19/02/10 20:26:08.90 Bb8eA8KO0.net
public function rules()
{
return [
//'bbs' => 'string|alpha|max:8|required',
//'key' => 'integer|digits:10',
//'subject' => 'string|max:64|required',
//'from' => 'string|max:32',
//'mail' => 'string|max:16',
//'message' => 'string|max:4096|required'
];
}
}
に変更したらPOSTになりました… なんででしょうか?
142:デフォルトの名無しさん
19/02/10 22:44:52.33 Bb8eA8KO0.net
勝手にリダイレクトされるのとめる方法ないですかね
143:デフォルトの名無しさん
19/02/12 06:18:45.22 4rvCbmwy0.net
ソースをたどっていけば
144:デフォルトの名無しさん
19/02/13 15:56:50.06 qcwaRdjDa.net
cronで実行しているPHPで不具合が出て調べているのですが、
php.iniでエラーログを指定していない場合、
コマンドラインからPHPを実行した時のエラーログってどこに出るのでしょうか?
apacheで実行した場合はapacheのエラーログに出るようですが
145:デフォルトの名無しさん
19/02/13 17:21:57.25 6eI6oeOB0.net
URLリンク(php.net)
146:デフォルトの名無しさん
19/02/16 03:56:24.05 p8v5qaF40.net
質問させていただきます
データベースにセッション保存するようにsessionhandlerinterfaceを作りました
session_set_save_handlerで該当のハンドラを指定したらちゃんとデータベースにも書き込めているのですが
あるサイト上の複数ページで統一的にこのデータベース利用のセッションを使うには
各ページでsession_startの前に毎回ハンドラ指定をする必要があるのでしょうか?
(テストしてみると指定しないとデフォルトのファイル利用のセッションが作られているようでした)
php.iniか何かの編集でそもそもデフォルトをデータベース利用のセッションにするということなしに
上手いやり方があるのであればお教えいただければ幸いです
どうぞよろしくお願いいたします
147:デフォルトの名無しさん
19/02/17 12:12:25.21 vpvr2f070.net
>>140
cronから実行したプロセスは端末と結びついていないから、リダイレクト指定しなければただ閉じてる。
148:デフォルトの名無しさん
19/02/17 12:22:30.41 wSo27DN5a.net
>>141
ありがとうございます
デフォルトの設定だと標準エラー出力に出るんですね
log_errorsを使ってサーバ側のエラーログを出力先に指定することもできると
149:デフォルトの名無しさん
19/02/17 12:23:37.36 wSo27DN5a.net
>>143
なるほど
エラー出力をリダイレクトすればいいんですね
ありがとうございました
150:デフォルトの名無しさん
19/02/18 18:19:22.08 yhtTsT3P0.net
laravelに関する質問を受け付けていただけますと幸いです><
今まで使っていたcontroller(app/http/controllers/)が、突然使えなくなりました。
<現象>
上記パスのcontrollerを変更しても反映されない。
上記パスのcontrollerを削除しても、古いcontrollerの設定が生きてて、プログラム自体は従来どおり動く
なにか、他のパスに古いcontrollerが保存されていて、そっちを読んでいるような感じがする
という感じなのですが、何か改善する方法を教えてくださるかた、いらっしゃいませんでしょうか?
151:デフォルトの名無しさん
19/02/18 23:59:28.75 s6PjmKn40.net
PHPをFastCGIやmod_phpで常駐させて動作させるとき、最初に一回だけ実行されるコードとリクエストの度に実行されるコードはどうやって区別しますか
CGIモードの時は毎回全てのコードをロードして実行することになると思うんですが、
FastCGIやmod_phpだと予めロード済みの状態のプロセスを待機させてプロセスの起動やコンパイルの実行を省いて高速化していると思っています
例えばpythonのWSGIだと起動時にアプリケーション関数の外側に書いたコードが実行され、その後はリクエストのたびにアプリケーション関数の内部だけ実行されます
--------------------
do_something()
def application(environ, start_response):
start_response('200 OK', [('Content-type', 'text/plain')])
return 'Hello, world'
--------------------
これと同じようなことはどのように実現しますか
152:デフォルトの名無しさん
19/02/19 17:39:51.40 z2WxkWjZ0.net
親クラスのprotectedプロパティに値を代入する時、
子クラス側にもプロパティを定義するものですか?
コーディングの一般的な作法や、可読性的な話です。
153:デフォルトの名無しさん
19/02/20 03:09:15.11 FK1AOD6X0.net
>>148
そういうのはドキュメントに出力すればいいと思うけど
PHPDocが面倒なら個人開発程度なら簡易的なものとして
trait ClassInfo {
public static function getClass() {
return Reflection::export(new ReflectionClass(get_called_class()), true);
}
}
親クラスにこんなん入れて必要なときに参照すれば
少しはましになるんではないかと
154:148
19/02/24 02:45:30.45 yLdhIKyP0.net
>>149
遅くなりましたがレスありがとうございます
わざわざ子クラスにまで書く必要はなさそうですね
155:デフォルトの名無しさん
19/03/05 17:57:17.69 J7utTfUg0.net
"SELECT name FROM table WHERE name = 'hoge'"
これはしっかり結果帰ってくるのに
事前に$hoge = 'hoge'してから
"SELECT name FROM table WHERE name = $hoge"
これだと空になるのなんで
"SELECT name FROM table WHERE name = '$hoge'"
"SELECT name FROM table WHERE name = ".$hoge
とか試したけどダメだったわ;
156:デフォルトの名無しさん
19/03/05 18:12:06.81 /9vlYliD0.net
>>151
"SELECT name FROM table WHERE name = '" . $hoge . "'"
これだと?
157:デフォルトの名無しさん
19/03/05 18:18:55.25 J7utTfUg0.net
>>152
ダメだった
158:デフォルトの名無しさん
19/03/05 18:23:39.10 J7utTfUg0.net
すまん環境の問題だった
159:デフォルトの名無しさん
19/03/05 18:24:11.90 /9vlYliD0.net
>>153
編集したSQLをファイルか画面に出力してみて
意図した編集ができてないとしか思えないな
160:デフォルトの名無しさん
19/03/05 18:55:38.74 /9vlYliD0.net
解決したようですね、良かったです
161:デフォルトの名無しさん
19/03/06 13:44:29.53 kk7tfKyga.net
>>154
環境とは?
162:デフォルトの名無しさん
19/03/06 16:10:50.95 tl9V0B/R0.net
PHP: nl2br - Manual
URLリンク(www.php.net)
string に含まれるすべての改行文字 (\r\n、 \n\r、\n および \r) の前に <br /> あるいは <br> を挿入して返します。
とありますが
\r\nはWindowsのCR+LFだとして、\n\rという改行コードは存在するのでしょうか?
よろしくお願いします
163:デフォルトの名無しさん
19/03/07 03:55:06.79 wQ6Vu2No0.net
改行を\n\rで保存したり取り扱うエディタが存在するかもしれないし
\r\nと勘違いして\n\rとか渡しちゃうかもしれないし
そんな人にも<br><br>と2つにはせずに<br>1つにしてくれる親切設計ってだけでは
164:デフォルトの名無しさん
19/03/07 08:24:12.22 2g7ZW4ya0.net
めんどくさい
CR絶滅してLFだけで統一してくれればいい
ありがとうございました
165:デフォルトの名無しさん
19/03/08 15:30:59.07 yu/ETmP20.net
昔はCRとLFで機能使い分けてたみたいだけど、当時からほぼCR+LFの使い方が主流だったよね?
CRだけ使うなんて、同一行書き換え以外に使い道が思い浮かばない
166:デフォルトの名無しさん
19/03/08 16:47:11.41 2GMb9sQS0.net
laravelの質問なのですが、よろしかったらご教授くださいませ
DBに登録されている性別情報を取得して
view画面のラジオボタンの初期値として、該当する性別をチェック状態にしたいと考えてます。
コントローラー側で、
$profile=['u_sex'=>$xxx->u_sex,***];
$param=['user'=>$user,'profile'=>$profile];
view側のhtmlを
<input type="radio" name="u_sex" value=1 @php ($profile->u_sex) ? 'checked':''>
としたいのですが、
htmlの「@php ($profile->
の > で、<input を閉じてしまってうまく動かせません。
なにか良い方法はありませんか?
167:デフォルトの名無しさん
19/03/08 16:49:42.82 Ee+Y4rJr6.net
>>161
つMacintosh
168:デフォルトの名無しさん
19/03/08 18:05:06.32 aqheESZi0.net
>>162
laravel知らんけど↓でどう?
@if ($profile->u_sex) checked @endif
169:デフォルトの名無しさん
19/03/08 18:15:43.51 yu/ETmP20.net
>>163
言葉足らずだったね。スマン。
OSによっての解釈の話ではなくて、本来のCR、LFの意味での話。
CRはキャリッジリターン(行頭復帰)、LFはラインフィード(行送り)。
元々タイプライター(テレタイプ)から来てると思うけど、PCにおいてそれぞれ片方だけ
使う事あったのかな?って話。
結局使わないからOSによって都合のいい解釈になったんだろうけど。
まあどうでもいいや。スレチスマン。
170:デフォルトの名無しさん
19/03/08 18:32:37.31 4NSKE0Lh0.net
ダウンロードしたソースをapacheで動かしたところ
PHP Strict Standards: Declaration of defaultAuth::useredit() should be compatible with authBase::useredit($user)
このようなエラーが出て該当する部分を見ると
function useredit(&$user,$pwd = false) {
if ($pwd) {
$user['password']=crypt($user['password']);
}
$this->db->update('users',$user,array('id' => $user['id']),$this->userfi
171:elds); } 1行目の function useredit(&$user,$pwd = false) に「&」があるのですが、それを取り除くとエラーが出なくなりますが、 関数の引数の前に & はつけることがあるのでしょうか?
172:デフォルトの名無しさん
19/03/08 18:52:21.46 b/Kbk3X80.net
あります
173:デフォルトの名無しさん
19/03/08 18:59:00.84 aqheESZi0.net
>>166
URLリンク(php.net)
URLリンク(ideone.com)
174:デフォルトの名無しさん
19/03/08 19:42:19.86 4NSKE0Lh0.net
>>167-168
ありがとうございます、参照渡しというのがあるのですね。
php 5.4で、参照渡しが無くなったので、エラーが出ていることがわかりました。
&を取っても動いている感じなのですが、とりあえずそれで様子を見たいと思います。
175:デフォルトの名無しさん
19/03/08 21:14:39.94 aqheESZi0.net
>>169
エラーになるのは呼び出し側で&を使った場合
URLリンク(ideone.com)
親子でfunctionの定義が異なる場合にDeclaration of...って出る
URLリンク(ideone.com)
親子両方で&をつけるか&を取るか一致させればいいんだろうけど、多分&をつけるほうが正解なんじゃないかな?
176:デフォルトの名無しさん
19/03/09 02:21:59.24 BXeyfCeA0.net
>>170
>多分&をつけるほうが正解なんじゃないかな?
クラスのことは勉強不足でわからないのですが、
class hoge
function useredit($user) {}
を
function useredit(&$user) {}
に変更するとエラーが出なくなりました、
確かに両方で無しか有りにするとエラーが出ないので、どちらが良いかわかりませんが、
これで様子を見たいと思います、ありがとうございました。
177:デフォルトの名無しさん
19/03/09 07:23:29.43 4+hj1jJB0.net
>>164
ありがとうございます
そのコードでも、->の'>'が、<input タグの閉じる>と認識されてしまいます。
どうやってエスケープしていいか、方法が見つからないので、多重配列を避けて記述するようにします。
178:デフォルトの名無しさん
19/03/09 19:56:15.94 0WxXuN2u0.net
自分もbladeは知らないが
> htmlの「@php ($profile->
> の > で、<input を閉じてしまってうまく動かせません。
これはどうやって判断したの?
出力されるコードが
<input type="radio" name="u_sex" value=1 @php ($profile->
あるいはコードが変換されずにそのまんま
<input type="radio" name="u_sex" value=1 @php ($profile->u_sex) ? 'checked':''>
になってるの?
それともそこでエラーが出てて自分でそこが原因だと思ってるってこと?
179:デフォルトの名無しさん
19/03/09 22:30:58.51 4+hj1jJB0.net
予期せぬ > というエラーです
タグ内で@phpを使い、変数で判定することは避けて
タグの外で判定するようにしました。
色々ご指導ありがとうございました。
180:デフォルトの名無しさん
19/03/10 05:33:43.02 y6AdK4wp0.net
syntaxエラーかね
コード見る限りobjectにキャストしてない連想配列を
アロー演算子使って参照してるから
エラー起きてるのかと思ったけどそういうわけではなさそうか
よくよく見ると>>162はどこまでがPHPか判定できなさそうだな
普通のPHPだと下のようになるが
<input type="radio" name="u_sex" value=1 <?= ($profile->u_sex) ? 'checked':''>>
最後にいれるべき>が1つかけてる感じ
調べてみたら@endphpがあるようだからそれ使えば良さそう?
説明見る限りプレーンなPHP実行でechoしない感じがするから
<input type="radio" name="u_sex" value=1 @php echo ($profile->u_sex) ? 'checked' : '' @endphp>
これで一応>>162の閉じてなさそう問題は解決するけど
明白にとじてる>>164が動かないとなると
@php-@endphpや@if-@endifは1行じゃ無理とか
行頭に書かないといけないとかあるのかもしれない
181:175
19/03/10 05:35:39.36 y6AdK4wp0.net
ちょっとミス
> 普通のPHPだと下のようになるが
> <input type="radio" name="u_sex" value=1 <?= ($profile->u_sex) ? 'checked':''>>
↓
<input type="radio" name="u_sex" value=1 <?= ($profile->u_sex) ? 'checked':''?>>
182:デフォルトの名無しさん
19/03/10 08:21:41.87 dKY2ENzw0.net
>>175
先生、本当にありがとうございます。
@endphpは記載忘れですが、実際には記載してます。
<input type="radio" name="u_sex" value=1 <?= ($profile->u_sex) ? 'checked':''?>>
でも同じエラーが出てましたので、他の解決策が必要のようです。
コード的には
<?php
if($profile->u_sex==1){
echo '<input type="radio" name="u_sex" value=1 checked="checked">';
}
と修正したものを使うようにしました。
コードが1行で綺麗に書けないのが残念でした。
本当ありがとうございました!
183:デフォルトの名無しさん
19/03/12 21:16:05.10 fInyw+wI0.net
phpからローカルのexeとかシェル叩けますか?
184:デフォルトの名無しさん
19/03/12 21:17:44.08 fInyw+wI0.net
あ、apacheのWebサーバで動くphpのことです
185:デフォルトの名無しさん
19/03/13 10:25:19.40 AVj94jZX0.net
exec()
186:デフォルトの名無しさん
19/03/13 13:06:28.48 AVj94jZX0.net
WEBサーバに数十ミリ秒ごとにアクセスして、命令が出てる時はブラウザがスクリプトを実行する仕組みが今風らしい
187:デフォルトの名無しさん
19/03/13 17:39:55.13 2dJ2nxIw0.net
これだけ解釈に幅があるんだなw
188:デフォルトの名無しさん
19/03/15 10:45:15.54 +YXguzLt0.net
質問させてください
ファイルを開く
処理1
ファイルを閉じる
ファイルを開く
処理2
ファイルを閉じる
というようなコードを書いたんですが、
ファイルを開く
処理1
処理2
ファイルを閉じる
に変えた方がいいですか?
懸念としてはファイルを開くという処理そのものが処理速度的に重いのであまり繰り返すのはよくないかな?と
1と2を分けた理由は一つにまとめると処理が複雑になって可読性が低くなってしまったからです
お力添えよろしくお願いします
189:デフォルトの名無しさん
19/03/15 16:36:34.12 9yz/tpkK0.net
>>183
素人的な考えだけど、ファイルを開くとファイルを閉じるを二回もしてるから
一回で済ますことができるならまとめたほうがいいかもだしなんで開くと閉じるを2回もしてるの?理由があるの?とかいわれるだろうし
190:デフォルトの名無しさん
19/03/15 16:52:05.57 t0fouEo60.net
ファイルに対する操作が追記なのか、それともランダムアクセスによる更新なのか
ファイルのサイズがどの位なのか、
処理1と処理2は独立した内容なのか、それとも順序性があり、処理1が完了する前提が必要なのか
などなど色々条件がありそうだけど、
乱暴に言ってしまうけど、ファイル操作なんて大して重たい処理ではないと思う
191:デフォルトの名無しさん
19/03/15 17:11:16.81 +YXguzLt0.net
>>184 >>185
PC上でフォルダを覗いてファイルを開くと動作がもさっとしてる(スペックによる)けど、サーバー側ではそういった見た目(GUI)を伴わないから実際はサクサクサクッ!と動いてると考えていいですか?
どうしても自分のPC上での動きを参考に「ファイル操作」を捉えてるから、「開いて閉じて開いて閉じて」は動作が遅いかもと感じます。間違った考え方とは薄々思ってますけど
192:デフォルトの名無しさん
19/03/15 17:18:10.78 t0fouEo60.net
正確に言えば、PHPが動作している環境次第
ストレージの性能が良いなら殆ど気にする必要が無いだろうし
扱うファイルがとても大きいならファイル操作はそれなりの時間が掛かる
示された条件だと、この程度の一般的な見解しか出てこないと思う
193:デフォルトの名無しさん
19/03/15 17:23:40.16 t0fouEo60.net
処理の開始時間と終了時間を記録し、
処理の違いでどの程度変わるかを見てみれば良いと思う
自分の予測だと、殆ど誤差でしかないと思う
194:デフォルトの名無しさん
19/03/15 17:54:38.04 +YXguzLt0.net
>>188
処理速度の計測方法調べてやってみたいと思います
参考になります。ありがとうございました
195:デフォルトの名無しさん
19/03/15 18:02:24.87 9yz/tpkK0.net
phpのセッションとかでセッションの中身が1の時はAのページ成型、セッションの中身が2の時はBのページの成型、セッションの中身が3の時なら中身を1にしてAのページにって作られてた時に
ブラウザのクロームとかの履歴では全部同一のページと認識されて上書きされるの?前のページ内で書かれてたものも全部上書きされるのか?
196:デフォルトの名無しさん
19/03/15 21:21:03.69 L+hp7qbL0.net
Ruby では、小さいサイズで、読み込みだけなら、
File.read, readlines で、一気に全部読み込んで閉じる
処理は、その後に行う
読み込んで書き戻すのなら、処理中もファイルを開いておくかも知れないけど、
そうするとその間、排他制御で、そのファイルはロックされる
197:デフォルトの名無しさん
19/03/19 12:27:22.14 DBfAR41T0.net
laravelなのですが、よろしかったら教えてください。
ローカルに作成したサイトのindex.に接続すると、
geolocationで位置情報を取得するようにしたいのですが
アクセス先がlocalhost:8000/indexの場合には位置情報が取得できるのですが
実機を使うために、IPアドレスでアクセスできるように
php artisan serve --host 192.166.13.102と設定すると
開発しているPCや、実機でアクセスしても、geolocationが使えなくなります。
実機でローカルサイトにアクセスして、geolocationが使えるようにするには
どうしたらいいのでしょうか?
198:デフォルトの名無しさん
19/03/19 13:20:28.75 rDiaexLE0.net
エスケープ処理のために$clean[$key] = htmlspecialchars( $value, ENT_QUOTES);でしてるんだけど
<や>が変換されないでそのまま表示されちゃってるんだけどちゃんと変換できてないの?それとも書き方が悪い?誰か教えて
199:デフォルトの名無しさん
19/03/19 15:46:05.54 70wn5si7a.net
>>193
そのまま表示されるのが正しい動作じゃないの?
200:デフォルトの名無しさん
19/03/19 15:46:13.95 rDiaexLE0.net
>>193
$valueの中身を忘れてた
$value = <script type='text/javascript'> location.href='URLリンク(www.yahoo.co.jp)'; </script>;
これで
201:デフォルトの名無しさん
19/03/19 18:54:10.34 mQ/pmFPua.net
魔改造感半端ないな
202:デフォルトの名無しさん
19/03/19 21:37:27.82 uCH5q9Xf0.net
何でVisualStudioみたいにGUIで開発できないんですか?
203:デフォルトの名無しさん
19/03/19 23:59:06.58 rDiaexLE0.net
>>194
でもサニタイズしたはずなのにphpでフォームにJavascriptの$valueの中身入れるて飛ぶとYahooに飛んじゃってるんだよなIEで確認したから間違いないけど
204:デフォルトの名無しさん
19/03/20 00:02:34.03 UM8alzkY0.net
どうせブラウザのソース表示してみたら&lt;&gt;になってるとかいうオチだろ
205:デフォルトの名無しさん
19/03/20 00:56:07.42 RdYQnT9u0.net
それは、タグ内の属性じゃん!
そこは、要素内の内容部分じゃないよ!
206:デフォルトの名無しさん
19/03/20 18:33:53.86 DvYG4dOj0.net
PHPやたったことないんだけど、どういう風に起動してるのか俺に簡単に説明してくれない?
cgi(まあperlとしよう)だと、ブラウザがhttpdにリクエストして、cgi(perl)を起動する。
httpdは標準出力(まあたぶんhtml)を受け取り、それを必要なら加工/整形(主にヘッダー) してブラウザに出力する。
phpはどこで誰からリクエストを受けてどうやって動いて、誰に何を出力してんの?
そしてcgiとは何が違うの?
とりあえず、cgi(perl)と違うのは、常駐して起動してるから速いんだよ、ってのは聞いたけど、それ以上は分からない。
そのへんを分かりやすく俺に教えてやってくれ
お願いします
207:デフォルトの名無しさん
19/03/20 20:16:45.35 G66GdUMN0.net
phpはcgiモードとmoduleモードがあって
cgiは呼び出し式
moduleモードは常駐式
受け取ったデータの処理の流れは一般的なcgiと同じでhttpd経由
常駐だから早いのも確かにそうだけど、標準機能のみで色々できるから、機能を都度importしない事も速さの主因
まあそれはちょっとhttpdとの関連性からは離れている話ですね
208:デフォルトの名無しさん
19/03/20 21:25:54.44 DvYG4dOj0.net
>>202
わかったありがとう!
cgiモードとmoduleモードの選択ってのは、どこで誰(どのプログラム)が判断して決めるの?
php自身がmoduleモードで動いていて、httpdがmoduleモードで動いてるphpに対してのアクセス方法を知っているってこと?
209:デフォルトの名無しさん
19/03/20 21:57:05.35 RdYQnT9u0.net
.exe, .dll の違い。
例えば、sqlite3.exe, sqlite3.dll の違い
CGI は、.exe と同じ。
別プロセスを起動するから、その起動時間が掛かる
.dll は、そのプログラム(プロセス)内にライブラリを読み込むだけ。
別プロセスを起動していない
210:204
19/03/20 22:02:24.68 RdYQnT9u0.net
Ruby, PHP, Perl などのCGI では、
httpd が別プロセスを起動して、結果を取得して、プロセスを終了させる
毎回この起動・終了に、時間が掛かるから、
起動しっ放しというモードもある
211:デフォルトの名無しさん
19/03/20 22:07:48.21 DvYG4dOj0.net
>>204
かなり分かった!
httpdが自分のプロセスにdllを取り込むってことかな?
212:デフォルトの名無しさん
19/03/21 09:03:31.33 PB8+T8io0.net
URLリンク(i.imgur.com)
このプログラム実行して、43行目にphp Array to string conversion inっていうエラーが出る。ググッて見たけど分からん。
213:デフォルトの名無しさん
19/03/21 11:43:04.25 5nRGGgZs0.net
ループ足りないような
30行目のarray_chunkで$imagesは配列の配列になる
URLリンク(php.net)
42行目で$imgは配列
43行目で配列($img)をechoしようとしてる
foreachを追加して2重ループにすればいいんじゃないか
214:デフォルトの名無しさん
19/03/21 14:43:45.53 lAqh1JQYM.net
$images が文字列の配列の配列なんだから$images[$page]が文字列の配列
$imgは文字列だろ
215:デフォルトの名無しさん
19/03/21 15:03:48.50 mQ6nyU1M0.net
>>207
とりあえず43行目あたりで print_r($img); とかやってみたら
216:デフォルトの名無しさん
19/03/21 15:36:27.39 PB8+T8io0.net
解決しました!ありがとうございます
217:208
19/03/21 16:30:56.90 5nRGGgZs0.net
>>209
確かにそうだ >>208は間違い
>>211
どう解決したのか書いてくれると有り難い
218:デフォルトの名無しさん
19/03/21 18:32:18.31 QCgCURXL0.net
>>193
原因がわかったわ、その前にページが止まるからなぜなんだろうと思ったらChromeが制御してたわ
コードのscriptタグを検知して連続遷移しないようにしてたみたいだ、余計なことを・・・
219:デフォルトの名無しさん
19/03/21 19:26:17.36 iAqXNI0+0.net
質問です。
htmlソースをinclude等で読み込む際、そのソースの途中に追記する事ってできますでしょうか?
読み込むソース
<div>1行目</div>
<div>2行目</div>
<div>3行目</div>
↓
includeする時にこうしたい
<div>1行目</div>
<p>追記</p>
<div>2行目</div>
<div>3行目</div>
220:デフォルトの名無しさん
19/03/21 21:00:02.45 QKEEZEuZ0.net
$text = "<p>追記</p>";
<div>1行目</div>
<?php echo $text."\n" ?>
<div>2行目</div>
<div>3行目</div>
とか
<div>1行目</div>
<?= $text ?>
<div>2行目</div>
<div>3行目</div>
とか
221:デフォルトの名無しさん
19/03/21 21:19:06.65 ZeSQsBE10.net
Ruby, JavaScript にもある、部分テンプレートを読み込む、partial file の機能だろ。
PHP のフレームワークにもあるはず
一般的には、header, footer などの各部分は、別ファイルにして読み込んで使う
222:デフォルトの名無しさん
19/03/22 00:15:37.10 j6KcVv1w0.net
>>215
すいません質問の仕方が悪かったです。
読み込む側のページでのみ関数みたいに個別で追記をしたいんです。
読み込まれる側のファイルにURL判別とかの細工でもしないと無理ですかね・・?
jQueryでいう、.loadしたソースにコールバックで.insertAfter();を走らせるイメージです。
223:デフォルトの名無しさん
19/03/22 00:18:51.61 j6KcVv1w0.net
>>216
そうです。ありがとうございます。
フレームワークなどで行うのですね。
224:デフォルトの名無しさん
19/03/24 03:24:20.66 u71/GScf0.net
include/requireは関数じゃないので返り値としてソースを受け取れないから
そのinclude/requireしたファイル内で追記してどうこうってのは無理
file_get_contentsみたいの使ってメモリにロードすれば可能
そこでロードしたソースをいじればいい
PHP標準のDOMパーサーは非常に使いづらいので正規表現がお手軽
細かい関数の使い方は調べてもらうにして
#tmpl.inc
<div>1行目</div>
<div>2行目</div>
<div>3行目</div>
#a.php
<?php
$src = file_get_contents('tmpl.inc');
~
a.phpでどうしてもinclude/requireしたものをとっておきたいならラップして
#a.php
<?php
require 'tmpl.inc';
#b.php
<?php
$src = file_get_contents('a.php');
~
225:デフォルトの名無しさん
19/03/24 12:20:19.94 cA6CskBI0.net
>>219
a.php や b.php のくだりがよく分からんが、
ob_start();
include 'tmpl.inc';
$contents = ob_get_contents();
ob_end_clean();
とやる方が手っ取り早いんじゃね。
226:デフォルトの名無しさん
19/03/24 13:02:43.00 3sTzwWJg0.net
ちゃんとやるならTwigとかを使うべきやな
227:デフォルトの名無しさん
19/03/24 17:37:53.78 VT2RwePW0.net
>>219
>include/requireは関数じゃないので返り値としてソースを受け取れない
理解しました。ありがとうございます!
file_get_contentsはスクレイピング時に使った事あるのですぐ理解できました
ありがとうございます~
>>220,>>221
ありがとうございます
一番知りたかったのはinclude/requireでは無理と言う事でした
方法論、参考にさせていただきます
228:デフォルトの名無しさん
19/03/24 18:04:06.12 cA6CskBI0.net
>>222
http経由の file_get_contents なら >>219 の b.php は tmpl.inc の内容(が require で処理されたもの)が得られるけど、多分そのままやってもローカルの a.php のソース自体が得られるだけだと思うからきちんと実験した方がいいよ。
>>220 のやり方は例えばメールの文面なんかを別ファイル化したりといろいろ使い道があるよ。
mail.inc を
お問い合わせありがとうございます
<?=$date;?>に<?=$name;?>からのお問い合わせを受け付けました。
受付番号は <?=$no;?> です。
みたいに書いておいて >>220 のやり方で mail.inc を include すると、変数が当て込まれた形で $contents として得られる。
これを
list($subject, $body) = explode("¥n", $contents, 2);
とやってタイトルと本文に分離してメールを送るとかね。
$date とか $name なんかの変数は include してるスコープから見えるように設定しておく。
229:デフォルトの名無しさん
19/03/24 22:28:41.20 VT2RwePW0.net
>>223
ご親切にありがとうございます。
とてもスマートな印象ですね。
今後の参考にさせていただきます。
230:デフォルトの名無しさん
19/03/25 17:56:02.49 IkNYQuI20.net
$paramに連想配列を格納して、foreachで取り出そうとしてるんですけど
先頭要素のキーが取り出せず、先頭要素の値から取り出し始めてしまうのですが
そういう挙動に詳しい人いらっしゃいますか?
231:デフォルトの名無しさん
19/03/25 19:54:37.41 oLRasqjYM.net
foreach ($array as $key => $value)
にして、$keyにアクセスしてる?
232:デフォルトの名無しさん
19/03/26 06:30:51.59 3VVyorUw0.net
してます
var_dumpで配列を吐き出すと、しっかり吐き出せるんですけどね
こんなんで時間かかってしまって泣きですわ
233:デフォルトの名無しさん
19/03/26 08:52:30.14 rW+qOQwv0.net
>>227
array_keys を使うとどうなる?
234:デフォルトの名無しさん
19/03/26 11:55:41.39 muIRcyXB0.net
ありがとう
コード丸まる書き換えました
235:デフォルトの名無しさん
19/03/27 06:16:05.76 935VNAcgM.net
いいの?それでw
気になるわぁ
再現コードあれば欲しい
236:デフォルトの名無しさん
19/03/27 07:02:12.26 LqjZ6KSp0.net
初めて聞く症状だけれど
var_dumpで確認できている配列データなら
foreachで取り出せないわけないので
見間違いとか、スクリプトやタグのせいで消えてしまっているとか別の要因なんでしょ
237:デフォルトの名無しさん
19/03/27 07:22:24.12 yj3g7joz0.net
だなぁ
>>226 のコードで最初のキーが取り出せず値から取れちゃうというのが、$key と $value に具体的に何が入ってるということなのか分からんな。
言葉通りに捉えれば $key に最初の要素の値が入ってるんだろうが、んじゃ $value には何が入ってるの?みたいな。
238:デフォルトの名無しさん
19/03/29 19:38:19.41 DzAWjPl30.net
centos7でphp72をremiで入れた場合、
# php
-bash: php: コマンドが見つかりません
を解消するための、正しいシンボリックリンクの張り方ってどこに作ってどこへ向けるのが正解?
/usr/binに作るのか、
パスが通っていればどこでも良いのか、迷ってます。
インストールしたときは
# cd /bin/ ; ll | grep php
php72 -> /opt/remi/php72/root/usr/bin/php
となっています。
239:デフォルトの名無しさん
19/03/30 01:29:36.74 Ae//lPdG0.net
>>233
ちゃんとphp-cli入れてるか?
240:デフォルトの名無しさん
19/03/30 01:45:18.36 3vDAxa540.net
>>234
はい、入ってますが、phpは宙ぶらりんな状態になっていますので、毎回シンボリックは張る物だと思っていました。
# yum list | grep php72 | grep cli
php72-php-cli.x86_64 7.2.16-1.el7.remi @remi-safe
# which php
/usr/bin/which: no php in (/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin)
# which php72
/bin/php72
241:デフォルトの名無しさん
19/03/30 02:01:04.87 Ae//lPdG0.net
>>235
URLリンク(blog.remirepo.net)
242:デフォルトの名無しさん
19/04/01 02:47:56.82 6Qmf1LuG0.net
lineボット作ろうとしてるけど
curl_initが使えない
243:デフォルトの名無しさん
19/04/01 09:14:31.30 ymg/4x830.net
参考までに、Windows 10・WSL・Ubuntu 16.04 で、python の、symbolic link は、
/usr/bin$ file python
python: symbolic link to python2.7
/usr/bin$ file python3
python3: symbolic link to python3.5
244:デフォルトの名無しさん
19/04/01 12:30:46.03 vaN0OZHPM.net
まったく参考になりませんでした。
245:デフォルトの名無しさん
19/04/02 07:05:50.55 d+tMH0Y20.net
>>237
1. 使えるようにする
2. curlの実装を探してくる
3. curlを自分で実装する
好きなのえらべ
246:デフォルトの名無しさん
19/04/03 00:39:50.63 GW0S4nvD0.net
URLリンク(paiza.io)
こういう連想配列の中に配列入れてた時に特定の取得したいときはどうすればいい?
247:デフォルトの名無しさん
19/04/03 01:37:44.24 4XO/CSdW0.net
Windows 10では、バージョン1803(Windows 10 April 2018 Update)で、
curlコマンドが、標準コマンドとして追加された。
ただし、Linux のcurl とは挙動が異なるかも知れない??
コマンドプロンプトで、where curl とすると、
C:\Windows\System32\curl.exe
PowerShell にも、curl というalias がある。
こちらの実体は、Invoke-WebRequest。
こちらよりも、curl.exe を使った方がよいかも
PowerShellで、gal -name curl とすると、
curl -> Invoke-WebRequest
248:デフォルトの名無しさん
19/04/03 13:15:08.75 H4sG9A7Rd.net
>>242
ubuntu18でやってるんよね
webシステム作ってて
249:デフォルトの名無しさん
19/04/03 14:20:29.53 zicRLWLY0.net
質問させてください。よろしくお願いします。
DBはsqliteというのを使っています。
DBは、user_name : 都道府県 :というカラムがあります。DB件数は1000件で、ランダムで生成しています。
formページで、都道府県を入力すると、$form_prefという変数に入力値を格納し、
DBへは、where('都道府県','$form_pref)で検索すると、検索結果は0になります。
また、where('都道府県','東京')で検索すると、検索結果は正しく検索されます。
where句で、変数によって検索をかけると、正しく検索されないのはなぜなのでしょうか?
250:デフォルトの名無しさん
19/04/03 14:46:17.53 57e5+lwMr.net
>>244
なんのライブラリ使ってるかしらんが、そもそもお前のそのソースよくみろ
余計なものが入ってるだろ
251:デフォルトの名無しさん
19/04/03 17:15:35.24 CuyxcMNZa.net
PHP8でJIT
252:デフォルトの名無しさん
19/04/03 17:16:53.55 r4klkqBe0.net
'
253:デフォルトの名無しさん
19/04/03 17:46:29.42 zicRLWLY0.net
>>245
ありがとうございます
where('都道府県',$form_pref)で検索しても検索できないです。
クオーテーションがないことが問題なのでしょうか?
254:デフォルトの名無しさん
19/04/03 17:52:22.54 ZmtTnpp/0.net
>>248
DBに渡っているはずのSQL文を一度画面に表示させてみ
多分、それで解決するよ
255:デフォルトの名無しさん
19/04/03 22:39:33.33 qlQFDRbn0.net
特定のフォルダ内にjpgファイルが1枚でもあるか確認する良い方法なにかありますか?
256:デフォルトの名無しさん
19/04/03 23:10:33.79 cKVyKni5a.net
direcoryiteratoriteratorでリスト取得してforeach
257:デフォルトの名無しさん
19/04/04 01:25:57.77 hUbHMIpd0.net
glob
258:デフォルトの名無しさん
19/04/04 07:19:16.27 2Mcvpa6R0.net
>>248
エラーが出てるならエラーの内容を教えて
プログラムエラーでなくて論理エラーなら
単に検索に使ってる値と、対象となる値が違うとか、そんなもんでしょ
259:デフォルトの名無しさん
19/04/04 10:06:27.24 AiNrhaZA0.net
リストを全部取得するのではなく、jpgがあった時点でtrueを返す方法ってありますか?
数が多いファイルが含まれると遅くなってしまいました。
260:デフォルトの名無しさん
19/04/04 10:22:52.98 F6RY7aLA0.net
dbでファイル情報管理すりゃいい
index化みたいな
261:デフォルトの名無しさん
19/04/04 10:30:53.37 kJslP6Nd0.net
>>254
ファイル数が万単位とかであるならば
255も言ってるようにDBで拡張子ごとにファイル名を管理したり
jsonでデータ管理してみたら
262:デフォルトの名無しさん
19/04/04 10:36:26.67 kJslP6Nd0.net
個人的にはjsonが好き
263:デフォルトの名無しさん
19/04/04 10:41:50.32 l5IgkZnr0.net
>>254
まんま、したい事すりゃ良い。
jpgか調べて見つけた時点でreturn true。
264:デフォルトの名無しさん
19/04/04 11:20:51.83 AiNrhaZA0.net
全取得してからしか調べられないようなのでglobを使っていきます。
ありがとうございました。
265:デフォルトの名無しさん
19/04/04 11:24:22.32 8cxX9aNp0.net
ls *.jpg 2>/dev/null | wc -l
266:デフォルトの名無しさん
19/04/04 12:56:58.43 Rdj6YsTrM.net
>>254
jpgかどうかに関係なくファイルの多いディレクトリというだけで遅くなるからあきらめろ。
267:デフォルトの名無しさん
19/04/04 15:38:52.96 j78mKFJX0.net
PHP始めるけどどんな環境がいいの?
IDEは多分vscode使いたい
Pythonだとインポートサジェストがvscodeにはまだないけどphpは大丈夫?
それとPythonで言うanacondaみたいなものはあるの?
鉄板とかあるの?
268:デフォルトの名無しさん
19/04/04 21:26:26.31 OS5/cJ9r0.net
xampp
269:デフォルトの名無しさん
19/04/04 21:28:02.75 c7BBV/ypM.net
270:
271:デフォルトの名無しさん
19/04/05 10:24:35.32 0lUjLeBK0.net
色々と調べてみるとザンプにしますか?Dockerにしますか?って感じなんだな
やっぱりLinux上でやらないと駄目かな?出来るだけ仕事現場でそのまま使えるテクノロジーで学びたいんだけど
272:デフォルトの名無しさん
19/04/05 12:02:19.00 0lUjLeBK0.net
色々と調べてみた結果Lpicの資格も欲しいのでVMwareにCentOS入れてDockerでやっていこうと決めました。普通にPHP学ぶだけなら>>263が最適解だと思います。>>263氏ありがとう
273:デフォルトの名無しさん
19/04/05 12:29:53.49 TOzxK/5gd.net
今どきサーバの知識とかいらなくね?
LaravelとかRailsは内蔵されてるし
Xamppとかいらんわ
274:デフォルトの名無しさん
19/04/05 12:47:45.34 x0YMrYHD0.net
このスレはXAMPP派が多いらしい
開発環境ならビルトインサーバで十分だしCI環境ならDockerだろうと思うのだがねぇ
275:デフォルトの名無しさん
19/04/05 12:52:11.17 0lUjLeBK0.net
>>267
違う板で未経験から働きたいならlpicとってサーバーをある程度理解してる事をアピールしたほうが良いとアドバイスされたんだよね
まぁ取ってなくても早いうちに転職活動したほうがいいとも言われたけど
276:デフォルトの名無しさん
19/04/05 13:06:58.84 RkNgF4tA0.net
Pythonが出来る風な口調だけど
なんでわざわざ就職考えるのにPHPなんて始めるんだっちゅう
277:デフォルトの名無しさん
19/04/05 13:47:55.69 0lUjLeBK0.net
Pythonの求人って全然ないよ?
278:デフォルトの名無しさん
19/04/05 14:33:47.22 RkNgF4tA0.net
なんでそうやってしれーっと嘘つくんだよ
indeedで東京エリアでPHPで検索して15000件
Pythonで検索して10000件だぞ
279:デフォルトの名無しさん
19/04/05 15:31:48.12 Lpo8mNdId.net
それSES会社がテキトーに検索ワード盛ってるだけだろ
求人量ならJava、PHPの足元にも及ばんぞPythonとかRubyって
質は高いと思うけど
280:デフォルトの名無しさん
19/04/05 16:34:16.70 0lUjLeBK0.net
ついでに言うと東京に行く気はないわ
281:デフォルトの名無しさん
19/04/05 21:01:42.24 8A68roIQ0.net
PHPのエディタ、今までAtomを使ってて、VScodeも気になるんだけどどう?
282:デフォルトの名無しさん
19/04/05 21:02:27.86 RkNgF4tA0.net
いやいや
今スタートアップはほとんどPythonだから
283:デフォルトの名無しさん
19/04/05 21:12:50.65 RkNgF4tA0.net
Atomよりはだいぶ軽いし動作は軽快
使い勝手もほぼ一緒
まあしょせんエディタだけども
284:デフォルトの名無しさん
19/04/05 21:54:48.30 OvXPdzic0.net
Atom重い。VScodeがいいぞ。
285:デフォルトの名無しさん
19/04/05 22:15:14.08 72+SeKx30.net
だよなVSだよな
286:デフォルトの名無しさん
19/04/05 23:37:00.69 PMv6rz9+r.net
マカーはVSコードなど使わないからな
もちろんGithubも使わねえ
287:デフォルトの名無しさん
19/04/05 23:44:48.07 xPcsbeSU0.net
PHP は多いけど、低価格っぽい。
多さの順は、COBOL > Ruby > Python
Ruby は、Vagrant, Chef など、サーバー管理構築運用の仕事もあるから、
OS をよく知っている印象が強い
288:デフォルトの名無しさん
19/04/05 23:56:13.53 FzdQrB750.net
Perlは?(震え声)
289:デフォルトの名無しさん
19/04/05 23:58:38.98 xPcsbeSU0.net
>>266
今はLPIC じゃなくて、LinuC。
OS の機能やサーバー管理構築運用なら、Vagrant, Chef などで使われている、Ruby がお勧め。
こういうシェルスクリプトの代替機能を、面倒なPython で学ぶ必要はない!
先に、Rails よりも、Sinatra をいじくりまわせ!
YouTube に、雑食系エンジニアのKENTA の動画がある。
転職者は、見ておくべき。
PHP は、転職での評価が低い
KENTA 自身は、Ruby にそっくりな関数型言語、
Elixir のフレームワークで、ポートフォリオを作ったらしい。
ここまで行くと、年収1千万超!
290:デフォルトの名無しさん
19/04/06 00:24:48.26 uCKV04Asr.net
phpで年収1800万の俺にくらべたら下じゃん
291:283
19/04/06 01:23:26.51 f7FNE/du0.net
Rails は、年収3千万円超のハーバード大学でも、教えているほど!
プログラマーなんて、年収が1/5 ぐらいになるのに、なぜ教えるのか、わからないw
292:デフォルトの名無しさん
19/04/06 05:01:41.65 22mucI93r.net
OSのコマンドアプリやシェルをラップする事務員向けWebGUIみたいなのできますか?
293:デフォルトの名無しさん
19/04/06 05:09:54.95 tnKohzU7d.net
KENTAって人の動画をマジで信じてる人いてビビったわ
技術を煽って自分のオンラインサロンに入らせる典型的な不安ビジネスやってる人じゃん
あとあの人のポートフォリオ見たらわかるけどHelloWorldレベルのことしかやってないぞ
294:デフォルトの名無しさん
19/04/06 06:20:24.71 n41jBgHa0.net
Ruby推しにろくな人間はおらんのや
295:283
19/04/06 08:22:38.32 f7FNE/du0.net
KENTA の言ってる事は、おおむね正しい。
また、Ruby から、Elixir までやっているから、てっきりトップ・エンジニアだと思っていた
>>286
Ruby なら、`~` で囲むと、コマンドも実行できる。
puts `ls | wc -l`
1-liner なら、
ruby -e 'puts `ls | wc -l`'
だから、OS の機能や、サーバー管理構築運用のVagrant, Chef などで、Rubyが使われている
PowerShell コマンドも呼べる。
例えば、クリップボードを取得する
puts `powershell Get-Clipboard`
1-liner なら、
ruby -e 'puts `powershell Get-Clipboard`'
296:デフォルトの名無しさん
19/04/06 12:01:46.77 I7rc3KX60.net
>>287
kwsk
297:デフォルトの名無しさん
19/04/06 18:25:21.69 weoUXr5W0.net
ターミナルで
ruby -e 'puts `ls | wc -l`'
なんて打ってる奴いたらクビにするわw
298:デフォルトの名無しさん
19/04/06 20:44:27.91 luFKN00U0.net
このスレなら 「PukiWikiから○○に移行したよ」って人もいそうなのでお聞きします。
いま時の 小規模向けWiki でオススメのがあったら教えてください。 PHPベースでなくても構いません。
昔 PukiWiki で個人的なメモを管理してたんですが もう何年もご無沙汰しています。
299:デフォルトの名無しさん
19/04/11 04:36:20.03 yaNFrze20.net
ローカルでしかPHP触ったことないんだけどネットに繋ぐ場合ってどんな方法ある?サーバーを借りるの以外で
300:デフォルトの名無しさん
19/04/11 04:50:28.27 Dck3yL7h0.net
?
301:デフォルトの名無しさん
19/04/11 04:55:24.76 FfVS6eCx0.net
>>293
ローカルのPCをインターネット側からアクセス可能なサーバにするとか。
302:デフォルトの名無しさん
19/04/11 09:55:10.52 w1EtGven0.net
>>295
いまアパッチ使ってローカルでやってるんだけど設定変えて繋げたらセキュリティとかの対策必要なの?
仮想環境でやってないからちょい怖い
303:デフォルトの名無しさん
19/04/11 10:27:24.01 GF1IL3KP0.net
そのPCだけではなくルーターの設定も変えないと
304:デフォルトの名無しさん
19/04/11 10:42:29.96 GR4ezT/uM.net
そういう開発ニーズに応えたソフトあった気がする…
305:デフォルトの名無しさん
19/04/11 11:16:41.08 GR4ezT/uM.net
思い…出した!ngrokだ。flywheelでも採用されてたツール。
306:デフォルトの名無しさん
19/04/11 13:36:11.50 vSJqsCex0.net
面接のポートフォリオで動いてるとこ見せたい場合1番簡単な方法って何がある?
GitHubとかに上げても動いてるとこは見れないよね
307:さまよえる蟻人間
19/04/11 14:00:08.37 8je0Y1Lmd.net
>>300
動画なら通信環境があれば見せられるんじゃね?
308:デフォルトの名無しさん
19/04/11 14:36:54.31 1s3wCd4l0.net
>>301
やっぱ相手側が触ることは出来んよね
awsとか使えば相手が動かせる事も出来るよね
309:デフォルトの名無しさん
19/04/11 18:37:47.44 ucvbVgLJ0.net
ファイルアップロードフォームを作って、
iPhoneから写真や動画をアップロードして、
$_Filesからファイル名を取り出すと、
6CCC151C-DF3B-486F-8C97-AA06485047BD.jpeg
こんな感じの文字列になってしまいます。
元はIMG_0000.jpgのような名称だと思います。
iPhoneからの場合はどうすれば、正しい名称になるんでしょうか?