【PHP】下らねぇ質問はここに書き込みやがれ 10

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん (ワッチョイ cfe8-+65u)
垢版 |
2018/11/28(水) 17:08:46.02ID:Nb5yTkdM0
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
2019/02/07(木) 12:36:05.22ID:2KroeUTW0
暇だったからでは
2019/02/07(木) 21:45:05.72ID:EixwHHP40
array_multisort()の配列が多次元だった場合はどこを比較してるの?

$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
)
116デフォルトの名無しさん (ワッチョイ 0289-fard)
垢版 |
2019/02/08(金) 00:54:59.90ID:DKnzBuB20
>>110
返信が遅くなってしまいすみません。
うまくできました。
本当にありがとうございます。
117デフォルトの名無しさん (ワッチョイ e101-95g7)
垢版 |
2019/02/08(金) 01:23:31.06ID:1Q4bQ8+M0
phpでスクレイピングした文字列をmysqlのデータベースにInsertしたいのですが、ざっくりどういう風にやればよいでしょうか?
スクレイピング自体は出来ていて、ここからDBに挿入する方法が知りたいです。
よろしくおねがいします。
118デフォルトの名無しさん (オッペケ Srd1-da9w)
垢版 |
2019/02/08(金) 08:16:42.39ID:Waqd0NNdr
ざっくりいうとINSERTのSQL文を書けばいいんだよ
2019/02/08(金) 11:07:14.81ID:VEywR5okr
https://media.theync.com/videos/6/9/0/4/8/6904895a9f5723f21e4.mp4
https://i.imgur.com/pPQNL83.jpg
120デフォルトの名無しさん (ワッチョイ a275-Ctdi)
垢版 |
2019/02/08(金) 16:27:15.56ID:k5rPGxdZ0
サーバー側に数万枚の画像を保存する場合、数万枚を1つのフォルダに入れるのと、10000台、20000台のようにフォルダ分けしたほうがいいですか?
2019/02/08(金) 16:38:40.38ID:j4lUPneda
保存して何するかによるのでは?
122デフォルトの名無しさん (ワッチョイ a275-Ctdi)
垢版 |
2019/02/08(金) 16:57:55.31ID:k5rPGxdZ0
1ページに20件〜50件くらいサムネ表示したり、1ページに数枚表示したり
ネットショップのようなイメージ
2019/02/08(金) 18:04:35.54ID:1w1isakW0
フォルダ分けするとアクセス時間が短くなる場合が多い
2019/02/08(金) 21:42:22.40ID:jEGlmC9W0
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にならないのか、教えていただけないでしょうか><
どうか、よろしくお願いします。
2019/02/08(金) 22:44:50.24ID:SnO1YjyT0
$request->emaiにlが足りて無いとか?
2019/02/09(土) 06:31:09.14ID:3JjKiGqr0
すみません。$request->emailです。
タイプミスはなくても、falseになります。
よろしくお願いします。
2019/02/09(土) 10:15:38.13ID:lpNDR5cs0
他人のホームページを書き換えたいんでつけど
PHP使えば狩野でつか?
2019/02/09(土) 10:38:25.62ID:LiyCmRY90
その他人が許諾しているなら、その他人に聞け
その他人が許諾していないなら、警察が聞いてくれる
2019/02/09(土) 17:11:10.81ID:kXc/Z+zP0
何を書き換えたいんだろう?
HTML CSS JAVASCRIPT、それともフレームワークに依存?
PHP,CAKE,いろいろあるから、一概になんとも・・・
2019/02/09(土) 18:20:17.39ID:koH3JFsI0
pearのサイトが死んでるんたがなんかあった?
2019/02/09(土) 18:23:52.81ID:LiyCmRY90
>>130
PEAR server is down

