【PHP】下らねぇ質問はここに書き込みやがれ 10
■ このスレッドは過去ログ倉庫に格納されています
PHPに関する質問スレです
前スレ
【PHP】下らねぇ質問はここに書き込みやがれ 9
http://mevius.5ch.net/test/read.cgi/tech/1513760420/
次スレは>>980以降
本文の1行目に以下を追加すること
!extend:on:vvvvv:1000:512
VIPQ2_EXTDAT: default:vvvvv:1000:512:----: EXT was configured 何でVisualStudioみたいにGUIで開発できないんですか? >>194
でもサニタイズしたはずなのにphpでフォームにJavascriptの$valueの中身入れるて飛ぶとYahooに飛んじゃってるんだよなIEで確認したから間違いないけど どうせブラウザのソース表示してみたら<>になってるとかいうオチだろ それは、タグ内の属性じゃん!
そこは、要素内の内容部分じゃないよ! PHPやたったことないんだけど、どういう風に起動してるのか俺に簡単に説明してくれない?
cgi(まあperlとしよう)だと、ブラウザがhttpdにリクエストして、cgi(perl)を起動する。
httpdは標準出力(まあたぶんhtml)を受け取り、それを必要なら加工/整形(主にヘッダー) してブラウザに出力する。
phpはどこで誰からリクエストを受けてどうやって動いて、誰に何を出力してんの?
そしてcgiとは何が違うの?
とりあえず、cgi(perl)と違うのは、常駐して起動してるから速いんだよ、ってのは聞いたけど、それ以上は分からない。
そのへんを分かりやすく俺に教えてやってくれ
お願いします phpはcgiモードとmoduleモードがあって
cgiは呼び出し式
moduleモードは常駐式
受け取ったデータの処理の流れは一般的なcgiと同じでhttpd経由
常駐だから早いのも確かにそうだけど、標準機能のみで色々できるから、機能を都度importしない事も速さの主因
まあそれはちょっとhttpdとの関連性からは離れている話ですね >>202
わかったありがとう!
cgiモードとmoduleモードの選択ってのは、どこで誰(どのプログラム)が判断して決めるの?
php自身がmoduleモードで動いていて、httpdがmoduleモードで動いてるphpに対してのアクセス方法を知っているってこと? .exe, .dll の違い。
例えば、sqlite3.exe, sqlite3.dll の違い
CGI は、.exe と同じ。
別プロセスを起動するから、その起動時間が掛かる
.dll は、そのプログラム(プロセス)内にライブラリを読み込むだけ。
別プロセスを起動していない Ruby, PHP, Perl などのCGI では、
httpd が別プロセスを起動して、結果を取得して、プロセスを終了させる
毎回この起動・終了に、時間が掛かるから、
起動しっ放しというモードもある >>204
かなり分かった!
httpdが自分のプロセスにdllを取り込むってことかな? https://i.imgur.com/QB190U9.jpg
このプログラム実行して、43行目にphp Array to string conversion inっていうエラーが出る。ググッて見たけど分からん。 ループ足りないような
30行目のarray_chunkで$imagesは配列の配列になる
http://php.net/manual/ja/function.array-chunk.php
42行目で$imgは配列
43行目で配列($img)をechoしようとしてる
foreachを追加して2重ループにすればいいんじゃないか $images が文字列の配列の配列なんだから$images[$page]が文字列の配列
$imgは文字列だろ >>207
とりあえず43行目あたりで print_r($img); とかやってみたら >>209
確かにそうだ >>208は間違い
>>211
どう解決したのか書いてくれると有り難い >>193
原因がわかったわ、その前にページが止まるからなぜなんだろうと思ったらChromeが制御してたわ
コードのscriptタグを検知して連続遷移しないようにしてたみたいだ、余計なことを・・・ 質問です。
htmlソースをinclude等で読み込む際、そのソースの途中に追記する事ってできますでしょうか?
読み込むソース
<div>1行目</div>
<div>2行目</div>
<div>3行目</div>
↓
includeする時にこうしたい
<div>1行目</div>
<p>追記</p>
<div>2行目</div>
<div>3行目</div> $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>
とか Ruby, JavaScript にもある、部分テンプレートを読み込む、partial file の機能だろ。
PHP のフレームワークにもあるはず
一般的には、header, footer などの各部分は、別ファイルにして読み込んで使う >>215
すいません質問の仕方が悪かったです。
読み込む側のページでのみ関数みたいに個別で追記をしたいんです。
読み込まれる側のファイルにURL判別とかの細工でもしないと無理ですかね・・?
jQueryでいう、.loadしたソースにコールバックで.insertAfter();を走らせるイメージです。 >>216
そうです。ありがとうございます。
フレームワークなどで行うのですね。 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');
〜 >>219
a.php や b.php のくだりがよく分からんが、
ob_start();
include 'tmpl.inc';
$contents = ob_get_contents();
ob_end_clean();
とやる方が手っ取り早いんじゃね。 >>219
>include/requireは関数じゃないので返り値としてソースを受け取れない
理解しました。ありがとうございます!
file_get_contentsはスクレイピング時に使った事あるのですぐ理解できました
ありがとうございます〜
>>220,>>221
ありがとうございます
一番知りたかったのはinclude/requireでは無理と言う事でした
方法論、参考にさせていただきます >>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 してるスコープから見えるように設定しておく。 >>223
ご親切にありがとうございます。
とてもスマートな印象ですね。
今後の参考にさせていただきます。 $paramに連想配列を格納して、foreachで取り出そうとしてるんですけど
先頭要素のキーが取り出せず、先頭要素の値から取り出し始めてしまうのですが
そういう挙動に詳しい人いらっしゃいますか? foreach ($array as $key => $value)
にして、$keyにアクセスしてる? してます
var_dumpで配列を吐き出すと、しっかり吐き出せるんですけどね
こんなんで時間かかってしまって泣きですわ >>227
array_keys を使うとどうなる? いいの?それでw
気になるわぁ
再現コードあれば欲しい 初めて聞く症状だけれど
var_dumpで確認できている配列データなら
foreachで取り出せないわけないので
見間違いとか、スクリプトやタグのせいで消えてしまっているとか別の要因なんでしょ だなぁ
>>226 のコードで最初のキーが取り出せず値から取れちゃうというのが、$key と $value に具体的に何が入ってるということなのか分からんな。
言葉通りに捉えれば $key に最初の要素の値が入ってるんだろうが、んじゃ $value には何が入ってるの?みたいな。 centos7でphp72をremiで入れた場合、
# php
-bash: php: コマンドが見つかりません
を解消するための、正しいシンボリックリンクの張り方ってどこに作ってどこへ向けるのが正解?
/usr/binに作るのか、
パスが通っていればどこでも良いのか、迷ってます。
インストールしたときは
# cd /bin/ ; ll | grep php
php72 -> /opt/remi/php72/root/usr/bin/php
となっています。 >>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 lineボット作ろうとしてるけど
curl_initが使えない 参考までに、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 >>237
1. 使えるようにする
2. curlの実装を探してくる
3. curlを自分で実装する
好きなのえらべ 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 >>242
ubuntu18でやってるんよね
webシステム作ってて 質問させてください。よろしくお願いします。
DBはsqliteというのを使っています。
DBは、user_name : 都道府県 :というカラムがあります。DB件数は1000件で、ランダムで生成しています。
formページで、都道府県を入力すると、$form_prefという変数に入力値を格納し、
DBへは、where('都道府県','$form_pref)で検索すると、検索結果は0になります。
また、where('都道府県','東京')で検索すると、検索結果は正しく検索されます。
where句で、変数によって検索をかけると、正しく検索されないのはなぜなのでしょうか? >>244
なんのライブラリ使ってるかしらんが、そもそもお前のそのソースよくみろ
余計なものが入ってるだろ >>245
ありがとうございます
where('都道府県',$form_pref)で検索しても検索できないです。
クオーテーションがないことが問題なのでしょうか? >>248
DBに渡っているはずのSQL文を一度画面に表示させてみ
多分、それで解決するよ 特定のフォルダ内にjpgファイルが1枚でもあるか確認する良い方法なにかありますか? direcoryiteratoriteratorでリスト取得してforeach >>248
エラーが出てるならエラーの内容を教えて
プログラムエラーでなくて論理エラーなら
単に検索に使ってる値と、対象となる値が違うとか、そんなもんでしょ リストを全部取得するのではなく、jpgがあった時点でtrueを返す方法ってありますか?
数が多いファイルが含まれると遅くなってしまいました。 dbでファイル情報管理すりゃいい
index化みたいな >>254
ファイル数が万単位とかであるならば
255も言ってるようにDBで拡張子ごとにファイル名を管理したり
jsonでデータ管理してみたら >>254
まんま、したい事すりゃ良い。
jpgか調べて見つけた時点でreturn true。 全取得してからしか調べられないようなのでglobを使っていきます。
ありがとうございました。 ls *.jpg 2>/dev/null | wc -l >>254
jpgかどうかに関係なくファイルの多いディレクトリというだけで遅くなるからあきらめろ。 PHP始めるけどどんな環境がいいの?
IDEは多分vscode使いたい
Pythonだとインポートサジェストがvscodeにはまだないけどphpは大丈夫?
それとPythonで言うanacondaみたいなものはあるの?
鉄板とかあるの? 色々と調べてみるとザンプにしますか?Dockerにしますか?って感じなんだな
やっぱりLinux上でやらないと駄目かな?出来るだけ仕事現場でそのまま使えるテクノロジーで学びたいんだけど 色々と調べてみた結果Lpicの資格も欲しいのでVMwareにCentOS入れてDockerでやっていこうと決めました。普通にPHP学ぶだけなら>>263が最適解だと思います。>>263氏ありがとう 今どきサーバの知識とかいらなくね?
LaravelとかRailsは内蔵されてるし
Xamppとかいらんわ このスレはXAMPP派が多いらしい
開発環境ならビルトインサーバで十分だしCI環境ならDockerだろうと思うのだがねぇ >>267
違う板で未経験から働きたいならlpicとってサーバーをある程度理解してる事をアピールしたほうが良いとアドバイスされたんだよね
まぁ取ってなくても早いうちに転職活動したほうがいいとも言われたけど Pythonが出来る風な口調だけど
なんでわざわざ就職考えるのにPHPなんて始めるんだっちゅう なんでそうやってしれーっと嘘つくんだよ
indeedで東京エリアでPHPで検索して15000件
Pythonで検索して10000件だぞ それSES会社がテキトーに検索ワード盛ってるだけだろ
求人量ならJava、PHPの足元にも及ばんぞPythonとかRubyって
質は高いと思うけど PHPのエディタ、今までAtomを使ってて、VScodeも気になるんだけどどう? いやいや
今スタートアップはほとんどPythonだから Atomよりはだいぶ軽いし動作は軽快
使い勝手もほぼ一緒
まあしょせんエディタだけども マカーはVSコードなど使わないからな
もちろんGithubも使わねえ PHP は多いけど、低価格っぽい。
多さの順は、COBOL > Ruby > Python
Ruby は、Vagrant, Chef など、サーバー管理構築運用の仕事もあるから、
OS をよく知っている印象が強い >>266
今はLPIC じゃなくて、LinuC。
OS の機能やサーバー管理構築運用なら、Vagrant, Chef などで使われている、Ruby がお勧め。
こういうシェルスクリプトの代替機能を、面倒なPython で学ぶ必要はない!
先に、Rails よりも、Sinatra をいじくりまわせ!
YouTube に、雑食系エンジニアのKENTA の動画がある。
転職者は、見ておくべき。
PHP は、転職での評価が低い
KENTA 自身は、Ruby にそっくりな関数型言語、
Elixir のフレームワークで、ポートフォリオを作ったらしい。
ここまで行くと、年収1千万超! Rails は、年収3千万円超のハーバード大学でも、教えているほど!
プログラマーなんて、年収が1/5 ぐらいになるのに、なぜ教えるのか、わからないw OSのコマンドアプリやシェルをラップする事務員向けWebGUIみたいなのできますか? KENTAって人の動画をマジで信じてる人いてビビったわ
技術を煽って自分のオンラインサロンに入らせる典型的な不安ビジネスやってる人じゃん
あとあの人のポートフォリオ見たらわかるけどHelloWorldレベルのことしかやってないぞ 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`' ターミナルで
ruby -e 'puts `ls | wc -l`'
なんて打ってる奴いたらクビにするわw このスレなら 「PukiWikiから○○に移行したよ」って人もいそうなのでお聞きします。
いま時の 小規模向けWiki でオススメのがあったら教えてください。 PHPベースでなくても構いません。
昔 PukiWiki で個人的なメモを管理してたんですが もう何年もご無沙汰しています。 ローカルでしかPHP触ったことないんだけどネットに繋ぐ場合ってどんな方法ある?サーバーを借りるの以外で >>293
ローカルのPCをインターネット側からアクセス可能なサーバにするとか。 >>295
いまアパッチ使ってローカルでやってるんだけど設定変えて繋げたらセキュリティとかの対策必要なの?
仮想環境でやってないからちょい怖い ■ このスレッドは過去ログ倉庫に格納されています