PHP質問・雑談スレ 2【初心者お断り(ROM歓迎)】©5ch.io
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん 転載ダメ©2ch.net
2016/10/17(月) 21:44:12.59ID:???初心者お断り(ROM歓迎)と書いてますが、初心者用のスレが用意されているからで、
難しい質問や話題をしなければいけないわけではありません。
PHPマニュアルの読み方を概ね理解していて、関数リファレンスが正しく読める方用のスレです。
PHP未導入の方や、手取り足取りが必要な初心者の方はム板のくだスレへどうぞ。
http://echo.2ch.net/tech/ (【PHP】で板内を検索)
前スレ
http://tamae.2ch.net/test/read.cgi/php/1461283091/
その他リンク
・PHPマニュアル
https://secure.php.net/manual/ja/index.php
・コードテスト・貼り付け用
http://ideone.com/
・プログラミングのお題スレ Part8 (求PHPer参戦)
http://echo.2ch.net/test/read.cgi/tech/1444216746/
このスレで扱う話題
・PHPのコード,設定や設定値に関する質問
・常識的範囲内でのコードレビュー依頼・改良相談
・PECL,PEARに関する質問
・PHP新機能やPHP関連トレンドの話題
(FWや非公式ライブラリの話題や特徴比較は良いが使い方から先の話題は専スレへ)
・PHPのバグ発見報告・公式に報告する前の検証依頼
このスレで扱わない話題
・直接関係ない○○特有の質問(専スレへ)
(HH,エディタ,IDE,サーバ,OS,DB,SQL,FW,テンプレート,非公式ライブラリ・アプリケーション等)
・PHPの改造
0266nobodyさん
2016/10/21(金) 18:13:21.18ID:???数値項目も文字列が戻る前提でコーディングし、なおかつPHPでもJavaScriptでも律儀に"==="を使っていて、ある日数値項目は数値で戻るようになると死ぬ
0267nobodyさん
2016/10/21(金) 18:35:28.79ID:???そんなんで死なないようにO/Rマッパーを作ってラップし、
エンティティの定義で型強制をするわけだが、
>>141の言ってるEloquentもDoctrineって、その辺やってくれるのかね?
俺は昔Doctrineの導入のクソめんどくささに辟易して自分で[クエリビルダ:O/Rマッパー]を作るに至った。
composerとか、まだ普及してなかった時代の話だ。
今はもっとマシかもしれん。
0268nobodyさん
2016/10/21(金) 18:37:53.01ID:???よく考えてみるべきだよ。
0269nobodyさん
2016/10/21(金) 22:03:34.73ID:???pearみたいなもんじゃないの?
0270nobodyさん
2016/10/21(金) 23:23:47.03ID:???とりあえず使ってみれば分かるけど, 依存関係の管理をしてくれる
そしてオートローダ―も自動生成してくれるからプログラマの手間が大幅に減る
Rubyのgem/bundler, Pythonのpip, Node.jsのnpmみたいな。最早必須
0271nobodyさん
2016/10/22(土) 01:21:32.24ID:???ボタンを押したとき、非同期でdata.phpからデータを取得しています。
ページの初期化時もdata.phpからデータを取得するにはどうすればよいでしょうか。
0272nobodyさん
2016/10/22(土) 05:48:24.63ID:???ていうかそれPHPの質問じゃないで
0274272
2016/10/22(土) 06:29:08.38ID:???あ・・初期化ってonload時のことかと思ってそう答えたけど
phpだけですませたいってことか?
home.phpで
・data.phpをrequireして関数を呼ぶ
・ボタン押した時と同じ内容のリクエストをdata.phpに送って結果を取得する
(curlあるいはstream_context作成してfile_get_contentsなど)
とかそのあたり?中身わからんのでなんとも
0277nobodyさん
2016/10/24(月) 14:38:12.28ID:???方法その1: ページロード時にボタンクリックで実行される関数を呼び出す
方法その2: 初期データをページに埋め込んで戻す
var initial_data = <?php echo json_encode($data); ?>;
方法その3:
方法その2に加えて、それを使ったレンダリングをサーバサイドで実行し戻す。
0278nobodyさん
2016/10/25(火) 14:31:47.75ID:9sW4yNavxamppでローカルサーバーを立て、テストしています
テストのローカルコンピュータと、本番のネットワークサーバーで処理を分岐させたいのですが、どういう風に分岐させるのが良いでしょうか?
具体的には、sakuraサーバーでデータベースのアドレスが"localhost"で取得できないために分岐させたいとおもっています。
0279nobodyさん
2016/10/25(火) 15:00:29.28ID:???> 具体的には、sakuraサーバーでデータベースのアドレスが"localhost"で取得できないため
意味がわかりません。
localhostで接続する設定がされてないだけでは?
0280nobodyさん
2016/10/25(火) 15:04:09.42ID:???言ってることがいまいちよくわからんが
>"localhost"で取得できないために分岐させたいとおもっています
てことは別にsakuraとlocalhost(xampp入ってるPC)のDBは同期する必要がないってことでしょ?
なら別に分岐させる必要なんてないのでは
0281nobodyさん
2016/10/25(火) 15:25:08.75ID:9sW4yNavわかりづらくてすいません。
もう少し勉強し直してきます
0282nobodyさん
2016/10/25(火) 16:01:15.50ID:???普通なら、接続先をlocalhostにしてローカルな環境で開発したものを、そのまま本番環境に持って行けばいいだけ。
下手にhostnameで繋ごうとすると、pg_hba.confで接続設定を追加しないといけない。
それとも、ローカルな環境から本番環境のデータベースに接続したいって話?
0283nobodyさん
2016/10/25(火) 16:05:42.39ID:???ってことだと思う
それを防ぐために分岐させたいと言うことだろう
やったことないけどそんな方法あるんかね
0284nobodyさん
2016/10/25(火) 16:57:02.97ID:???$dns = $local_mode ? local : sakura;
$pdo = new PDO($dns);
0285nobodyさん
2016/10/25(火) 17:07:49.84ID:???そのコード、ローカルで実行してもsakuraで実行してもlocal_mode = trueになるよね、、、
レベルで詰まってるのだろうか
0286nobodyさん
2016/10/25(火) 17:28:09.31ID:lqPEVp/h標準では
get_template_part( 'template-parts/content', 'search' );
のコードで検索結果を表示している様なのですが、
この関数で表示されるコードをa href="のhtmlタグのまま表示したいと思っています。
htmlspecialchars()やpreを使っても出来ないので、どうしたら解決出来ますか?
0287nobodyさん
2016/10/25(火) 17:32:14.92ID:???284だけど、俺は質問者じゃないのだが
例えばそういうふうにするって示しただけで
当然本番じゃfalseにしてから使うのを想定してる
0289nobodyさん
2016/10/25(火) 17:46:53.99ID:???> 284だけど、俺は質問者じゃないのだが
いや、わかってるし
> 当然本番じゃfalseにしてから使うのを想定してる
編集するならそんなめんどいことしなくて
$pdo = new PDO(sakura);
ってやればいいし
一つのコードで何かを振り分けたいんじゃないの?
0290nobodyさん
2016/10/25(火) 18:05:16.41ID:???・環境変数DB_HOSTを設定しそれを使う(なければlocalhostとか)
・アプリのエントリポイントを分ける(index.phpとindex_dev.phpとか)
0291nobodyさん
2016/10/25(火) 19:48:51.12ID:???開発環境と運用環境で処理を分けるってのはDBに限った話じゃないだろうし。
0292nobodyさん
2016/10/25(火) 21:52:30.71ID:???>www.php.net の所有者による Web サイトの設定が不適切です。
>あなたの情報が盗まれることを防ぐため、この Web サイトへの接続は確立されません。
>www.php.net は不正なセキュリティ証明書を使用しています。
> 自己署名をしているためこの証明書は信頼されません。
> エラーコード: SEC_ERROR_UNKNOWN_ISSUER
だれかwgetで取ってくるから最新のソースのアドレス頼む
0293nobodyさん
2016/10/25(火) 22:03:53.46ID:???https://help.sakura.ad.jp/hc/ja/articles/206053952--%E3%83%AC%E3%83%B3%E3%82%BF%E3%83%AB%E3%82%B5%E3%83%BC%E3%83%90-%E3%83%87%E3%83%BC%E3%82%BF%E3%83%99%E3%83%BC%E3%82%B9%E3%81%AE%E4%BD%9C%E6%88%90-%E8%BF%BD%E5%8A%A0-%E5%89%8A%E9%99%A4
(禁止ワードで張れないからリンク先参照)
のようだからlocalhost指定が出来ないってだけの話だろ
本番に移行するときにDBの接続情報変えればいいってだけの話
0294nobodyさん
2016/10/26(水) 00:17:59.48ID:???…
https://secure.php.net/downloads.php
0296nobodyさん
2016/10/26(水) 10:43:18.97ID:???> 本番に移行するときにDBの接続情報変えればいいってだけの話
それはどうやって実現できますかって話なんだけどね
0297nobodyさん
2016/10/26(水) 13:22:24.63ID:???まず2つの接続情報を書いとかないと実現はできない。
あとは環境変数見て振り分ければ完成。
サーバを移行させたり 使う環境が変わることはあるわけだし、
普通は接続情報は都度直接編集するもんでしょう。
同じlocalhostで通るにしても ユーザ名やパスワードまで普通合わせたりしないし。
そのへん考えなくていいSQLite使えばいいと思うよ。
0299nobodyさん
2016/10/26(水) 14:00:48.25ID:???ワンクリックデプロイといってもやってることは同じでしょ。
0300nobodyさん
2016/10/26(水) 14:28:42.50ID:???> 設定に関する情報がないといけないわけで、
> ワンクリックデプロイといってもやってることは同じでしょ。
書き方が悪かった。
しないのは、「サーバを移行させたり 使う環境が変わること」があっても、「接続情報は都度直接編集」すること。
サーバ毎にユーザ名やパスワードを変更することもしない。
どこでも、localhost接続で同じユーザ名、同じパスワード。
「サーバを移行させたり 使う環境が変わること」やデプロイ先が増えたりしたら、デプロイスクリプトのデプロイ先を変更するだけ。
0301nobodyさん
2016/10/26(水) 14:35:17.91ID:???データベースのマイグレーションツールは使ってる?
そのツールのデータベース接続情報がファイルに記述されてるとして、それはどうやって管理してる?
ユーザ名・パスワード直書き?
0302nobodyさん
2016/10/26(水) 14:48:36.51ID:???これがいけなかったんだな
0303nobodyさん
2016/10/29(土) 17:19:30.19ID:???その他WEBサービス系で必要であろうサーバは整えられるんだけど、
開発できる言語がphpとJavascript、SQLしか使えないんだけど、
その程度の者でもWEB系の開発企業で即戦力になったりしますか?
ちなみに実務は7年で、入社してからずっと時間給で働いてます。
そろそろ先々が心配なので転職or時間単価向上を考えたいと検討してます。
雑談スレと書いてあったので、こういう話は書いても大丈夫でしょうか。
スレ違いだったらROMに戻ります。。。
0304nobodyさん
2016/10/29(土) 17:37:39.55ID:???プログラマ板があるからそっちの方が良いかも?
サーバー管理者は大企業で重宝されるイメージ。一度大きい企業回ってみて、自分の価値を確認するというのはどうだろう
NTTデータとかyahooなどの超大手に、当たって砕けるというより自分の価値を確認するつもりで受けてみてはどうかな
0305nobodyさん
2016/10/29(土) 20:44:28.72ID:???PHP+JavaScript+SQLは、案件が最も多いと同時に、金額が最も安い組み合わせです。
次の仕事を見つけることはできても、それで収入アップが実現できるかは厳しいんじゃないでしょうか。
0306303
2016/10/29(土) 21:55:10.97ID:???多々ご指導くださり、大変勉強になりました、ありがとうございます。
単価にすると時間当たり900円にも届いてない状態で、
流石にフリータと変わらないと最近焦りを隠せなくなっておりました。
せめて実務経験があればと思っていたのですが、
間もなくいわゆる”35歳”を迎えるので実績が仮にあっても
切られてしまうのではないかと気が気ではなくなりつい投稿してしまいました。
スレ汚し失礼しました、ご教示いただきました内容を念頭に置いて新しい言語にチャレンジするなり、
体当たりするなりしてみたいと思います。
ありがとうございました。
0307nobodyさん
2016/10/29(土) 23:18:37.38ID:???がんばってください。
0309nobodyさん
2016/10/30(日) 09:51:33.15ID:???0310nobodyさん
2016/11/01(火) 16:27:31.79ID:???例えば「18:00:00」を「18:00」に変換するとき、どうすればよいでしょう?
ただしPHP側の操作のみで、文字の切り取り以外でお願いします
0311nobodyさん
2016/11/01(火) 17:03:56.16ID:???http://php.net/manual/ja/datetime.format.php
0312nobodyさん
2016/11/01(火) 17:06:19.32ID:???0313nobodyさん
2016/11/01(火) 17:39:20.52ID:???0314nobodyさん
2016/11/01(火) 17:43:30.85ID:???「入力フォームを多用+保護されているけどReaderで保存可なPDF」をテンプレートとして、
ストレスなく扱えるPHPライブラリってあるかしら?
FPDIだと、入力フォームは消えてしまうし、PDFが保護されていたりすると、エラーが出て
読み込めないようで…。
有償、無償は問いません。
どなたかご教示いただけないでしょうか。
0316nobodyさん
2016/11/01(火) 18:27:16.91ID:???ごめんなさい、要は、
> FPDIだと、入力フォームは消えてしまうし、PDFが保護されていたりすると、エラーが出て
> 読み込めないようで…。
これがストレス。
で、書き方を間違えてた。保護は関係ないみたい。圧縮されてるとエラーでした。
0319nobodyさん
2016/11/01(火) 18:41:47.03ID:???0320nobodyさん
2016/11/01(火) 18:42:49.19ID:???0321nobodyさん
2016/11/01(火) 18:46:40.76ID:???ライセンスキー入れなくてもウォーターマークが入るだけで、普通に使えたような記憶があるよ。
0322nobodyさん
2016/11/01(火) 18:47:57.44ID:???FPDI以外試したのか?
ググったのか?(ぐぐりゃすぐに候補はでてくる)
直接PDFを操作する系のライブラリ以外は候補に出来るのか?
調べたか?
使ってみたか?
まず、これこれは駄目でしたって何で言えないんだよ。
0324nobodyさん
2016/11/01(火) 18:50:23.33ID:???これは試したか?
0325nobodyさん
2016/11/01(火) 18:51:30.53ID:hf4qXWjd現在はある会社のHP担当としてアルバイトで働いています。
主にwordpressのループ処理+アクセス解析ばかりで、あまりPHPを覚えたとはいえない状態です。
何か覚えたほうがいいものがあれば、片っ端から教えてください。
現在は以下のことを学習済みです
・型の違い
・if・for・switch構文
・文字列の操作
・日付の操作
・class作成。継承とかはほとんどしたことありません。
・gitは自分でリポジトリを作ってpush、pull、ブランチを作成したり、バージョンを戻したりと基本的な事ができるようになったレベルです
・SQLはコピーペーストでSELECTやINSERTを使えるレベルです
何から覚えるとよいでしょうか?
それともwordpressを極めたほうがいいのでしょうか?
0328nobodyさん
2016/11/01(火) 19:09:47.89ID:???目指すところにもよると思うけど、見てくれの成果を急ぐならフレームワーク使ってなんか作ってみれば?
くれぐれもインクルードガードを理解できないような大人にならないように気を付けて。
0330sage
2016/11/01(火) 19:45:20.09ID:p6F2bD12https://www.youtube.com/watch?v=NJYs5GTmdcg
0332nobodyさん
2016/11/01(火) 20:34:29.15ID:???WEB屋でいつづけるならPHPなんか覚えたって役に立たない。
Wordpressという名の言語を覚えたほうがいい。
プログラマーになりたいならWordpressみたなゴミクズにはできるだけ関わらない方がいい。
>何から覚えるとよいでしょうか?
なにはなくともforeach。
0333nobodyさん
2016/11/01(火) 22:18:22.00ID:???0334nobodyさん
2016/11/02(水) 00:11:25.05ID:SZFpptjMなんでや!阪神関係ないやろ!
0335nobodyさん
2016/11/03(木) 00:14:03.81ID:???webデザイナーとwebプログラマーを混同していました。混同していることがわかっただけでも大きな前進でした。
もう少し自分が何やりたいかを考えてみます。ありがとうございました。
0336nobodyさん
2016/11/03(木) 19:15:34.27ID:2AD8+1ebすぐ隣に防衛省の背広組の官舎があるのですが、
自分の家の窓にUSB接続のwebカメラを貼り付けて、そこの動画を撮影し続け、
学会本部に送っていました。
別に大したものは写っていません。ごみ出しとか奥さんが子供を遊ばせている所とか。
官舎が老朽化して使われなくなってから、
今まで法人税(うちは自営業です)をほぼ払わなくても済んでいたのが、
もう守ってやれないのでこれからは満額申告するように言われました。
納得がいかないと言うと、君は自業自得で餓鬼地獄に落ちる、
朝夕南無妙法蓮華経と三千回ずつ唱えて心をきれいにしなさいと言われ
馬鹿らしくなって脱会しました。
それ以来、どこへ行くにもぞろ目ナンバーの車につけまわされたり大変な日々です。
全部自分の出来心から起きたことで、どこに訴えるわけにもいかないのですが、
なんとかあの人たちと縁を切って新しい始まりを迎える方法はないんだろうか。
0337�@
2016/11/05(土) 01:03:25.46ID:/n6BEXdW.htaccess に以下のコードを書いています。
SetEnvIf Host "^www\.patapata\.net$" hos_ok
SetEnvIf Host "^patapata\.net$" hos_ok
order deny,allow
deny from all
allow from env=hos_ok
0338�A
2016/11/05(土) 01:04:26.00ID:/n6BEXdWwww配下に patapata.net へアクセスさせる為のディレクトリしか
作成していなかったので、これまではこれでよかったのですが
テストコードを直書きしてブラウザからさくらインターネットのサブドメインからもアクセス
できる様にしようと思っていますが。
0339�B
2016/11/05(土) 01:06:34.05ID:/n6BEXdW↓ ブラウザからはこんな感じでアクセスしたいです。
0340nobodyさん
2016/11/05(土) 12:44:54.07ID:???0341nobodyさん
2016/11/05(土) 13:00:22.58ID:???0342nobodyさん
2016/11/07(月) 11:55:19.06ID:???foo;
のように未定義の変数を$なしで記述する方法に名前はありますか?
0343nobodyさん
2016/11/11(金) 00:31:34.65ID:NJy7MIUs0344nobodyさん
2016/11/11(金) 06:21:08.35ID:???まだまだシェアは高いほう
0345nobodyさん
2016/11/11(金) 22:06:51.01ID:???$searchFilter = new $searchFilterClassName();
$searchFilter->filterAll($query, $requests);
こんな感じで呼び出すクラスを動的に変更してるけど、もしかしてバッドプラクティスになる?
0346nobodyさん
2016/11/11(金) 22:10:27.95ID:???命名が気持ち悪い
0348nobodyさん
2016/11/12(土) 08:29:00.73ID:???「直江山城守従五位下藤原朝臣兼続」と律儀に書きそうな所
0350nobodyさん
2016/11/12(土) 09:10:45.07ID:UTGbJvCcPHPも進化しててそう簡単には廃れないと思うよ
フレームワークなんてクラスと継承使いまくるし昔とは全然違う
JAVAっぽい感じすらある
もし他のやるってならrubyかパイソンかJAVAかな
PHPは簡単に始められるということで人によってレベルに差がありすぎる
フレームワークでクラス使えてDBやApacheまで理解して使えるならJAVAプログラマーと変わらないレベル
0351nobodyさん
2016/11/12(土) 09:31:50.95ID:???0352nobodyさん
2016/11/12(土) 10:24:09.54ID:???命名は、スコープを意識した方が良い。
例えば、$searchFilterClassName は目的のクラスをnewする時にしか使わないんじゃない?
そうすると、その変数の必要有効範囲は2行しかない。
もし、他の場所でクラス名を知りたければ
$searchFilter内で定義済み定数 __CLASS__ を使って参照できるから。
そんな、その場限りの変数に仰々しい名前をつけるのは無駄な上に
全く別の人がコードを読む時には
いかにも意味がありそうな命名なので追いかけてみたら、その場所でしか使っていなかったとかで
大して意味が無い余計な情報になってかえってコードが読みにくい。
そんなのは$classNameで十分。
俺は「使い捨てだ」ということを強調するために場合によっては1,2文字変数を使うこともある。
0354nobodyさん
2016/11/12(土) 11:53:15.24ID:???長い開発経験の中で出した、あくまでも俺の答えだから、そうは思っていないやつも居る。
だから「絶対」ではない。個人的意見だと思ってもらって構わない。
ただ、クソコードだなぁと思うコードの半分は
使い捨ての変数に$youAreFuckNSonOfABichみたいな命名をしている特徴がある。
Javaでプログラムを学んだJava脳の奴に多い。
もう半分のクソは本当にただのクソで、いかにもPHPerといったコード。
0355nobodyさん
2016/11/12(土) 12:03:17.81ID:UTGbJvCcうちのリーダーか?笑
使い捨て関数使ってるけど開発効率考えたらそれが良いと思う
使い回して深く追う可能性のあるものだけちゃんと名前付けておいた方が良いね
0356nobodyさん
2016/11/12(土) 12:07:06.42ID:UTGbJvCc自分やその時の現場のメンバーだけ使うものは一文字で良いだろうね
何かしらのツールで共有しておけば良い
0357nobodyさん
2016/11/12(土) 12:43:16.19ID:???他人が書いたコードリーディンングする時、重要なのは「その変数が何であるか」
「何が入っているかが分かる」事のみに着目して長ったらしい名前をつけられると、
ほんの数行先で出てきた変数が、
前に出てきたそれと同じなのか違うのかが把握できない。
大体、1つの処理単位で利用する変数はにた名前になりやすいから
名前が長いと余計わかりづらい。
人間が一目で判別できる文字数は5,6文字が限度だろう。
「その変数が何であるか分かる」ってことと「その変数に何が入っているか分かる」ってことはイコールではなく、
必要なのは「何が入っているかわかる」ことではない。
0358nobodyさん
2016/11/13(日) 01:59:25.88ID:???0359nobodyさん
2016/11/13(日) 09:57:04.08ID:???0361nobodyさん
2016/11/13(日) 14:33:14.76ID:???0362nobodyさん
2016/11/13(日) 15:27:12.88ID:???0363nobodyさん
2016/11/13(日) 16:12:35.87ID:???echo "{$fire}unko"
0364nobodyさん
2016/11/13(日) 19:55:24.39ID:???$c = $a. $b;
echo $c;
カンマは
echo $a;
echo $b;
0365nobodyさん
2016/11/13(日) 21:06:29.54ID:???これって意味あるんですか?
定数がすでにあった場合定義されませんが、期待している値じゃなかったらバグの原因になるだけなので、
逆にエラー出したほうがいいと思うんですが。
0366nobodyさん
2016/11/14(月) 01:32:44.29ID:???■ このスレッドは過去ログ倉庫に格納されています