「PEAR公式サイトのウェブサーバー上で改変された『tainted go-pear.phar』と
セキュリティ侵害が発見されました。PEARのウェブサイト自体は無害なクリー
ンサイトを再構築するまで使用不能とします。より詳細な情報はPEARの公式
ブログでチェックしてください」
132デフォルトの名無しさん (ワッチョイ 924b-Ctdi)
垢版 |
2019/02/10(日) 04:09:45.41ID:jBesuRSj0
Python勉強してるの
リストから”取り出す”っていう日本語ってなんか違和感ある
リストから取り出して要素を付け加えると元のリストにも反映されてる
これって取り出すっていう日本語だとイメージ変だよね

なんていうかリストのいち部分をズームアップしてそこだけ見えるようにしたようなイメージのほうがいいきがするの
だって取り出したんだったらいつ元に戻したの?っていうことになるよね?
イメージ的に
たぶん想像だけど元々のリストのメモリ上の位置は全く変わっていなくてずーっとそこにあるから取り出したっていう日本語が変なんだと思うの
133デフォルトの名無しさん (ワッチョイ 924b-Ctdi)
垢版 |
2019/02/10(日) 04:13:15.33ID:jBesuRSj0
これはリスト=辞書a、辞書b
みたいになってて辞書aをとりだしてそこになにかを付け加えた場合に
元のリストに変更がそのまま反映されることを言ってます
取り出すっていう日本語の操作だといつ元に戻したのっておもうよね?
2019/02/10(日) 08:09:11.07ID:4xhMpHOb0
なんかぶっ飛んでる人がいますね
2019/02/10(日) 08:55:31.07ID:t3zAhvOs0
laravelに関する質問お願いします
Auth;;attemptで参照されるテーブルが、どこで定義されているか分かりますか?
136デフォルトの名無しさん (ワッチョイ e101-iwoU)
垢版 |
2019/02/10(日) 20:03:25.52ID:Bb8eA8KO0
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);
137デフォルトの名無しさん (ワッチョイ e101-iwoU)
垢版 |
2019/02/10(日) 20:26:08.90ID:Bb8eA8KO0
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になりました… なんででしょうか?
138デフォルトの名無しさん (ワッチョイ e101-feI+)
垢版 |
2019/02/10(日) 22:44:52.33ID:Bb8eA8KO0
勝手にリダイレクトされるのとめる方法ないですかね
2019/02/12(火) 06:18:45.22ID:4rvCbmwy0
ソースをたどっていけば
2019/02/13(水) 15:56:50.06ID:qcwaRdjDa
cronで実行しているPHPで不具合が出て調べているのですが、
php.iniでエラーログを指定していない場合、
コマンドラインからPHPを実行した時のエラーログってどこに出るのでしょうか?
apacheで実行した場合はapacheのエラーログに出るようですが
2019/02/13(水) 17:21:57.25ID:6eI6oeOB0
http://php.net/manual/ja/errorfunc.configuration.php#ini.display-errors
2019/02/16(土) 03:56:24.05ID:p8v5qaF40
質問させていただきます

データベースにセッション保存するようにsessionhandlerinterfaceを作りました
session_set_save_handlerで該当のハンドラを指定したらちゃんとデータベースにも書き込めているのですが
あるサイト上の複数ページで統一的にこのデータベース利用のセッションを使うには
各ページでsession_startの前に毎回ハンドラ指定をする必要があるのでしょうか?
(テストしてみると指定しないとデフォルトのファイル利用のセッションが作られているようでした)

php.iniか何かの編集でそもそもデフォルトをデータベース利用のセッションにするということなしに
上手いやり方があるのであればお教えいただければ幸いです
どうぞよろしくお願いいたします
143デフォルトの名無しさん (ワッチョイ a761-8zyB)
垢版 |
2019/02/17(日) 12:12:25.21ID:vpvr2f070
>>140
cronから実行したプロセスは端末と結びついていないから、リダイレクト指定しなければただ閉じてる。
2019/02/17(日) 12:22:30.41ID:wSo27DN5a
>>141
ありがとうございます
デフォルトの設定だと標準エラー出力に出るんですね
log_errorsを使ってサーバ側のエラーログを出力先に指定することもできると
2019/02/17(日) 12:23:37.36ID:wSo27DN5a
>>143
なるほど
エラー出力をリダイレクトすればいいんですね
ありがとうございました
2019/02/18(月) 18:19:22.08ID:yhtTsT3P0
laravelに関する質問を受け付けていただけますと幸いです><

今まで使っていたcontroller(app/http/controllers/)が、突然使えなくなりました。
<現象>
上記パスのcontrollerを変更しても反映されない。
上記パスのcontrollerを削除しても、古いcontrollerの設定が生きてて、プログラム自体は従来どおり動く
なにか、他のパスに古いcontrollerが保存されていて、そっちを読んでいるような感じがする

という感じなのですが、何か改善する方法を教えてくださるかた、いらっしゃいませんでしょうか?
2019/02/18(月) 23:59:28.75ID:s6PjmKn40
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'
--------------------
これと同じようなことはどのように実現しますか
2019/02/19(火) 17:39:51.40ID:z2WxkWjZ0
親クラスのprotectedプロパティに値を代入する時、
子クラス側にもプロパティを定義するものですか?
コーディングの一般的な作法や、可読性的な話です。
2019/02/20(水) 03:09:15.11ID:FK1AOD6X0
>>148
そういうのはドキュメントに出力すればいいと思うけど
PHPDocが面倒なら個人開発程度なら簡易的なものとして
trait ClassInfo {
 public static function getClass() {
  return Reflection::export(new ReflectionClass(get_called_class()), true);
 }
}
親クラスにこんなん入れて必要なときに参照すれば
少しはましになるんではないかと
2019/02/24(日) 02:45:30.45ID:yLdhIKyP0
>>149
遅くなりましたがレスありがとうございます
わざわざ子クラスにまで書く必要はなさそうですね
151デフォルトの名無しさん (ワッチョイ d79f-SKB1)
垢版 |
2019/03/05(火) 17:57:17.69ID:J7utTfUg0
"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
とか試したけどダメだったわ;
2019/03/05(火) 18:12:06.81ID:/9vlYliD0
>>151
"SELECT name FROM table WHERE name = '" . $hoge . "'"

これだと?
2019/03/05(火) 18:18:55.25ID:J7utTfUg0
>>152
ダメだった
2019/03/05(火) 18:23:39.10ID:J7utTfUg0
すまん環境の問題だった
2019/03/05(火) 18:24:11.90ID:/9vlYliD0
>>153
編集したSQLをファイルか画面に出力してみて
意図した編集ができてないとしか思えないな
2019/03/05(火) 18:55:38.74ID:/9vlYliD0
解決したようですね、良かったです
2019/03/06(水) 13:44:29.53ID:kk7tfKyga
>>154
環境とは?
158デフォルトの名無しさん (ワッチョイ ffda-2g28)
垢版 |
2019/03/06(水) 16:10:50.95ID:tl9V0B/R0
PHP: nl2br - Manual
http://www.php.net/manual/ja/function.nl2br.php
string に含まれるすべての改行文字 (\r\n、 \n\r、\n および \r) の前に <br /> あるいは <br> を挿入して返します。
とありますが
\r\nはWindowsのCR+LFだとして、\n\rという改行コードは存在するのでしょうか?
よろしくお願いします
2019/03/07(木) 03:55:06.79ID:wQ6Vu2No0
改行を\n\rで保存したり取り扱うエディタが存在するかもしれないし
\r\nと勘違いして\n\rとか渡しちゃうかもしれないし
そんな人にも<br><br>と2つにはせずに<br>1つにしてくれる親切設計ってだけでは
160デフォルトの名無しさん (ワッチョイ d6da-DZHv)
垢版 |
2019/03/07(木) 08:24:12.22ID:2g7ZW4ya0
めんどくさい
CR絶滅してLFだけで統一してくれればいい
ありがとうございました
2019/03/08(金) 15:30:59.07ID:yu/ETmP20
昔はCRとLFで機能使い分けてたみたいだけど、当時からほぼCR+LFの使い方が主流だったよね?
CRだけ使うなんて、同一行書き換え以外に使い道が思い浮かばない
2019/03/08(金) 16:47:11.41ID:2GMb9sQS0
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 を閉じてしまってうまく動かせません。
なにか良い方法はありませんか?
2019/03/08(金) 16:49:42.82ID:Ee+Y4rJr6
>>161
つMacintosh
2019/03/08(金) 18:05:06.32ID:aqheESZi0
>>162
laravel知らんけど↓でどう?
@if ($profile->u_sex) checked @endif
2019/03/08(金) 18:15:43.51ID:yu/ETmP20
>>163
言葉足らずだったね。スマン。
OSによっての解釈の話ではなくて、本来のCR、LFの意味での話。

CRはキャリッジリターン(行頭復帰)、LFはラインフィード(行送り)。
元々タイプライター(テレタイプ)から来てると思うけど、PCにおいてそれぞれ片方だけ
使う事あったのかな?って話。

結局使わないからOSによって都合のいい解釈になったんだろうけど。
まあどうでもいいや。スレチスマン。
2019/03/08(金) 18:32:37.31ID:4NSKE0Lh0
ダウンロードしたソースを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->userfields);
}

1行目の function useredit(&$user,$pwd = false)
に「&」があるのですが、それを取り除くとエラーが出なくなりますが、
関数の引数の前に & はつけることがあるのでしょうか?
2019/03/08(金) 18:52:21.46ID:b/Kbk3X80
あります
2019/03/08(金) 18:59:00.84ID:aqheESZi0
>>166
http://php.net/manual/ja/language.references.pass.php
https://ideone.com/A141Py
2019/03/08(金) 19:42:19.86ID:4NSKE0Lh0
>>167-168
ありがとうございます、参照渡しというのがあるのですね。
php 5.4で、参照渡しが無くなったので、エラーが出ていることがわかりました。
&を取っても動いている感じなのですが、とりあえずそれで様子を見たいと思います。
2019/03/08(金) 21:14:39.94ID:aqheESZi0
>>169
エラーになるのは呼び出し側で&を使った場合
https://ideone.com/qo7ccI

親子でfunctionの定義が異なる場合にDeclaration of...って出る
https://ideone.com/9aCPU1
親子両方で&をつけるか&を取るか一致させればいいんだろうけど、多分&をつけるほうが正解なんじゃないかな?
2019/03/09(土) 02:21:59.24ID:BXeyfCeA0
>>170
>多分&をつけるほうが正解なんじゃないかな?
クラスのことは勉強不足でわからないのですが、
class hoge
function useredit($user) {}

function useredit(&$user) {}
に変更するとエラーが出なくなりました、
確かに両方で無しか有りにするとエラーが出ないので、どちらが良いかわかりませんが、
これで様子を見たいと思います、ありがとうございました。
2019/03/09(土) 07:23:29.43ID:4+hj1jJB0
>>164
ありがとうございます

そのコードでも、−>の'>'が、<input タグの閉じる>と認識されてしまいます。
どうやってエスケープしていいか、方法が見つからないので、多重配列を避けて記述するようにします。
2019/03/09(土) 19:56:15.94ID:0WxXuN2u0
自分も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':''>
になってるの?
それともそこでエラーが出てて自分でそこが原因だと思ってるってこと?
2019/03/09(土) 22:30:58.51ID:4+hj1jJB0
予期せぬ > というエラーです

タグ内で@phpを使い、変数で判定することは避けて
タグの外で判定するようにしました。

色々ご指導ありがとうございました。
2019/03/10(日) 05:33:43.02ID:y6AdK4wp0
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行じゃ無理とか
行頭に書かないといけないとかあるのかもしれない
176175 (ワッチョイ 16a7-3PTc)
垢版 |
2019/03/10(日) 05:35:39.36ID:y6AdK4wp0
ちょっとミス
> 普通の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':''?>>
2019/03/10(日) 08:21:41.87ID:dKY2ENzw0
>>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行で綺麗に書けないのが残念でした。

本当ありがとうございました!
2019/03/12(火) 21:16:05.10ID:fInyw+wI0
phpからローカルのexeとかシェル叩けますか?
2019/03/12(火) 21:17:44.08ID:fInyw+wI0
あ、apacheのWebサーバで動くphpのことです
2019/03/13(水) 10:25:19.40ID:AVj94jZX0
exec()
2019/03/13(水) 13:06:28.48ID:AVj94jZX0
WEBサーバに数十ミリ秒ごとにアクセスして、命令が出てる時はブラウザがスクリプトを実行する仕組みが今風らしい
2019/03/13(水) 17:39:55.13ID:2dJ2nxIw0
これだけ解釈に幅があるんだなw
2019/03/15(金) 10:45:15.54ID:+YXguzLt0
質問させてください

ファイルを開く
処理1
ファイルを閉じる

ファイルを開く
処理2
ファイルを閉じる

というようなコードを書いたんですが、
ファイルを開く
処理1
処理2
ファイルを閉じる

に変えた方がいいですか?
懸念としてはファイルを開くという処理そのものが処理速度的に重いのであまり繰り返すのはよくないかな?と
1と2を分けた理由は一つにまとめると処理が複雑になって可読性が低くなってしまったからです
お力添えよろしくお願いします
184デフォルトの名無しさん (ワッチョイ 6f8c-B7Il)
垢版 |
2019/03/15(金) 16:36:34.12ID:9yz/tpkK0
>>183
素人的な考えだけど、ファイルを開くとファイルを閉じるを二回もしてるから
一回で済ますことができるならまとめたほうがいいかもだしなんで開くと閉じるを2回もしてるの?理由があるの?とかいわれるだろうし
2019/03/15(金) 16:52:05.57ID:t0fouEo60
ファイルに対する操作が追記なのか、それともランダムアクセスによる更新なのか
ファイルのサイズがどの位なのか、
処理1と処理2は独立した内容なのか、それとも順序性があり、処理1が完了する前提が必要なのか
などなど色々条件がありそうだけど、
乱暴に言ってしまうけど、ファイル操作なんて大して重たい処理ではないと思う
2019/03/15(金) 17:11:16.81ID:+YXguzLt0
>>184 >>185
PC上でフォルダを覗いてファイルを開くと動作がもさっとしてる(スペックによる)けど、サーバー側ではそういった見た目(GUI)を伴わないから実際はサクサクサクッ!と動いてると考えていいですか?

どうしても自分のPC上での動きを参考に「ファイル操作」を捉えてるから、「開いて閉じて開いて閉じて」は動作が遅いかもと感じます。間違った考え方とは薄々思ってますけど
2019/03/15(金) 17:18:10.78ID:t0fouEo60
正確に言えば、PHPが動作している環境次第
ストレージの性能が良いなら殆ど気にする必要が無いだろうし
扱うファイルがとても大きいならファイル操作はそれなりの時間が掛かる
示された条件だと、この程度の一般的な見解しか出てこないと思う
2019/03/15(金) 17:23:40.16ID:t0fouEo60
処理の開始時間と終了時間を記録し、
処理の違いでどの程度変わるかを見てみれば良いと思う
自分の予測だと、殆ど誤差でしかないと思う
2019/03/15(金) 17:54:38.04ID:+YXguzLt0
>>188
処理速度の計測方法調べてやってみたいと思います
参考になります。ありがとうございました
190デフォルトの名無しさん (ワッチョイ 6f8c-B7Il)
垢版 |
2019/03/15(金) 18:02:24.87ID:9yz/tpkK0
phpのセッションとかでセッションの中身が1の時はAのページ成型、セッションの中身が2の時はBのページの成型、セッションの中身が3の時なら中身を1にしてAのページにって作られてた時に
ブラウザのクロームとかの履歴では全部同一のページと認識されて上書きされるの?前のページ内で書かれてたものも全部上書きされるのか?
2019/03/15(金) 21:21:03.69ID:L+hp7qbL0
Ruby では、小さいサイズで、読み込みだけなら、
File.read, readlines で、一気に全部読み込んで閉じる

処理は、その後に行う

読み込んで書き戻すのなら、処理中もファイルを開いておくかも知れないけど、
そうするとその間、排他制御で、そのファイルはロックされる
2019/03/19(火) 12:27:22.14ID:DBfAR41T0
laravelなのですが、よろしかったら教えてください。
ローカルに作成したサイトのindex.に接続すると、
geolocationで位置情報を取得するようにしたいのですが
アクセス先がlocalhost:8000/indexの場合には位置情報が取得できるのですが
実機を使うために、IPアドレスでアクセスできるように
php artisan serve --host 192.166.13.102と設定すると
開発しているPCや、実機でアクセスしても、geolocationが使えなくなります。
実機でローカルサイトにアクセスして、geolocationが使えるようにするには
どうしたらいいのでしょうか?
193デフォルトの名無しさん (ワッチョイ 6f8c-B7Il)
垢版 |
2019/03/19(火) 13:20:28.75ID:rDiaexLE0
エスケープ処理のために$clean[$key] = htmlspecialchars( $value, ENT_QUOTES);でしてるんだけど
<や>が変換されないでそのまま表示されちゃってるんだけどちゃんと変換できてないの?それとも書き方が悪い?誰か教えて
2019/03/19(火) 15:46:05.54ID:70wn5si7a
>>193
そのまま表示されるのが正しい動作じゃないの?
195デフォルトの名無しさん (ワッチョイ 6f8c-B7Il)
垢版 |
2019/03/19(火) 15:46:13.95ID:rDiaexLE0
>>193
$valueの中身を忘れてた
$value = <script type='text/javascript'> location.href='http://www.yahoo.co.jp'; </script>;
これで
2019/03/19(火) 18:54:10.34ID:mQ/pmFPua
魔改造感半端ないな
2019/03/19(火) 21:37:27.82ID:uCH5q9Xf0
何でVisualStudioみたいにGUIで開発できないんですか?
198デフォルトの名無しさん (ワッチョイ 6f8c-B7Il)
垢版 |
2019/03/19(火) 23:59:06.58ID:rDiaexLE0
>>194
でもサニタイズしたはずなのにphpでフォームにJavascriptの$valueの中身入れるて飛ぶとYahooに飛んじゃってるんだよなIEで確認したから間違いないけど
2019/03/20(水) 00:02:34.03ID:UM8alzkY0
どうせブラウザのソース表示してみたら&lt;&gt;になってるとかいうオチだろ
2019/03/20(水) 00:56:07.42ID:RdYQnT9u0
それは、タグ内の属性じゃん!

そこは、要素内の内容部分じゃないよ!
201デフォルトの名無しさん (ワッチョイ cfda-h1+v)
垢版 |
2019/03/20(水) 18:33:53.86ID:DvYG4dOj0
PHPやたったことないんだけど、どういう風に起動してるのか俺に簡単に説明してくれない?

cgi(まあperlとしよう)だと、ブラウザがhttpdにリクエストして、cgi(perl)を起動する。
httpdは標準出力(まあたぶんhtml)を受け取り、それを必要なら加工/整形(主にヘッダー) してブラウザに出力する。

phpはどこで誰からリクエストを受けてどうやって動いて、誰に何を出力してんの?
そしてcgiとは何が違うの?
とりあえず、cgi(perl)と違うのは、常駐して起動してるから速いんだよ、ってのは聞いたけど、それ以上は分からない。

そのへんを分かりやすく俺に教えてやってくれ
お願いします
2019/03/20(水) 20:16:45.35ID:G66GdUMN0
phpはcgiモードとmoduleモードがあって
cgiは呼び出し式
moduleモードは常駐式
受け取ったデータの処理の流れは一般的なcgiと同じでhttpd経由
常駐だから早いのも確かにそうだけど、標準機能のみで色々できるから、機能を都度importしない事も速さの主因
まあそれはちょっとhttpdとの関連性からは離れている話ですね
203デフォルトの名無しさん (ワッチョイ cfda-h1+v)
垢版 |
2019/03/20(水) 21:25:54.44ID:DvYG4dOj0
>>202
わかったありがとう!
cgiモードとmoduleモードの選択ってのは、どこで誰(どのプログラム)が判断して決めるの?
php自身がmoduleモードで動いていて、httpdがmoduleモードで動いてるphpに対してのアクセス方法を知っているってこと?
2019/03/20(水) 21:57:05.35ID:RdYQnT9u0
.exe, .dll の違い。
例えば、sqlite3.exe, sqlite3.dll の違い

CGI は、.exe と同じ。
別プロセスを起動するから、その起動時間が掛かる

.dll は、そのプログラム(プロセス)内にライブラリを読み込むだけ。
別プロセスを起動していない
2019/03/20(水) 22:02:24.68ID:RdYQnT9u0
Ruby, PHP, Perl などのCGI では、
httpd が別プロセスを起動して、結果を取得して、プロセスを終了させる

毎回この起動・終了に、時間が掛かるから、
起動しっ放しというモードもある
206デフォルトの名無しさん (ワッチョイ cfda-h1+v)
垢版 |
2019/03/20(水) 22:07:48.21ID:DvYG4dOj0
>>204
かなり分かった!
httpdが自分のプロセスにdllを取り込むってことかな?
207デフォルトの名無しさん (ワッチョイ b301-dgXV)
垢版 |
2019/03/21(木) 09:03:31.33ID:PB8+T8io0
https://i.imgur.com/QB190U9.jpg
このプログラム実行して、43行目にphp Array to string conversion inっていうエラーが出る。ググッて見たけど分からん。
2019/03/21(木) 11:43:04.25ID:5nRGGgZs0
ループ足りないような

30行目のarray_chunkで$imagesは配列の配列になる
http://php.net/manual/ja/function.array-chunk.php
42行目で$imgは配列
43行目で配列($img)をechoしようとしてる

foreachを追加して2重ループにすればいいんじゃないか
2019/03/21(木) 14:43:45.53ID:lAqh1JQYM
$images が文字列の配列の配列なんだから$images[$page]が文字列の配列
$imgは文字列だろ
2019/03/21(木) 15:03:48.50ID:mQ6nyU1M0
>>207
とりあえず43行目あたりで print_r($img); とかやってみたら
211デフォルトの名無しさん (ワッチョイ b301-dgXV)
垢版 |
2019/03/21(木) 15:36:27.39ID:PB8+T8io0
解決しました!ありがとうございます
2019/03/21(木) 16:30:56.90ID:5nRGGgZs0
>>209
確かにそうだ >>208は間違い

>>211
どう解決したのか書いてくれると有り難い
213デフォルトの名無しさん (ワッチョイ c68c-SbEy)
垢版 |
2019/03/21(木) 18:32:18.31ID:QCgCURXL0
>>193
原因がわかったわ、その前にページが止まるからなぜなんだろうと思ったらChromeが制御してたわ
コードのscriptタグを検知して連続遷移しないようにしてたみたいだ、余計なことを・・・
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況