X



【PHP】下らねぇ質問はここに書き込みやがれ 10
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん (ワッチョイ 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
0002デフォルトの名無しさん (ワッチョイ cfe8-+65u)
垢版 |
2018/11/28(水) 17:09:08.08ID:Nb5yTkdM0
関連リンク
■PHPマニュアル    http://www.php.net/manual/ja/
■日本PHPユーザ会  http://www.php.gr.jp/
■PHPNG        https://wiki.php.net/phpng
■メーリングリスト   http://ml.php.gr.jp/mailman/listinfo/

(以下英語)
■公式リポジトリ     http://git.php.net/
■PHP-RFC       https://wiki.php.net/rfc
■PECL          http://pecl.php.net/
■Composer       https://getcomposer.org/
■Packagist        https://packagist.org/
■Zend Tech. Ltd.    http://www.zend.com/

フレームワーク(一部)
■Zend Framework   https://framework.zend.com/
■Symfony        https://symfony.com/
■Laravel         https://laravel.com/
■CodeIgniter       https://codeigniter.com/
■Yii            http://www.yiiframework.com/
■FuelPHP        https://fuelphp.com/
■CakePHP        https://cakephp.org/

テンプレートエンジン(一部)
■Twig           https://twig.symfony.com/
■Blade          https://laravel.com/docs/5.1/blade
0004デフォルトの名無しさん (ワッチョイ 9ad2-TWbZ)
垢版 |
2018/11/29(木) 01:17:40.41ID:fezToc6/0
>>3
本屋に行け
0006デフォルトの名無しさん (ワッチョイ 76ef-C0zt)
垢版 |
2018/11/30(金) 07:14:24.64ID:EXc3g5vT0
↑誤爆すみません。↓よろしくお願いします。
---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部ですか?
0008デフォルトの名無しさん (ワッチョイ db08-yEox)
垢版 |
2018/12/02(日) 17:45:47.71ID:LBfjyA1g0
アクセスカウンターを自分のサイトに
付けたんだけど、シンプルにこれにしようかと思うんのだが、
やっぱ、30分〜1時間の同じipは弾くとかの改造すべきなのだろうか?
なんか漠然と意識高い系のアクセスカウンターにしたい気もする
アドバイスお願いします。
https://www.php-factory.net/counter/01.php
0009デフォルトの名無しさん (ワッチョイ 47e9-o5Pc)
垢版 |
2018/12/04(火) 13:06:18.62ID:lEYKJ99g0
>>8
そんなの自分次第なんだし好きにすれば?

コード読んでみたけど
同じIPが連続した時のみカウントしないようにはなってるが
あんま意味ないなこれw

クッキー食わせて指定時間以内ならカウントしないとかなら
ちょっとした改造でできるんだしやってみれば?
0010デフォルトの名無しさん (ワッチョイ d3ab-ineF)
垢版 |
2018/12/06(木) 12:15:37.67ID:m4YfQK1J0
Symfony2に関しての質問です。
EC-CUBEのプラグインを開発しているのですが、
例えば、管理画面の会員登録にradioを置きたいのですが、
どうやってフックすればいいのか、よく理解できていません。
というか、Hello Worldに到達できていません。

何かいい解説サイトとかないでしょうか?
0012デフォルトの名無しさん (ワッチョイ dbef-n9Ol)
垢版 |
2018/12/08(土) 07:24:27.43ID:LXRFdUog0
unsetについて教えてください

<?php
$x=10;

function fc(){
global $x;
unset($x);
return ++$x;
}

print $x;// 結果10
print fc();//結果 1

となるのですが、関数内で$xをグローバルにしても、
unset($x)すると、ローカルな$xを作ってしまう、ということなのでしょうか?
0015デフォルトの名無しさん (ワッチョイ 01ab-n9Ol)
垢版 |
2018/12/08(土) 10:13:33.95ID:RDjv1fsh0
>>12
http://php.net/manual/ja/function.unset.php

unset($x)の時の$xはローカル変数の$xになってます。
関数内でグローバル変数としての$xを破棄したいのなら
unset($GLOBALS[]);を使います。

そもそもグローバル変数とローカル変数のスコープが異なるのは、
関数内の変数の取り扱いで、グローバル変数に影響させない為
関数の外でunsetせず、関数内で安易にグローバル変数をunsetさせず、
特別な取り扱いをさせている、ということなのですね
0016デフォルトの名無しさん (ワッチョイ 81b3-xqdQ)
垢版 |
2018/12/08(土) 12:13:49.89ID:iKq5+OXH0
>> 12
これ、notice 発生するでしょ。
学習時は、そういうの気にしたほうが良いですよ。

グローバルに使うケースなんてあまりないから、マニュアル見る良いきっかけにはなったけどw
0017デフォルトの名無しさん (ワッチョイ dbef-n9Ol)
垢版 |
2018/12/08(土) 22:24:20.62ID:LXRFdUog0
>>13
>>14
>>15
>>16

皆様ありがとうございました。
最後にprint $xをすると、結果10になります。
関数内の$xと外の$xは別の値を参照してるのですね。
noticの部分も見逃さずに調べる癖を付けようと思います。
どうもありがとうございました。
0018デフォルトの名無しさん (ワッチョイ b9e9-xqdQ)
垢版 |
2018/12/10(月) 12:14:54.37ID:5+iaWJW90
>>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);
を宣言

これやらずに勉強しても意味ないと思え
それぐらい重要
0019デフォルトの名無しさん (ワッチョイ dbef-n9Ol)
垢版 |
2018/12/10(月) 21:59:19.28ID:C/CCdKQw0
>>18
何冊かテキスト買って読んでいるのですが
初めて教えてもらえました。
今後、是非、そのコードを入れて
エラーに慣れていこうと思います。
ありがとうございました。
0020デフォルトの名無しさん (ワッチョイ b9e9-xqdQ)
垢版 |
2018/12/11(火) 18:35:27.17ID:RBYf2Nxf0
>>19
学習・開発環境では
error_reporting = E_ALL
display_errors = On
log_errors = On
error_log = /path/to/error

で、本番(ネット上に公開する)環境では
log_errors = Off
として、エラーは出力せずログに記録するのみとする
(エラーを出力する事はセキュリティ的な穴になり得るから)

/path/to/error ってのはエラーを記録したいファイルへのパスってことね
書き込み権限与える事を忘れないよう

これやるとやらないとでは上達速度に相当差がつく


※本番環境では error_reporting のレベルを下げると書いてるものがたまにあるが
※大間違いなので真似しないよう
0023デフォルトの名無しさん (ガックシ 06ff-ppkv)
垢版 |
2018/12/17(月) 10:59:38.41ID:S8NIVwif6
Laravelwwwwwwwww
0025デフォルトの名無しさん (ワッチョイ 6d9b-1vVt)
垢版 |
2018/12/22(土) 23:51:36.73ID:uVsSh1bK0
age
0031デフォルトの名無しさん (ワッチョイ 3598-E+HT)
垢版 |
2018/12/23(日) 19:28:28.95ID:dJkVsi530
エディタの配色テーマによっては、下記のようなスラッシュで囲んだ文字列がエラーっぽい色で表示されるんですが
書き方が間違っているんでしょうか?

$var = '/string/';
0035デフォルトの名無しさん (ワッチョイ 9bef-q1e7)
垢版 |
2018/12/24(月) 14:10:57.93ID:233xwMnJ0
>>30
ありがとうございます。
@slot と @includeの違いについてなのですが、
@slotは、@endslopまでの範囲の記載内容をテンプレの変数に割り当て
@includeでは、連想配列をつかって、テンプレ側でキーに対応する値を表示させる、ということのようですが、
結果的に同じような役割のように思えます。
決定的な違いって何なのでしょうか?
0038デフォルトの名無しさん (ワッチョイ 8998-sNPY)
垢版 |
2018/12/29(土) 02:00:22.36ID:qNy1dmrU0
larabelを使ってます。
その機能でオートローダーのスタティックを利用してます。
useしてnewするのは不要にってます

一方、larabelにはdi機能というのもあるようです。
どちらもnew不要ですがどちらの使い分けとかパターンわけなど何か使い分けるヒントをお願いします
0040デフォルトの名無しさん (ワッチョイ 99f0-xhm2)
垢版 |
2019/01/08(火) 18:59:06.54ID:odmObNXY0
おめでとうございます。今年もよろしくお願いします。
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している理由は、何かあるのでしょうか?
0042デフォルトの名無しさん (ワッチョイ 99f0-xhm2)
垢版 |
2019/01/09(水) 11:51:40.20ID:rfEx/2+M0
>>41
ありがとうございます。
setContentは、Responseでクライアントに戻すHTMLソースが格納されてます。
HTMLソースを返すのなら、return $htmlを返しても同じなのかな、と思いまして質問しました。
0043デフォルトの名無しさん (ワッチョイ fb8c-6SQQ)
垢版 |
2019/01/09(水) 18:55:24.82ID:MSH+15Q+0
掲示板作ってるんだけど、更新すると連投しちゃうのを防ぎたいんだけどどうすればいい?
POSTの中身を消して分岐させるとかイメージでいいの?
0044デフォルトの名無しさん (ワッチョイ 734d-xhm2)
垢版 |
2019/01/09(水) 19:52:02.31ID:4rDfBKqR0
>>43
登録後にブラウザの更新ボタンが押されると送信済みのPOSTデータが再送信され結果2重登録してしまうって事だよね?

なら↓のやり方でどうか
 画面アクセス毎にセッションにランダム文字列を保存&出力htmlに<INPUT type="hidden">で保存した文字列を埋め込む
 登録処理時、セッションに文字列が無い場合やPOSTされた文字列とセッションに保存された文字列が一致しない場合はNGとする
0047デフォルトの名無しさん (ワッチョイ d6a7-ae4N)
垢版 |
2019/01/11(金) 00:52:34.47ID:Tbw1O8r40
indexから同じindexにpostしてindexで更新してるってことかな?
普通はpost用のコントローラに渡して実行後にindexにリダイレクトするから
戻るおさん限りは更新しても問題にはならんと思うのだけど
チャットほどじゃないにせよリロードが出来ない掲示板なんて…
まあ手動じゃなくて更新データはスクリプトで非同期でとってくりゃいいけど
サーバでどうにかなればプッシュすれば利便性もUP
0049デフォルトの名無しさん (ワッチョイ ce8c-1FXn)
垢版 |
2019/01/11(金) 18:16:54.21ID:0MVnI2bb0
>>43
同じ掲示板にジャンプして書き込まれたPOSTの中身を確認してテキストに保存してって感じで作ってる
でもtime変数使ってページ読み込んだ時とボタン押されたときの変数で一致したら書き込むって感じでやってみるわ
0052デフォルトの名無しさん (ワッチョイ d62c-NvUN)
垢版 |
2019/01/12(土) 00:51:32.95ID:IAz54C400
Rails など、普通のフレームワークの作り方では、
Post したら別の画面、一覧画面などに移動する

ルーティング(routes.rb)に、CRUD が定義されている。
追加(C)・更新(U)されたら、一覧(R)に戻る

一覧に戻ると、追加・更新されたのを見れる
0053デフォルトの名無しさん (ワッチョイ d6a7-ae4N)
垢版 |
2019/01/12(土) 08:15:39.30ID:9TmqbdMf0
戻るに対応するなら
セッションでトランザクション処理のようなことをやればいいだけだけど
更新するだけで連投されるなんていうミラクル仕様に突っ込んでるだけで
それとこれは話が別よ
0054デフォルトの名無しさん (ワッチョイ 16da-aYY/)
垢版 |
2019/01/12(土) 11:26:47.84ID:dtC7PwsV0
>>49
俺が作った掲示板は、if($投稿された文章==='保存したテキスト')die('二重投稿です')ってやってる
要するに重複チェック
0057デフォルトの名無しさん (ワッチョイ a5f0-VK1S)
垢版 |
2019/01/12(土) 11:58:58.16ID:wHUCWNv00
すみません、誤射でした><

class HelloRequest extends FormRequest{
public function authorize(){
if($this->path() =='hello'){
return true;
}}}

if文にあるthis->path()は、validationメソッドですが
スーパークラスのFormRequestはControllerを継承してるのでしょうか?

また、laravelのクラスの継承図のようなものってどこかにありますか?
0058デフォルトの名無しさん (ワッチョイ d6a7-ae4N)
垢版 |
2019/01/12(土) 13:04:51.50ID:9TmqbdMf0
>>55
file_put_contentsは使わないけどそれ以前にPOSTする為のパラメーターが足りてない
どういうことか理解できるならstream_context_createのページ見てみればいい
それ踏まえて方法はいくつかあるがcURLが一般的なので「PHP cURL POST」でググればいいよ
0061デフォルトの名無しさん (ワッチョイ 715f-RNo8)
垢版 |
2019/01/13(日) 01:34:59.40ID:mcoRrcQP0
超くだらない質問なんですが
PHPにパスワードを保存しようと思うのですが
PHPのソースコードが読まれないか心配です
いちおうブラウザからはソースを選択しても表示されないのですが
もしかしたら何らかの方法で読まれる可能性もありそうで
心配で寝れません
教えて下さい
お願いします
0063デフォルトの名無しさん (ワッチョイ d6a7-ae4N)
垢版 |
2019/01/13(日) 07:19:52.26ID:vFHHKg450
パスワードをスクリプトから分離して
phpからは参照出来るが外から直接参照できないとこ(ドキュメントルートの上とかDBとか)に置く
ファイルに保存するならファイル名は.htを先頭につけるといい
パスワードはハッシュ化しておく
これらが有効なのは放置してサーバの仕様変更に気づかなかったり(php廃止とか)
設定ミスってphpをtxtとして配信してしまうようなケースのみ
そのへんに問題なくてphpのソースコードが見られてしまうような場合は
もう何もかもがだめなことが多いので心配するだけ無駄だわ
0072デフォルトの名無しさん (ワッチョイ 11f0-fAiL)
垢版 |
2019/01/22(火) 15:38:00.61ID:+epunpvy0
laravel マイグレーション、シーディング処理について教えてください
現象:マイグレーションは作成できた。シーディングの実行で、columnが無い、というエラーが出る

----- migration --------
class CreatePeopleTable extends Migration{
pubulic function up(){
Schema::create('people',function(Blueprint $table){
$table->increments('id');
$table->string('name');
$table->timestamps();
007372 誤爆すみません (ワッチョイ 11f0-fAiL)
垢版 |
2019/01/22(火) 15:54:41.18ID:+epunpvy0
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
マイグレーションで作成したテーブルにデータが登録できないのはなぜなのでしょうか?よろしくお願いします。
007473 (ワッチョイ 11f0-fAiL)
垢版 |
2019/01/22(火) 16:28:02.93ID:+epunpvy0
すみません、なんだか分かりませんでしたが自己解決しました。
お騒がせしました。
0075デフォルトの名無しさん (ワッチョイ 9375-qnWR)
垢版 |
2019/01/23(水) 08:11:47.51ID:3lDydxt30
練習兼ねて小規模&少機能で簡単なネットショップを作ろうとしてるのですが、設計段階でファイルがごちゃごちゃになってしまいそうです
フォルダの作り方やファイルの分け方はどんな感じでやればスッキリ分かりやすくなりますかね?
0078デフォルトの名無しさん (ワッチョイ 9bbb-2w1z)
垢版 |
2019/01/23(水) 11:27:05.16ID:aXKStg7n0
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,

ではなぜ代入されないのか、がわからず。教えていただけないでしょうか。
0080デフォルトの名無しさん (ワッチョイ 49ba-L3L3)
垢版 |
2019/01/24(木) 00:24:18.63ID:cPFOMtSZ0
$url = 'http://example.com/'+'/path/';
だと、途中に余分なスラッシュが入りますよね。
それを綺麗に整形してくれる関数や手法などはありますか?
0081デフォルトの名無しさん (ワッチョイ 2ea7-iVxn)
垢版 |
2019/01/24(木) 19:50:20.26ID:kFfuye3h0
標準関数にズバリのものはないと思うけど探せば誰かコード書いてるはず
簡単なのでよければsubstr使うとか
parse_urlしたのを組み直すかそのあたりで
./../とかも考慮するならちょっと面倒になってくるが
0085デフォルトの名無しさん (ワッチョイ 49ba-L3L3)
垢版 |
2019/01/25(金) 23:38:05.77ID:H/r4QqDk0
echo 'aaa';
echo('aaa');
include_once 'path/file.php';
include_once( 'path/file.php');
のようにカッコが有っても無くても良い関数がありますが、
php上級者の人はどっちを使うのでしょうか?
理由も教えてけろ
0087デフォルトの名無しさん (オッペケ Srf1-ZdbU)
垢版 |
2019/01/26(土) 17:57:25.92ID:WSFNrCYQr
phpの関数の戻り値って望む型の他にfalseも返ることがあるよね
そんで7からは戻り値の型宣言いれて戻り値の型が違ったらTypeError出す

もうごちゃごちゃだね
0090デフォルトの名無しさん (ワッチョイ 4646-uJAn)
垢版 |
2019/01/28(月) 07:17:11.62ID:X4/3tVW10
laravelに関して質問させてください。
Eloqentのモデルに関してです。

<?php
namespace ---
use ---\Model
class Person extends Model{
public function scopeAgeGreaterThan($query,$n){
return $query->where('age',$n);
}

コード中の$queryは、$thisとしても同じ結果が得られます。
$thisではなく、引数$queryを利用する意味は、何かあるのでしょうか?
もしあるのなら、その意味、意義を教えていただけないでしょうか?
よろしくお願いします。
0092デフォルトの名無しさん (ワッチョイ 49ba-L3L3)
垢版 |
2019/01/29(火) 21:20:14.58ID:KhUtNVBn0
ttps://stackoverflow.com/questions/4366730/how-do-i-check-if-a-string-contains-a-specific-word
の5831の回答で、
if (\strpos($a, 'are') !== false) {
の部分ですが、if( の次のスラッシュは何ですか?
0093デフォルトの名無しさん (ワッチョイ 2e2c-/4Fh)
垢版 |
2019/01/29(火) 21:54:10.57ID:AnpnZGSz0
そのサイトの下の方では、\ は付いていないから、気にしなくてよいのでは?

<?php

$haystack = 'how are you';
$needle = 'are';

if (strpos($haystack,$needle) !== false) {
echo "$haystack contains $needle";
}

?>
0094デフォルトの名無しさん (ワッチョイ 49ba-L3L3)
垢版 |
2019/01/29(火) 22:00:03.73ID:KhUtNVBn0
>>93
了解です、気にしません。
ところで、わざわざ !==falseで判定する理由は何ですか?
0095デフォルトの名無しさん (ワッチョイ 2e2c-/4Fh)
垢版 |
2019/01/30(水) 00:01:17.63ID:T9WgAkKs0
Ruby には、偽がnil, false の2つしかないけど、
JavaScript, Python, PHP には、偽が10個ぐらいある

0, 0文字列、空配列とか、様々な可能性が排除できない。
少しでも表現を変えると、バグる

例えば、それをtrue に変えると、様々な偽の条件が存在してしまう。
0 の時とか、空配列とか

他の言語は、Rubyに比べて、バグる確率が高い
009795 (ワッチョイ 2e2c-/4Fh)
垢版 |
2019/01/30(水) 00:54:29.54ID:T9WgAkKs0
Ruby 以外の言語では、
!= など、普通の比較演算子では、偽が10個ぐらいあるから危険!

!== などの厳密比較演算子を使うべし!
009998 (ワッチョイ 2ea7-UldQ)
垢版 |
2019/01/30(水) 06:22:12.32ID:Bo5lehOR0
>>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'));
0100デフォルトの名無しさん (ワッチョイ 6eba-L3L3)
垢版 |
2019/01/30(水) 16:29:27.79ID:/IyzrTjj0
>>95
良く分かりました。
0101デフォルトの名無しさん (ワッチョイ 6eba-L3L3)
垢版 |
2019/01/30(水) 16:32:02.78ID:/IyzrTjj0
>>99
$retval = \strpos($haystack, $needle, $offset);
これだと、どこかよその名前空間で定義されているstrposと言う意味ですか?
$retval = \MY_NameSpace\strpos($haystack, $needle, $offset);
と書くと、特定の名前空間を絶対パスで指定出来るという理解で良いですか?
0102デフォルトの名無しさん (ワッチョイ 2ea7-UldQ)
垢版 |
2019/01/30(水) 22:13:35.19ID:Bo5lehOR0
>>101
>どこかよその名前空間で定義されているstrposと言う意味ですか?
どこかっていうか標準関数のstrposことなんだけど
これはnamespace myで定義しなおした標準関数strposのラッパー関数
もしここで
>$retval = \strpos($haystack, $needle, $offset);
に\をつけないと自身のstrposをさしてしまうので
この関数自体は標準関数のラッパーに過ぎず実装を持たないので正しく動かない
へたしたら再帰処理でループに陥るのと同じ感じになってしまう
0103デフォルトの名無しさん (ワッチョイ 2ea7-UldQ)
垢版 |
2019/01/30(水) 22:22:17.50ID:Bo5lehOR0
もう1つの質問に答えてなかった
>$retval = \MY_NameSpace\strpos($haystack, $needle, $offset);
>と書くと、特定の名前空間を絶対パスで指定出来るという理解で良いですか?
まあそんな理解で大丈夫かと
0104デフォルトの名無しさん (ワッチョイ ffba-zj6v)
垢版 |
2019/01/31(木) 13:36:09.97ID:8UUA+SfH0
>>103
ありがとうございます。
もう一つ教えて下さい。
自分で作ったライブラリ関数群は、自分用の名前空間を定義して
例えば、こんな感じで
namespace MyLib{
  function myfunc1(){
    ・・・
  };
  function myfunc2(){
   ・・・
  };
}
のように、名前空間に入れておくべきですか?
それとも名前空間無しにしておくほうが使い易いですか?
0105デフォルトの名無しさん (アウアウエー Sa7f-Du1s)
垢版 |
2019/01/31(木) 14:50:10.17ID:87rKAAGWa
ユーザー定義関数の引数を変数にした時、渡された変数名も同じでいいんですよね?下の様に
でもいろんな説明みると変更してることが多いけどなんで?

function func($hoge){
・・・
}

func($hoge);
0107デフォルトの名無しさん (ワッチョイ ffa7-BT/j)
垢版 |
2019/01/31(木) 15:28:24.41ID:rgWv2NOA0
>>104
名前空間を指定しないということは
標準関数や内部クラスと同じグローバルの名前空間(\)に属することになるので
もちろんコーディングする上での利便性はいい
名前空間がPHP5.3から導入されたように昔はなかったわけだし「やりよう」によっては問題にならない
例えば被ってしまってエラー出たら関数名を変えるとか
被る可能性がかぎりなくないような風変わりな関数名をつけるとか
先人がその「やりよう」が面倒だったから導入したんだけど
実際にはよほど巨大なプロジェクトでもない限り問題は起きないと思う
あとは名前空間の概要見て決めたらいいんじゃないかな
http://php.net/manual/ja/language.namespaces.rationale.php
他人に使ってもらうことを考慮するならつけるべきだけどね
0108デフォルトの名無しさん (ワッチョイ ffba-zj6v)
垢版 |
2019/01/31(木) 19:50:03.57ID:8UUA+SfH0
>>107
解説ありがとうございました。
ところで関数にprivateやpublicを付けられるのはclassの中だけですか?
namespaceの中でprivateな関数を定義することは出来ませんか?
つまり、そのnamespaceの中だけで作業する為の関数で、
外部に公開したくない関数です。
0109デフォルトの名無しさん (ワッチョイ 7f89-SDwV)
垢版 |
2019/02/06(水) 14:06:21.85ID:7EDRIJEy0
質問させてください。
配列で「りんご・バナナ・みかん・りんご・みかん・りんご」とあった場合、
これを「りんご1・バナナ1・みかん1・りんご2・みかん2・りんご3」
みたいに同じものが何個目かを書き加えたいのです。
どうやるといいしょうか?
0110デフォルトの名無しさん (ワッチョイ 7f4d-S1Ul)
垢版 |
2019/02/06(水) 22:56:42.64ID:7o71stsH0
$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);
0115デフォルトの名無しさん (ワッチョイ 2de3-sQyl)
垢版 |
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
)
0116デフォルトの名無しさん (ワッチョイ 0289-fard)
垢版 |
2019/02/08(金) 00:54:59.90ID:DKnzBuB20
>>110
返信が遅くなってしまいすみません。
うまくできました。
本当にありがとうございます。
0117デフォルトの名無しさん (ワッチョイ e101-95g7)
垢版 |
2019/02/08(金) 01:23:31.06ID:1Q4bQ8+M0
phpでスクレイピングした文字列をmysqlのデータベースにInsertしたいのですが、ざっくりどういう風にやればよいでしょうか?
スクレイピング自体は出来ていて、ここからDBに挿入する方法が知りたいです。
よろしくおねがいします。
0118デフォルトの名無しさん (オッペケ Srd1-da9w)
垢版 |
2019/02/08(金) 08:16:42.39ID:Waqd0NNdr
ざっくりいうとINSERTのSQL文を書けばいいんだよ
0120デフォルトの名無しさん (ワッチョイ a275-Ctdi)
垢版 |
2019/02/08(金) 16:27:15.56ID:k5rPGxdZ0
サーバー側に数万枚の画像を保存する場合、数万枚を1つのフォルダに入れるのと、10000台、20000台のようにフォルダ分けしたほうがいいですか?
0122デフォルトの名無しさん (ワッチョイ a275-Ctdi)
垢版 |
2019/02/08(金) 16:57:55.31ID:k5rPGxdZ0
1ページに20件〜50件くらいサムネ表示したり、1ページに数枚表示したり
ネットショップのようなイメージ
0124デフォルトの名無しさん (ワッチョイ 8646-OF6d)
垢版 |
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にならないのか、教えていただけないでしょうか><
どうか、よろしくお願いします。
0126124 (ワッチョイ 8646-OF6d)
垢版 |
2019/02/09(土) 06:31:09.14ID:3JjKiGqr0
すみません。$request->emailです。
タイプミスはなくても、falseになります。
よろしくお願いします。
0131デフォルトの名無しさん (ワッチョイ 6e63-OF6d)
垢版 |
2019/02/09(土) 18:23:52.81ID:LiyCmRY90
>>130
PEAR server is down

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

なんていうかリストのいち部分をズームアップしてそこだけ見えるようにしたようなイメージのほうがいいきがするの
だって取り出したんだったらいつ元に戻したの?っていうことになるよね?
イメージ的に
たぶん想像だけど元々のリストのメモリ上の位置は全く変わっていなくてずーっとそこにあるから取り出したっていう日本語が変なんだと思うの
0133デフォルトの名無しさん (ワッチョイ 924b-Ctdi)
垢版 |
2019/02/10(日) 04:13:15.33ID:jBesuRSj0
これはリスト=辞書a、辞書b
みたいになってて辞書aをとりだしてそこになにかを付け加えた場合に
元のリストに変更がそのまま反映されることを言ってます
取り出すっていう日本語の操作だといつ元に戻したのっておもうよね?
0136デフォルトの名無しさん (ワッチョイ 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);
0137デフォルトの名無しさん (ワッチョイ 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になりました… なんででしょうか?
0138デフォルトの名無しさん (ワッチョイ e101-feI+)
垢版 |
2019/02/10(日) 22:44:52.33ID:Bb8eA8KO0
勝手にリダイレクトされるのとめる方法ないですかね
0140デフォルトの名無しさん (アウアウウー Sa05-OF6d)
垢版 |
2019/02/13(水) 15:56:50.06ID:qcwaRdjDa
cronで実行しているPHPで不具合が出て調べているのですが、
php.iniでエラーログを指定していない場合、
コマンドラインからPHPを実行した時のエラーログってどこに出るのでしょうか?
apacheで実行した場合はapacheのエラーログに出るようですが
0142デフォルトの名無しさん (ワッチョイ 2702-wP4P)
垢版 |
2019/02/16(土) 03:56:24.05ID:p8v5qaF40
質問させていただきます

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

php.iniか何かの編集でそもそもデフォルトをデータベース利用のセッションにするということなしに
上手いやり方があるのであればお教えいただければ幸いです
どうぞよろしくお願いいたします
0143デフォルトの名無しさん (ワッチョイ a761-8zyB)
垢版 |
2019/02/17(日) 12:12:25.21ID:vpvr2f070
>>140
cronから実行したプロセスは端末と結びついていないから、リダイレクト指定しなければただ閉じてる。
0146デフォルトの名無しさん (ワッチョイ 5ff0-cT+3)
垢版 |
2019/02/18(月) 18:19:22.08ID:yhtTsT3P0
laravelに関する質問を受け付けていただけますと幸いです><

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

という感じなのですが、何か改善する方法を教えてくださるかた、いらっしゃいませんでしょうか?
0147デフォルトの名無しさん (ワッチョイ e73c-cT+3)
垢版 |
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'
--------------------
これと同じようなことはどのように実現しますか
0149デフォルトの名無しさん (ワッチョイ 7fa7-8zyB)
垢版 |
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);
 }
}
親クラスにこんなん入れて必要なときに参照すれば
少しはましになるんではないかと
0150148 (ワッチョイ a514-8eq+)
垢版 |
2019/02/24(日) 02:45:30.45ID:yLdhIKyP0
>>149
遅くなりましたがレスありがとうございます
わざわざ子クラスにまで書く必要はなさそうですね
0151デフォルトの名無しさん (ワッチョイ 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
とか試したけどダメだったわ;
0158デフォルトの名無しさん (ワッチョイ 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という改行コードは存在するのでしょうか?
よろしくお願いします
0159デフォルトの名無しさん (ワッチョイ 16a7-3PTc)
垢版 |
2019/03/07(木) 03:55:06.79ID:wQ6Vu2No0
改行を\n\rで保存したり取り扱うエディタが存在するかもしれないし
\r\nと勘違いして\n\rとか渡しちゃうかもしれないし
そんな人にも<br><br>と2つにはせずに<br>1つにしてくれる親切設計ってだけでは
0160デフォルトの名無しさん (ワッチョイ d6da-DZHv)
垢版 |
2019/03/07(木) 08:24:12.22ID:2g7ZW4ya0
めんどくさい
CR絶滅してLFだけで統一してくれればいい
ありがとうございました
0162デフォルトの名無しさん (ワッチョイ 12f0-/kwh)
垢版 |
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 を閉じてしまってうまく動かせません。
なにか良い方法はありませんか?
0165デフォルトの名無しさん (ワッチョイ b7ba-/kwh)
垢版 |
2019/03/08(金) 18:15:43.51ID:yu/ETmP20
>>163
言葉足らずだったね。スマン。
OSによっての解釈の話ではなくて、本来のCR、LFの意味での話。

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

結局使わないからOSによって都合のいい解釈になったんだろうけど。
まあどうでもいいや。スレチスマン。
0166デフォルトの名無しさん (ワッチョイ 12a9-ouaW)
垢版 |
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)
に「&」があるのですが、それを取り除くとエラーが出なくなりますが、
関数の引数の前に & はつけることがあるのでしょうか?
0169デフォルトの名無しさん (ワッチョイ 12a9-ouaW)
垢版 |
2019/03/08(金) 19:42:19.86ID:4NSKE0Lh0
>>167-168
ありがとうございます、参照渡しというのがあるのですね。
php 5.4で、参照渡しが無くなったので、エラーが出ていることがわかりました。
&を取っても動いている感じなのですが、とりあえずそれで様子を見たいと思います。
0171デフォルトの名無しさん (ワッチョイ 12a9-ouaW)
垢版 |
2019/03/09(土) 02:21:59.24ID:BXeyfCeA0
>>170
>多分&をつけるほうが正解なんじゃないかな?
クラスのことは勉強不足でわからないのですが、
class hoge
function useredit($user) {}

function useredit(&$user) {}
に変更するとエラーが出なくなりました、
確かに両方で無しか有りにするとエラーが出ないので、どちらが良いかわかりませんが、
これで様子を見たいと思います、ありがとうございました。
0172デフォルトの名無しさん (ワッチョイ de46-/kwh)
垢版 |
2019/03/09(土) 07:23:29.43ID:4+hj1jJB0
>>164
ありがとうございます

そのコードでも、−>の'>'が、<input タグの閉じる>と認識されてしまいます。
どうやってエスケープしていいか、方法が見つからないので、多重配列を避けて記述するようにします。
0173デフォルトの名無しさん (ワッチョイ 16a7-3PTc)
垢版 |
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':''>
になってるの?
それともそこでエラーが出てて自分でそこが原因だと思ってるってこと?
0175デフォルトの名無しさん (ワッチョイ 16a7-3PTc)
垢版 |
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行じゃ無理とか
行頭に書かないといけないとかあるのかもしれない
0176175 (ワッチョイ 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':''?>>
0177デフォルトの名無しさん (ワッチョイ de46-/kwh)
垢版 |
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行で綺麗に書けないのが残念でした。

本当ありがとうございました!
0183デフォルトの名無しさん (ワッチョイ 137d-td6u)
垢版 |
2019/03/15(金) 10:45:15.54ID:+YXguzLt0
質問させてください

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

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

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

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

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

処理は、その後に行う

読み込んで書き戻すのなら、処理中もファイルを開いておくかも知れないけど、
そうするとその間、排他制御で、そのファイルはロックされる
0192デフォルトの名無しさん (ワッチョイ fff0-kdx8)
垢版 |
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が使えるようにするには
どうしたらいいのでしょうか?
0193デフォルトの名無しさん (ワッチョイ 6f8c-B7Il)
垢版 |
2019/03/19(火) 13:20:28.75ID:rDiaexLE0
エスケープ処理のために$clean[$key] = htmlspecialchars( $value, ENT_QUOTES);でしてるんだけど
<や>が変換されないでそのまま表示されちゃってるんだけどちゃんと変換できてないの?それとも書き方が悪い?誰か教えて
0195デフォルトの名無しさん (ワッチョイ 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>;
これで
0198デフォルトの名無しさん (ワッチョイ 6f8c-B7Il)
垢版 |
2019/03/19(火) 23:59:06.58ID:rDiaexLE0
>>194
でもサニタイズしたはずなのにphpでフォームにJavascriptの$valueの中身入れるて飛ぶとYahooに飛んじゃってるんだよなIEで確認したから間違いないけど
0201デフォルトの名無しさん (ワッチョイ cfda-h1+v)
垢版 |
2019/03/20(水) 18:33:53.86ID:DvYG4dOj0
PHPやたったことないんだけど、どういう風に起動してるのか俺に簡単に説明してくれない?

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

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

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

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

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

毎回この起動・終了に、時間が掛かるから、
起動しっ放しというモードもある
0206デフォルトの名無しさん (ワッチョイ cfda-h1+v)
垢版 |
2019/03/20(水) 22:07:48.21ID:DvYG4dOj0
>>204
かなり分かった!
httpdが自分のプロセスにdllを取り込むってことかな?
0207デフォルトの名無しさん (ワッチョイ b301-dgXV)
垢版 |
2019/03/21(木) 09:03:31.33ID:PB8+T8io0
https://i.imgur.com/QB190U9.jpg
このプログラム実行して、43行目にphp Array to string conversion inっていうエラーが出る。ググッて見たけど分からん。
0211デフォルトの名無しさん (ワッチョイ b301-dgXV)
垢版 |
2019/03/21(木) 15:36:27.39ID:PB8+T8io0
解決しました!ありがとうございます
0213デフォルトの名無しさん (ワッチョイ c68c-SbEy)
垢版 |
2019/03/21(木) 18:32:18.31ID:QCgCURXL0
>>193
原因がわかったわ、その前にページが止まるからなぜなんだろうと思ったらChromeが制御してたわ
コードのscriptタグを検知して連続遷移しないようにしてたみたいだ、余計なことを・・・
0214デフォルトの名無しさん (ワッチョイ b301-JcKA)
垢版 |
2019/03/21(木) 19:26:17.36ID:iAqXNI0+0
質問です。
htmlソースをinclude等で読み込む際、そのソースの途中に追記する事ってできますでしょうか?

読み込むソース
<div>1行目</div>
<div>2行目</div>
<div>3行目</div>

includeする時にこうしたい
<div>1行目</div>
<p>追記</p>
<div>2行目</div>
<div>3行目</div>
0216デフォルトの名無しさん (ワッチョイ de2c-ZSTg)
垢版 |
2019/03/21(木) 21:19:06.65ID:ZeSQsBE10
Ruby, JavaScript にもある、部分テンプレートを読み込む、partial file の機能だろ。
PHP のフレームワークにもあるはず

一般的には、header, footer などの各部分は、別ファイルにして読み込んで使う
0217デフォルトの名無しさん (ワッチョイ b301-JcKA)
垢版 |
2019/03/22(金) 00:15:37.10ID:j6KcVv1w0
>>215
すいません質問の仕方が悪かったです。 
読み込む側のページでのみ関数みたいに個別で追記をしたいんです。
読み込まれる側のファイルにURL判別とかの細工でもしないと無理ですかね・・?


jQueryでいう、.loadしたソースにコールバックで.insertAfter();を走らせるイメージです。
0219デフォルトの名無しさん (ワッチョイ dea7-9VoM)
垢版 |
2019/03/24(日) 03:24:20.66ID:u71/GScf0
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');
0222デフォルトの名無しさん (ワッチョイ b301-DTGA)
垢版 |
2019/03/24(日) 17:37:53.78ID:VT2RwePW0
>>219
>include/requireは関数じゃないので返り値としてソースを受け取れない
理解しました。ありがとうございます!
file_get_contentsはスクレイピング時に使った事あるのですぐ理解できました
ありがとうございます〜

>>220,>>221
ありがとうございます
一番知りたかったのはinclude/requireでは無理と言う事でした
方法論、参考にさせていただきます
0223デフォルトの名無しさん (ワッチョイ 06ca-qfZi)
垢版 |
2019/03/24(日) 18:04:06.12ID:cA6CskBI0
>>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 してるスコープから見えるように設定しておく。
0225デフォルトの名無しさん (ワッチョイ caf0-0zLl)
垢版 |
2019/03/25(月) 17:56:02.49ID:IkNYQuI20
$paramに連想配列を格納して、foreachで取り出そうとしてるんですけど
先頭要素のキーが取り出せず、先頭要素の値から取り出し始めてしまうのですが
そういう挙動に詳しい人いらっしゃいますか?
0231デフォルトの名無しさん (ワッチョイ c646-0zLl)
垢版 |
2019/03/27(水) 07:02:12.26ID:LqjZ6KSp0
初めて聞く症状だけれど
var_dumpで確認できている配列データなら
foreachで取り出せないわけないので
見間違いとか、スクリプトやタグのせいで消えてしまっているとか別の要因なんでしょ
0232デフォルトの名無しさん (ワッチョイ 06ca-qfZi)
垢版 |
2019/03/27(水) 07:22:24.12ID:yj3g7joz0
だなぁ
>>226 のコードで最初のキーが取り出せず値から取れちゃうというのが、$key と $value に具体的に何が入ってるということなのか分からんな。
言葉通りに捉えれば $key に最初の要素の値が入ってるんだろうが、んじゃ $value には何が入ってるの?みたいな。
0233デフォルトの名無しさん (ワッチョイ 9fa9-ZTi4)
垢版 |
2019/03/29(金) 19:38:19.41ID:DzAWjPl30
centos7でphp72をremiで入れた場合、

# php
-bash: php: コマンドが見つかりません

を解消するための、正しいシンボリックリンクの張り方ってどこに作ってどこへ向けるのが正解?

/usr/binに作るのか、
パスが通っていればどこでも良いのか、迷ってます。

インストールしたときは
# cd /bin/ ; ll | grep php
php72 -> /opt/remi/php72/root/usr/bin/php
となっています。
0235デフォルトの名無しさん (ワッチョイ 9fa9-ZTi4)
垢版 |
2019/03/30(土) 01:45:18.36ID:3vDAxa540
>>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
0237デフォルトの名無しさん (ワッチョイ efad-zf8N)
垢版 |
2019/04/01(月) 02:47:56.82ID:6Qmf1LuG0
lineボット作ろうとしてるけど
curl_initが使えない
0242デフォルトの名無しさん (ワッチョイ 0f2c-injD)
垢版 |
2019/04/03(水) 01:37:44.24ID:4XO/CSdW0
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
0243デフォルトの名無しさん (スフッ Sdbf-zf8N)
垢版 |
2019/04/03(水) 13:15:08.75ID:H4sG9A7Rd
>>242
ubuntu18でやってるんよね
webシステム作ってて
0244デフォルトの名無しさん (ワッチョイ 9ff0-r4m/)
垢版 |
2019/04/03(水) 14:20:29.53ID:zicRLWLY0
質問させてください。よろしくお願いします。
DBはsqliteというのを使っています。

DBは、user_name : 都道府県 :というカラムがあります。DB件数は1000件で、ランダムで生成しています。
formページで、都道府県を入力すると、$form_prefという変数に入力値を格納し、
DBへは、where('都道府県','$form_pref)で検索すると、検索結果は0になります。
また、where('都道府県','東京')で検索すると、検索結果は正しく検索されます。
where句で、変数によって検索をかけると、正しく検索されないのはなぜなのでしょうか?
0245デフォルトの名無しさん (オッペケ Sr4f-Xesi)
垢版 |
2019/04/03(水) 14:46:17.53ID:57e5+lwMr
>>244
なんのライブラリ使ってるかしらんが、そもそもお前のそのソースよくみろ
余計なものが入ってるだろ
0256デフォルトの名無しさん (ワッチョイ c6ad-I1WO)
垢版 |
2019/04/04(木) 10:30:53.37ID:kJslP6Nd0
>>254
ファイル数が万単位とかであるならば
255も言ってるようにDBで拡張子ごとにファイル名を管理したり
jsonでデータ管理してみたら
0257デフォルトの名無しさん (ワッチョイ c6ad-I1WO)
垢版 |
2019/04/04(木) 10:36:26.67ID:kJslP6Nd0
個人的にはjsonが好き
0258デフォルトの名無しさん (ワッチョイ 7d02-w1lf)
垢版 |
2019/04/04(木) 10:41:50.32ID:l5IgkZnr0
>>254
まんま、したい事すりゃ良い。
jpgか調べて見つけた時点でreturn true。
0262デフォルトの名無しさん (ワッチョイ b901-7xOg)
垢版 |
2019/04/04(木) 15:38:52.96ID:j78mKFJX0
PHP始めるけどどんな環境がいいの?
IDEは多分vscode使いたい
Pythonだとインポートサジェストがvscodeにはまだないけどphpは大丈夫?
それとPythonで言うanacondaみたいなものはあるの?
鉄板とかあるの?
0265デフォルトの名無しさん (ワッチョイ b901-7xOg)
垢版 |
2019/04/05(金) 10:24:35.32ID:0lUjLeBK0
色々と調べてみるとザンプにしますか?Dockerにしますか?って感じなんだな
やっぱりLinux上でやらないと駄目かな?出来るだけ仕事現場でそのまま使えるテクノロジーで学びたいんだけど
0269デフォルトの名無しさん (ワッチョイ b901-7xOg)
垢版 |
2019/04/05(金) 12:52:11.17ID:0lUjLeBK0
>>267
違う板で未経験から働きたいならlpicとってサーバーをある程度理解してる事をアピールしたほうが良いとアドバイスされたんだよね
まぁ取ってなくても早いうちに転職活動したほうがいいとも言われたけど
0275デフォルトの名無しさん (ワッチョイ b901-7+iI)
垢版 |
2019/04/05(金) 21:01:42.24ID:8A68roIQ0
PHPのエディタ、今までAtomを使ってて、VScodeも気になるんだけどどう?
0280デフォルトの名無しさん (オッペケ Sr91-Raum)
垢版 |
2019/04/05(金) 23:37:00.69ID:PMv6rz9+r
マカーはVSコードなど使わないからな
もちろんGithubも使わねえ
0281デフォルトの名無しさん (ワッチョイ ee2c-f03p)
垢版 |
2019/04/05(金) 23:44:48.07ID:xPcsbeSU0
PHP は多いけど、低価格っぽい。
多さの順は、COBOL > Ruby > Python

Ruby は、Vagrant, Chef など、サーバー管理構築運用の仕事もあるから、
OS をよく知っている印象が強い
0283デフォルトの名無しさん (ワッチョイ ee2c-f03p)
垢版 |
2019/04/05(金) 23:58:38.98ID:xPcsbeSU0
>>266
今はLPIC じゃなくて、LinuC。
OS の機能やサーバー管理構築運用なら、Vagrant, Chef などで使われている、Ruby がお勧め。
こういうシェルスクリプトの代替機能を、面倒なPython で学ぶ必要はない!

先に、Rails よりも、Sinatra をいじくりまわせ!

YouTube に、雑食系エンジニアのKENTA の動画がある。
転職者は、見ておくべき。

PHP は、転職での評価が低い

KENTA 自身は、Ruby にそっくりな関数型言語、
Elixir のフレームワークで、ポートフォリオを作ったらしい。
ここまで行くと、年収1千万超!
0284デフォルトの名無しさん (オッペケ Sr91-Raum)
垢版 |
2019/04/06(土) 00:24:48.26ID:uCKV04Asr
phpで年収1800万の俺にくらべたら下じゃん
0285283 (ワッチョイ ee2c-f03p)
垢版 |
2019/04/06(土) 01:23:26.51ID:f7FNE/du0
Rails は、年収3千万円超のハーバード大学でも、教えているほど!

プログラマーなんて、年収が1/5 ぐらいになるのに、なぜ教えるのか、わからないw
0287デフォルトの名無しさん (スップ Sd02-TtNY)
垢版 |
2019/04/06(土) 05:09:54.95ID:tnKohzU7d
KENTAって人の動画をマジで信じてる人いてビビったわ
技術を煽って自分のオンラインサロンに入らせる典型的な不安ビジネスやってる人じゃん

あとあの人のポートフォリオ見たらわかるけどHelloWorldレベルのことしかやってないぞ
0289283 (ワッチョイ ee2c-f03p)
垢版 |
2019/04/06(土) 08:22:38.32ID:f7FNE/du0
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`'
0290デフォルトの名無しさん (ワッチョイ b901-7+iI)
垢版 |
2019/04/06(土) 12:01:46.77ID:I7rc3KX60
>>287
kwsk
0292デフォルトの名無しさん (ワッチョイ 85da-KJrz)
垢版 |
2019/04/06(土) 20:44:27.91ID:luFKN00U0
このスレなら 「PukiWikiから○○に移行したよ」って人もいそうなのでお聞きします。
いま時の 小規模向けWiki でオススメのがあったら教えてください。 PHPベースでなくても構いません。
昔 PukiWiki で個人的なメモを管理してたんですが もう何年もご無沙汰しています。
0293デフォルトの名無しさん (ワッチョイ 4901-Fply)
垢版 |
2019/04/11(木) 04:36:20.03ID:yaNFrze20
ローカルでしかPHP触ったことないんだけどネットに繋ぐ場合ってどんな方法ある?サーバーを借りるの以外で
0296デフォルトの名無しさん (ワッチョイ 4901-Fply)
垢版 |
2019/04/11(木) 09:55:10.52ID:w1EtGven0
>>295
いまアパッチ使ってローカルでやってるんだけど設定変えて繋げたらセキュリティとかの対策必要なの?
仮想環境でやってないからちょい怖い
0300デフォルトの名無しさん (ワッチョイ 4901-Fply)
垢版 |
2019/04/11(木) 13:36:11.50ID:vSJqsCex0
面接のポートフォリオで動いてるとこ見せたい場合1番簡単な方法って何がある?
GitHubとかに上げても動いてるとこは見れないよね
0302デフォルトの名無しさん (ワッチョイ 4901-Fply)
垢版 |
2019/04/11(木) 14:36:54.31ID:1s3wCd4l0
>>301
やっぱ相手側が触ることは出来んよね
awsとか使えば相手が動かせる事も出来るよね
0303デフォルトの名無しさん (ワッチョイ 0b82-3VJR)
垢版 |
2019/04/11(木) 18:37:47.44ID:ucvbVgLJ0
ファイルアップロードフォームを作って、
iPhoneから写真や動画をアップロードして、
$_Filesからファイル名を取り出すと、
6CCC151C-DF3B-486F-8C97-AA06485047BD.jpeg
こんな感じの文字列になってしまいます。
元はIMG_0000.jpgのような名称だと思います。

iPhoneからの場合はどうすれば、正しい名称になるんでしょうか?
0305デフォルトの名無しさん (ワッチョイ b3bd-0Hjf)
垢版 |
2019/04/11(木) 22:38:53.56ID:ScFKV4yk0
phpでデータベースのカラムに寿命付けるのってどうすれば出来る?
takashiが一時ログインしたらタカシのデータを24時間で削除したいんやけど…
セッションやクッキーに保存するのは何か駄目な気がして。。
0307デフォルトの名無しさん (ワッチョイ b3bd-0Hjf)
垢版 |
2019/04/11(木) 22:57:43.87ID:ScFKV4yk0
>>306
登録した時間によって削除の時間が変わったりせんかな…
なんつーか個別にイベントを発行する感じにしたいんや。
一時的に登録して登録から24時間立ったら削除するみたいな。cron使う頭いいやり方があるなら知りてえ
0308デフォルトの名無しさん (ワッチョイ b3bd-0Hjf)
垢版 |
2019/04/11(木) 23:00:29.30ID:ScFKV4yk0
>>307
あっそうか。それをcronで判定すればいいのか。アホやな俺
0309デフォルトの名無しさん (ワッチョイ b3bd-0Hjf)
垢版 |
2019/04/11(木) 23:03:22.14ID:ScFKV4yk0
>>306
ありがとう😊
0313デフォルトの名無しさん (ワッチョイ 0b07-2loy)
垢版 |
2019/04/12(金) 15:57:53.38ID:DpwHJL1Z0
$array = ['name'=>'ななし','age'=>'20','sex=>'男']

という配列があるとして、
$array = ['member_name'=>'ななし','member_age'=>'20','member_sex=>'男']

と、キーにmember_を追加する方法を模索しています。
foreachで代入し直す以外に、簡単な方法はありますでしょうか?
0318デフォルトの名無しさん (ワッチョイ 0bda-pBLJ)
垢版 |
2019/04/13(土) 08:13:54.42ID:07mRS5hZ0
正規表現で、\w と [0-9A-Za-z] とで、どちらが早いとかありますか?
小文字アルファベットだけでいい時に、[a-z] と \w のどちらも指定できるとしたら、どちらが早いでしょうか?
0328デフォルトの名無しさん (ワッチョイ fbda-XGqV)
垢版 |
2019/04/15(月) 22:27:24.57ID:SVQji9la0
$はshiftを押さないと書けないから書きにくい
0329デフォルトの名無しさん (ワッチョイ 29ba-clLQ)
垢版 |
2019/04/17(水) 16:08:37.78ID:NJiBcQWA0
GETとかPOSTではfilter_inputを使えという話ですが、$_SERVERを扱うときは例外で旧来通り
直接アクセスが基本ですか?
さくらサーバーでは云々という情報が引っかかるのですが。
0339デフォルトの名無しさん (ササクッテロル Sp79-Br+Y)
垢版 |
2019/04/19(金) 13:16:13.03ID:Rb5u/z0hp
学校の課題でHTMLでHP作ってるんだけどwin10のパソコンで書いたやつを学校PC(win7)で開くと文字化けするんだがどうすればいいのか教えてくれ
0340デフォルトの名無しさん (ササクッテロル Sp79-Br+Y)
垢版 |
2019/04/19(金) 13:19:25.89ID:Rb5u/z0hp
https://i.imgur.com/8QFDaAE.jpg
こんな感じで書いた
0341デフォルトの名無しさん (オッペケ Sr79-kqL6)
垢版 |
2019/04/19(金) 13:41:03.84ID:7RHvbYhAr
Windows7はサポート外だからすてろ
0350デフォルトの名無しさん (ワッチョイ 8101-hooH)
垢版 |
2019/04/21(日) 00:22:00.24ID:Aeq/r6ow0
小学生のプログラム教材見たけど、
ロボを前へ3歩右へ2歩動かす命令をみたいなやつとか
PHPの教科書と同じレベルだわ
算数で足し算とか習ってるレベルの子供にほんとに理解できるのかな?
0351デフォルトの名無しさん (ワッチョイ f6ad-Eh39)
垢版 |
2019/04/21(日) 06:43:46.32ID:i48F5tCc0
>>336
オラは個人でポータルサイト作って公開してるが
PHPはサーバサイドの言語だから
サイト見たところで勉強にはならんと思うぞ
非遷移をやりたければAjax使わんといかんし
0352デフォルトの名無しさん (ワッチョイ f6ad-Eh39)
垢版 |
2019/04/21(日) 06:46:56.90ID:i48F5tCc0
>>350
アングリーバードのプログラミング教材は面白かった
でも、プログラミングってよりブロックタイプのやつだから
アルゴリズムを考える作業が殆だよね

micro:bitのブロックで書いたコードをJSやPythonなどに変換できる機能は良いなと思った
0353デフォルトの名無しさん (ワッチョイ 8101-hooH)
垢版 |
2019/04/21(日) 08:13:48.42ID:Aeq/r6ow0
>>352
俺見た本はぱっと見は絵が多くて小学生用なんだが普通に
条件分岐if文、ループfor文とか説明されてて
英語も算数も絡んでくるけど、今後の小中学生が脅威にかんじたわ
小さいうちから当たり前になじんでれば抵抗ないんだろうな
0357デフォルトの名無しさん (ワッチョイ 9eff-nFeC)
垢版 |
2019/04/24(水) 18:35:41.45ID:AdJPrH9y0
PHPでradioにチェックマークを付けたい場合、下記は間違ってますか?
<input type="radio" name="AAA" value="OK" <?php if($HEN['AAA'] === 'OK' ){ echo 'checked'; } ?> required>OK

$HEN['AAA']は確実に'ON'です。
入力フォームで入力確認画面からsubmitで最初の画面に戻すやり方です。
戻ってきてON状態にしたいのですが、なってくれません。
0359357 (ワッチョイ 9eff-nFeC)
垢版 |
2019/04/24(水) 19:12:31.45ID:AdJPrH9y0
>>358
すいませんif($HEN['AAA']の内容は「OK」です。
print_rなどで変数の内容を見ても、ちゃんと入ってます。
0366デフォルトの名無しさん (ワッチョイ 5e63-JNgg)
垢版 |
2019/04/24(水) 19:56:23.89ID:wb+dbNkk0
>>363
提案
radioをcheckboxに変えてみる
=== を == に変えてみる
if($HEN['AAA'] === 'OK' ){ echo 'checked'; } を echo 'checked'; だけにしてみる

いずれかで何か変わりませんか?
どこかに間違いがあると思うけど、提示された範囲では分からないです
0367デフォルトの名無しさん (ワッチョイ 922c-61/s)
垢版 |
2019/04/24(水) 21:46:15.30ID:kFXKi6KY0
>>357
><input type="radio" name="AAA" value="OK" <?php if($HEN['AAA'] === 'OK' ){ echo 'checked'; } ?> required>OK

例えば、Ruby のERB なら、
<p>
Name: <%=h name %>
</p>

h は、<, > などの特殊文字を、HTML Escape する。
でも、君のはコンテンツじゃなく、属性だから、HTML Escape してはいけない

一旦、php 文を変数に入れて、その変数をそこに書けば?

ERB では、<% 〜 %> は、Ruby式を実行するだけで、出力しない。
<%= 〜 %> は、式を実行して、そこへ出力する

同様に、phpにも、出力する記法があるのでは?
そんな、echo などを、わざわざ使うかな?
0370デフォルトの名無しさん (ワッチョイ 4ba7-KI0z)
垢版 |
2019/04/25(木) 00:24:58.08ID:sHpBR2uH0
OKっていうyvalueはちゃんと入れてるのか?
入れてないならチェックつけたらonって入ると思うけど
それは大文字ではなくて小文字のonになる

$HEN['AAA']って名前の変数は定義されてるのか?
普通に考えるとそこに入るのは$_GET['AAA']もしくは$_POST['AAA']

テンプレートエンジン使ったほうがいいと思うけど
バカ正直に書くとこんな感じになるはず
<input type="radio" name="AAA" value="OK" <?php if (isset($_POST['AAA']) && $_POST['AAA'] === 'OK') { echo 'checked '; } ?>required>
読みにくくなるが三項演算子を使えばもうちょいスッキリ書ける

もうちょい読みやすく書くと
<?php if (isset($_POST['AAA']) && $_POST['AAA'] === 'OK'): ?>
<input type="radio" name="AAA" value="OK" checked required>
<?php else: ?>
<input type="radio" name="AAA" value="OK" required>
<?php endif; ?>

>>367も言ってるけど
この条件文の前に$HENなんていう変数を本当に用意してるのであれば
その$HENの中身を'checked 'か''にするところまでやって
<input type="radio" name="AAA" value="OK" <?= $HEN ?>required>
にすりゃいいだけ
0371デフォルトの名無しさん (ワッチョイ 232c-vaK/)
垢版 |
2019/04/26(金) 13:58:13.68ID:A/WNBxWE0
><?= $HEN ?>required

ああ!
前後に、空白が無いから、
checkedrequired みたいに、文字列がつながって、HTML の構文エラーになるのだろう!

必ず、前後に空白を入れるべし!
0379デフォルトの名無しさん (アウアウウー Sa1b-y0Vo)
垢版 |
2019/05/13(月) 18:40:53.35ID:roML+UDma
呼んだ関数の返り値がfalse相当でなければ、その値を返す
そうでなければ、次の関数を呼んで、その値を返す
というのをスマートに書くにはどうしたらいいですか?

return func0() || func1()

と書けばいい気がしたのですが、func0の返り値が文字列の場合、うまくいきません
0386デフォルトの名無しさん (ワッチョイ bfca-fR1T)
垢版 |
2019/05/15(水) 07:21:00.71ID:WsD3jNK80
スマートってのがばく然とし過ぎてるよ。
何を叶えたくてそういう書き方をしたいのか。
それ用の構文が用意されてるか聞いてるのかな。
COALESCE みたいなのを探してるならPHP7で ??(null合体演算子)が追加されたけど、false や 0 にも適用させたいなら合わないだろうね。
if文で書くのが見やすいしメンテもしやすくてスマートなんじゃね。
0393デフォルトの名無しさん (ワッチョイ dfad-u4A8)
垢版 |
2019/05/25(土) 13:44:57.44ID:BtUlhHLe0
twitterのBotを作りたいと思っています
指定ワードに引っかかったらブロックするという動作を入れたいのでアプリだと対応できなさそうです
と言うか PHP でもそもそもそんな仕様で作れるのかも分からないので参考になりそうな資料があったら教えてください
0395デフォルトの名無しさん (ワッチョイ dfa9-Fpyl)
垢版 |
2019/05/25(土) 20:12:23.16ID:LACToUkl0
勉強中の身であり、変数の名前に気になるところがあるのですが、
$productName
$productColorとか、単語を並べてわかりやすくする時、2単語目は1文字目は大文字なのに、
先頭の単語は大文字にならないのをよく見受けるのですがなぜでしょうか?
0400デフォルトの名無しさん (ワッチョイ dfa9-Fpyl)
垢版 |
2019/05/26(日) 19:42:15.61ID:l16JnEYu0
レスどうもです、色々見てみました。
たしかに組織の中でルールを統一しないと色々不便があると思うので、こういうのがあるのですね。
for文のどこに半角スペースを入れるか入れないかでも悩んで居るので
できるだけ「ベタ」なやり方に沿っていたほうが良いとは思うのですが、標準化というのかわかりませんが、
そういう心構えを案内しているサイトは、何でググればいいでしょうか?
0404デフォルトの名無しさん (ワッチョイ dfa9-Fpyl)
垢版 |
2019/05/28(火) 07:44:27.33ID:qfX7VqbU0
>>401-402
ありがとうございます。
たしかに「〜しなければならない」と書かれると守らないより、守った方が色々トラブルなどにならないかもしれないので、
できるだけ遵守したいと思います。
0405デフォルトの名無しさん (ワッチョイ 6aa9-yed5)
垢版 |
2019/06/02(日) 05:20:27.00ID:+gCp7rkB0
ファイルの読み書きの練習でカウンターを始めたのですが、とりあえずロック無しやエラー分岐無しでも上手く動かず
var_dumpなる便利なものがあるので使ったところ、
string(3) "1 " string(3) "1 " あなたは1 人目のお客様です、 と出るようで
文字列で読んでいるため ++が効かないようです。

ただ、$count = $count = 1;とすると
string(3) "1 "
Notice: A non well formed numeric value encountered in c:\********\counter\index.php on line 7
int(2) あなたは2人目のお客様です
とファイルには1を足されて書き込めるのですが、$count++; を使って動くようにするためにはどうすればいいでしょうか。

<?php
$counter_file = "count.dat";
$counter_length = 5;
$fp = fopen($counter_file, "r+" );
$count = fgets($fp, $counter_length);
var_dump($count);
$count++;
var_dump($count);
rewind($fp);
fputs($fp, $count);
fclose($fp);
echo 'あなたは'.$count.'人目のお客様です';
?>
0406405 (ワッチョイ 6aa9-yed5)
垢版 |
2019/06/02(日) 06:57:52.85ID:+gCp7rkB0
×:ただ、$count = $count = 1;とすると
○:ただ、$count = $count + 1;とすると

です、すいません。
0408デフォルトの名無しさん (ワッチョイ 66ca-4mik)
垢版 |
2019/06/02(日) 22:38:21.40ID:8A/taE5v0
>>405
string(3) ってのは長さ 3 の文字列ということを示してるから、カウンタファイルにカウント値に続いてスペースとか改行コードがくっついてるんだろうね。
fgets した値を trim すればいいんじゃないかな。
文字列変数を数値としてそのまま計算することは可能だから、intval は必須ではない。
あと fgets や fputs じゃなく fread と fwrite を使ってはいかが。
0409デフォルトの名無しさん (ワッチョイ 731a-yJVk)
垢版 |
2019/06/03(月) 00:23:29.48ID:6fgKmexV0
PHPにおける連想配列はキーが文字列の場合を指すのでしょうか?

$yasai = [1 => 'キャベツ', 'にんじん', 'レタス', 'トマト'];

これはキーが1から始まる整数ですが、
プログラマが指定しているので連想配列ですか?
0410デフォルトの名無しさん (ワッチョイ 6aa9-yed5)
垢版 |
2019/06/03(月) 01:48:26.16ID:AHqJ7vTG0
>>408
なんとなく使い出したatomの仕様でした。
datファイルを1バイトの文字だけ書いて上書き保存すると0A0Dの文字コードが足されていました・・・
string(3)というのが不思議だったのですが、自分で1バイトなのになぜ?と思い込みが強く気付くのが遅れてしまいました。

fread, fwriteというのがあるのですね。
検索すると色々出てきたりするのですが、どれも正しいものと思っていたのですが、
時代的に推奨されない関数などがあるようで、そのあたりの見極めが良くなりたいです。

>>407
excelの関数でたくさん入れ子になったものを見たことがあります、こんな感じでまとめられるのですね。
0411デフォルトの名無しさん (ワッチョイ 66ca-4mik)
垢版 |
2019/06/03(月) 09:41:17.43ID:3s7VSFTB0
>>410
php では fputs と fwrite は全く一緒。
C なんかだと文字列長をサイズなり終端文字なりで示す必要があるので、その示し方の違いで関数が別れてる。
php の変数は文字列の長さを変数自体が知っているから、fputs と fwrite に違いを付けようがない。

fgets については、改行かファイル終端まで、または指定サイズに達するまで読み込むが、fread は改行で読み取りをやめない点が違う。
対象のファイルが改行区切りのテキストファイルを読む場合は fgets が便利に使えることも多い。
でも今回のカウンタファイルはカウント値がひとつ書いてあるだけのファイルだから fgets でも fread でも表向きの結果は一緒だけど、
それでも fgets は改行を探しながら読み取る分少し遅いことが予想される。
そもそも fgets を使う場面では、そのファイルが改行で区切られていることを暗に示しているので、今回の使用を表すコードとしては適切と言えない。
0414デフォルトの名無しさん (ワッチョイ 6aa9-yed5)
垢版 |
2019/06/05(水) 02:56:36.81ID:a7gcDC7N0
遅くなってすいません。
カウンターのデータとしてあるべき姿ではありませんが、複数行に数字を書いたファイルを
fgetとfreadを使って読むと、fgetは改行付きの1行、freadはすべての数字と改行を読みましたが、
意外と後者でも1つ目の数字だけをインクリメントして書き戻しました。

最終的にはLAMP環境でDBとの読み書きを行いたいのですが、
やはりアプリケーションのログとかをディレクトリ内で追記することを考えると
ファイルの読み書きコマンドは必須ですよね。
0415デフォルトの名無しさん (スプッッ Sddb-Gzfa)
垢版 |
2019/06/09(日) 12:58:24.47ID:FDYkpc7vd
オススメな本ある?
0416デフォルトの名無しさん (ワッチョイ 768c-EjMK)
垢版 |
2019/06/15(土) 23:50:27.88ID:6CnMECf20
データベースに書き込みコードを作ったんだけどどうしてもカラムがカラムとして認識されなくてエラーになるんだけどなぜか教えてくれ
$sql = "INSERT INTO comments(
number, name, time, comment←ここ
) VALUES (
'', '$myname', '$time', '$comment'
)";
0419デフォルトの名無しさん (ワッチョイ 768c-EjMK)
垢版 |
2019/06/16(日) 00:46:03.82ID:mnCyhttK0
`number`
`name`
`time`
`comment`
0422デフォルトの名無しさん (ワッチョイ 768c-EjMK)
垢版 |
2019/06/16(日) 01:16:21.26ID:mnCyhttK0
>>416
解決しました、このコードの前の変数代入のスペルミスでした、お騒がせしました
0424デフォルトの名無しさん (ワッチョイ 9a2c-oZrO)
垢版 |
2019/06/16(日) 01:43:15.14ID:z9IiVZ7F0
自分で、SQL 文を組み立てて送信するのは、
SQLインジェクションもあり、お勧めできない!

フレームワークには、O/R マッパーが付いている

Ruby on Rails を知っているなら、CakePHP も出来る。
CakePHPは、Rails のコピーだから!

掌田津耶乃が、CakePHPの本も書いてる。
彼は、ほとんどのフレームワーク・ゲームエンジンの本も書いてる
0425デフォルトの名無しさん (ワッチョイ b6ca-JHSl)
垢版 |
2019/06/17(月) 04:24:41.50ID:uk/AI0sh0
in とか like とか動的な条件式を構成する程度のありふれたことをやるにもおかしなラッパやライブラリを作るハメになるから、
SQLインジェクション対策ごときで有りもののフレームワークに拘る必要なんて全く無い。
0427デフォルトの名無しさん (ワッチョイ b6ca-JHSl)
垢版 |
2019/06/17(月) 08:48:58.25ID:uk/AI0sh0
>>426
だからPDOで充分じゃん。
でもPDOの名前つきプレースホルダは、値を入れる連想配列に余剰な項目があるとエラーになっちゃうのがイケてないんだよな。
いくつかSQLを続けて発行しようと思っても、同じ連想配列の使い回しがやりづらい、というか実質できない。
なんでこんな余計なお世話の仕様にした。
0429デフォルトの名無しさん (アウアウウー Sac7-2qry)
垢版 |
2019/06/18(火) 00:39:27.92ID:90gU7PyPa
PHP7.2をインストールしたサーバから外部サイトを取得しているfile_get_contentsで
SSL routines:ssl3_get_server_certificate:certificate verify failed
というエラーが出たので
ググったところ、サーバのSSL証明書ファイルが古かったりうまく設定できていない時に出るエラーのようでした
ググった先の情報に従って、
opensslをアップデートしてから、php.iniで
openssl.cafile=/etc/ssl/certs/ca-bundle.crt
と設定したのですが現象は変わらず(phpinfoで設定の反映は確認済み)
http://curl.haxx.se/ca/cacert.pem
を取得してそれをopenssl.cafileに設定しても、やはり現象に変化なしでした
しかたなくfile_get_contentsのオプションでverify_peerとverify_peer_nameをfalseにして、
証明書のチェック自体をしないようにしたらエラーは消えましたが、
なぜ証明書ファイルを設定してもエラーになったのかが気になります
どんな原因が考えられるでしょうか?
0430デフォルトの名無しさん (アウアウウー Sac7-2qry)
垢版 |
2019/06/18(火) 01:05:53.87ID:90gU7PyPa
>>429
もしかして読み込み先のサーバに問題があるのでは?
と思ってhttps://yahoo.co.jp/をfile_get_contentsで取得してみたら、
エラーは出ませんでした
そこで読み込み先のサイトをブラウザで表示して、証明書を確認したところ、
有効期間が2019/6/14〜になっていました
つまり、最近証明書を更新したようです
file_get_contentsでは古い証明書を取得しまっている、ということだと思いますが
何故そんなことが起きるのでしょうか?
どうすれば解決できますか?
0431デフォルトの名無しさん (ワッチョイ 1ab0-bbbA)
垢版 |
2019/06/18(火) 06:22:32.87ID:3nOE2mBA0
プログラム板にキチガイ降臨中!botに一晩も反応する異常さ
一般人(学校恩師)に殺害予告をしているのでスレ建て通報してください。
https://mevius.5ch.net/test/read.cgi/tech/1559872586/

142 名前:a4 ◆700L1Efzuv 投稿日:2019/06/18(火) 05:29:55 ID://qVkzO
>>141
名古屋の人な 俺ね、君の問題を大橋先生と混ぜないことにする。つまりね、
片桐孝洋のことをボコろうと思う。普通に顎の骨を折る。これくらいで警察来るか?
一般市民とかさ、普通にさ、俺らの秘密なんだけどさ、日本人なんて復活ねーから。
0432デフォルトの名無しさん (ワッチョイ 5b0f-hwLH)
垢版 |
2019/06/18(火) 17:22:41.03ID:HA3mKCJN0
ファイルの書き出し処理で分からないことがあったので質問します

Windowsでファイル名に使えない文字がありますよね
日本語だと、全角文字に置き換えるということができますが
海外だと、どんな方法で対処してるのでしょうか?

英語というか、1バイト文字でどう回避してるのか、よく分からないです
全部 _(アンダースコア)で置き換えとか?
0435デフォルトの名無しさん (ワッチョイ caa9-Eaty)
垢版 |
2019/07/03(水) 08:09:50.05ID:NH/ScEyz0
単一のphpで、1つのinput textからポストしてデータベースに接続してselectしてレコードを
input textの下に表示する、というコードを書いて動いたのは嬉しいのですが、

functionは使っていません。
いずれclassの中にfunctionを入れたいのですが、私のphp部分なら30行ぐらいのコードでもそういう
ことができるのでしょうか?

人のコードで、functionばかりあって、最後に
main();

みたいなのがありますが、それが行き着く先の形なのでしょうか。
0436デフォルトの名無しさん (ワッチョイ caa9-Eaty)
垢版 |
2019/07/03(水) 08:11:47.66ID:NH/ScEyz0
補足です。
sqlインジェクションとかXSSとかの対策も知らないのでそのままではダメですが、
自分なりの堅牢なfunctionを作って、それを組み合わせるというのがphpプログラマーなのでしょうか。
0438デフォルトの名無しさん (ワッチョイ caa9-Eaty)
垢版 |
2019/07/03(水) 18:55:14.56ID:NH/ScEyz0
>>437
ありとうございます。デザインパターンで検索するとちょっと内容が濃すぎました。
オンラインの学習でclassやextendを使った内容は一通りやってみたのですが、

既存のfunction無しのコードを、classやfunctionありのコードに直すのではなくて、
始めから書き直すことになりそうですね。
0439デフォルトの名無しさん (ワッチョイ 6aa7-NNfO)
垢版 |
2019/07/03(水) 19:37:45.44ID:G8Yh9hPC0
>>438
「PHP リファクタリング」で検索
リファクタリングして、デザインパターンに寄せるのがいい設計のひとつ。

30行ぐらいのコードでも機能が3つあれば、10行ずつ3つに分けてfunctionにしてもいい。
そして、それをまとめて1つのclassにしてもいい。
試しにfunction化して動かしてみて、それが出来たら更にclass化して動かしてみればいいよ。
思ったより簡単に動くから。
0440デフォルトの名無しさん (ワッチョイ caa9-Eaty)
垢版 |
2019/07/03(水) 19:50:35.07ID:NH/ScEyz0
>>439
>試しにfunction化して動かしてみて

そうですね、恐らく自分の書いているのはifとメソッドと呼ばれるものを上から書いているだけなので、
function化をやってみたいと思います。
リファクタリングの単語ありがとうございます、今ではデザインパターンよりこっちのほうが
合っていると思います。
0441デフォルトの名無しさん (ワッチョイ 2d23-hmOa)
垢版 |
2019/07/03(水) 19:54:06.45ID:5B/jgT3f0
PhpOffice¥PhpSpreadsheetの質問です

$sheet->getCell()->getValue()メソッドでセルの値をとっているのですが
エクセル側でセルの内容が装飾されているとき
プレーンテキストではなく
object(PhpOffice¥PhpSpreadsheet¥RichText¥RichText)
として返ってきます

これをサラっとプレーンテキストにするにはどうしたらよいでしょか?
0443デフォルトの名無しさん (アウアウカー Sac7-Fupf)
垢版 |
2019/07/04(木) 12:55:34.62ID:MdrCWp24a
ありがとー
0445デフォルトの名無しさん (ワッチョイ ffa9-mVFY)
垢版 |
2019/07/08(月) 08:03:24.67ID:lXAN+HQL0
DB板が過疎化しているので、こちらで聞きたいのですが、
phpのページにアクセスするとカウンターの値をデータベースから取得して、
1足して表示して、その値をupdateしたいのですが、

DBのcounterテーブルにはcountカラムだけあり、値を入れています。
MariaDB [web]> select * from web.counter;
+-------+
| count |
+-------+
| 1 |
+-------+

カウンターを上げようとするとエラーが出るのですが、
MariaDB [web]> updete web.counter set count=2;
ERROR 1064 (42000): You have an error in your SQL syntax;

2カラムにして、name=count, value=1みたいなテーブルを作って
whereを使ってupdateするのが正しいやり方なのでしょうか?
1カラムではそもそも無理があるのでしょうか。
0451デフォルトの名無しさん (ワッチョイ 335f-4hHn)
垢版 |
2019/07/09(火) 00:40:05.87ID:U2Ej2IFy0
unixタイムスタンプで
mktime(0,0,0,1,2,1970);
1970年1月2日0時0分0秒(1日後)
を実行すると82800秒と1日の秒数より1時間少ない結果が出るので
次に1970年1月3日0時0分0秒(2日後)を試し
169200と23時間+1日という結果が出ました
これはどういう仕様なのでしょうか?
何か見落としてますか?
0454デフォルトの名無しさん (ササクッテロル Sp87-TcNW)
垢版 |
2019/07/09(火) 10:23:45.55ID:JD/7/fU5p
セミコロンを文字列としてechoしようとするとエラーが出るので、エスケープしようと思うのですがバックスラッシュが効きません
どうしたらいいでしょうか?
0455デフォルトの名無しさん (ワッチョイ 2301-TcNW)
垢版 |
2019/07/09(火) 19:14:00.22ID:EvaqxK5+0
>>454ですがくだらなすぎました
phpのバージョン上げたら解決しました
0457デフォルトの名無しさん (ワッチョイ 6fde-R/Fd)
垢版 |
2019/07/10(水) 02:09:59.48ID:DphKO2vD0
mb_send_mailでメール送信すると、特定のアドレスに送信するとuser unkownになって送れない
これってsmtpの設定をしなくて直接受信サーバーを叩きにいってしまうからダメなのかな
phpmailerとかにすれば解決すると思う?
0458デフォルトの名無しさん (ワッチョイ b6ba-YtL5)
垢版 |
2019/07/11(木) 17:07:45.46ID:Jm+T6ApQ0
ウインドウズ10で
include_once "C:/folder1/folder2/mytest.php";
みたいな絶対パス指定してphpファイルを読み込んで実行する事は出来ないの?
0459デフォルトの名無しさん (ワッチョイ 9a2c-i8Xk)
垢版 |
2019/07/11(木) 19:21:54.84ID:xCkJ5LaR0
ローカルにあるHTML ファイルを、ブラウザで読み込める
file:///C:/Users/Owner/Documents/index.html

ローカルにあるHTML ファイル内で、ローカルの相対パスを読み込める
<script type="text/javascript" src="../jQuery/jquery-3.1.0.js"></script>
<script src="test.js"></script>

ローカルにあるHTML ファイル内で、ローカルにある画像も読み込める
<img src="C:/Users/Owner/Pictures/a.png">
<img src="C:/Users/Owner/Pictures/b.jpg">

ローカルにあるRuby ファイル内で、ローカルの相対パスを読み込める
require_relative "../my_utility.rb"
0463デフォルトの名無しさん (ワッチョイ b6ba-YtL5)
垢版 |
2019/07/11(木) 20:36:27.66ID:Jm+T6ApQ0
>>459
458の答えを教エロ下さい。
0465デフォルトの名無しさん (ワッチョイ b6ba-YtL5)
垢版 |
2019/07/11(木) 21:07:42.46ID:Jm+T6ApQ0
>>464
include_onceで使えますか?
0466蟻人間 ◆T6xkBnTXz7B0 (ワッチョイ 0b01-Frt+)
垢版 |
2019/07/11(木) 21:13:16.43ID:dVCZh9+R0
>>465
試してみなさい。危険なコードでなければ簡単には壊れないから。

危険なコードというのはファイルを削除したりシステム設定などを書き換えたりするコード。
0467デフォルトの名無しさん (ワッチョイ b6ba-YtL5)
垢版 |
2019/07/11(木) 21:16:19.19ID:Jm+T6ApQ0
>>466
試したが出来ないんだよね。
0469デフォルトの名無しさん (ワッチョイ b6ba-YtL5)
垢版 |
2019/07/11(木) 21:24:45.41ID:Jm+T6ApQ0
分からん
0470蟻人間 ◆T6xkBnTXz7B0 (ワッチョイ 0b01-Frt+)
垢版 |
2019/07/11(木) 21:26:20.82ID:dVCZh9+R0
PHPがローカルにないなら、サーバー側のPHPからローカルファイルにはアクセスできない。アップロードするかなんかしないといけないよ。
0471デフォルトの名無しさん (ワッチョイ b6ba-YtL5)
垢版 |
2019/07/11(木) 21:27:35.31ID:Jm+T6ApQ0
>>470
PHPはローカルにある
0475デフォルトの名無しさん (ワッチョイ b6ba-YtL5)
垢版 |
2019/07/12(金) 03:54:57.52ID:B1okfPjL0
>>473
Win10にインストールしたFlywheelのPHPなんだけど、
それが絶対パスでファイルが読めない原因かな?
0476デフォルトの名無しさん (ワッチョイ 9aa9-TPoM)
垢版 |
2019/07/12(金) 19:38:28.33ID:XTqC7rHb0
phpを始めて、50行程度で色々作ったりしているのですが、
それが合っているかどうか、無駄や脆弱性があったりと心配になるので、
webサービスでコードを貼り付けて、相談してもらうようなサービスはあるのでしょうか。

数行であればスレの皆さんにご指摘を受けるのは嬉しいのですが
多い行を貼り付けることもスレ汚しにもなるので、何か良い方法はありませんか?
0479デフォルトの名無しさん (ワッチョイ db0f-7P2I)
垢版 |
2019/07/15(月) 19:56:58.11ID:rFkphOJd0
ファイル名にUnicode制御文字らしきものが入ってしまったのですが
それを削除する方法を教えてください

具体的に何が入っているのかを調べる方法もあれば教えて欲しいです

https://i.imgur.com/V7xutMK.png

twitter のツイートをコピペしたものをファイル名にする処理をしたときに
そうなりました
上の画像で言うと、@の前にある文字です
おそらく、[RLO]だと思いますが、これを取り除く方法が分かりません
0482デフォルトの名無しさん (ワッチョイ db0f-7P2I)
垢版 |
2019/07/15(月) 21:55:18.87ID:rFkphOJd0
>>479
自己解決

とりあえず、これでなんとかなりました

$str = preg_replace('/[\p{Cc}\p{Cf}\p{Zs}]/u', '', $str);

このへん、参考にしました

U+001DなどUnicode(ASCII,C0)制御文字がHeaderに含まれるとaborting requestするので除去する - Qiita
https://qiita.com/khsk/items/3c98174bc6cb9b596e61

PHP: Unicode 文字プロパティ - Manual
https://www.php.net/manual/ja/regexp.reference.unicode.php
0483デフォルトの名無しさん (ワッチョイ 237c-XeHW)
垢版 |
2019/07/16(火) 23:25:57.59ID:6A7bTSc60
メーラーを作ってる人が集まってるスレはありますか?
0484デフォルトの名無しさん (ワッチョイ 75f1-xVkp)
垢版 |
2019/08/05(月) 15:18:25.28ID:RvbOnux20
ものすごく基本的な質問かもしれません。

本物のサーバで実験したいのですが
PHPが使えるレンタルサーバで安いところはどこですか?
将来的にはなんらかの形でネット商売するかもしれません。
0486デフォルトの名無しさん (ワッチョイ cb63-0ks1)
垢版 |
2019/08/05(月) 18:04:13.97ID:9k1HrfSt0
まず目の前にあるPCに仮想環境を入れて
適当なLinuxをインストールしてサーバーにしてみ
それなら好き勝手にいじれるし誰にも迷惑かけないしタダだ
そっから始めてみたらどう?
0490デフォルトの名無しさん (ワッチョイ 7da7-aqzO)
垢版 |
2019/08/09(金) 14:28:42.09ID:NFhVNRcF0
プラットフォームによっては使えない機能や関数もあるけど
使う(必要な)パッケージが揃ってればOSによる差はだいたい設定でどうにかなる
意図的にプログラム側でOSに依存するコードやOSを制限するコード書いてなければ
CentOSのバージョンアップぐらいならそのまま使えるんじゃないの
0491デフォルトの名無しさん (ワッチョイ cdba-atfx)
垢版 |
2019/08/22(木) 21:17:14.37ID:A5RZDSc30
php内でexecを使って外部コマンドを実行させたいです

ローカルでは成功しますが、
webブラウザだとexecでエラー126(コマンド実行不可能)が返ってきます
やはりサーバー側の問題なのでしょうか?
Xサーバーを使っているんですが、どこをいじればいいのか分からなくて・・
0492デフォルトの名無しさん (ワッチョイ 7aad-HwVO)
垢版 |
2019/08/22(木) 23:13:57.14ID:erkZnaOI0
>>491
せめてなにを実行してるくらい書かないと誰にも伝わらんぞ
パーミッション関係だと思うけども
0495デフォルトの名無しさん (ワッチョイ 65ca-ak5c)
垢版 |
2019/08/22(木) 23:47:49.02ID:cTorNwQs0
Xサーバって X window のじゃなくてレンタルサーバのことなのか。
それは置いといて、exec エラー126 で検索すると答えっぽい情報があるよ。
実行ファイル名をフルパスで書けばいいとか。
試してないけど。
0497デフォルトの名無しさん (ワッチョイ cdba-atfx)
垢版 |
2019/08/22(木) 23:59:05.94ID:A5RZDSc30
>>494
いえ個人が作ったexeファイルです

>>495
それも
echo __FILE__ ;
でフルパス確認して、フルパス表記で実行したんですがエラー126のままで・・・

フルパスって
exec ("/home/hogehoge/xxxxx.com/public_html/hogehoge2/xxx.exe", $output, $error);
var_dump($output);
var_dump($error);
こういう表記でいいんですよね?
0503デフォルトの名無しさん (ワッチョイ cdba-sMv4)
垢版 |
2019/08/23(金) 11:24:49.44ID:yZ+ijObJ0
一般的に、鯖側でexec可能になると悪意のないプログラムでもミスで鯖全体を殺してしまうリスクがあるので
鯖屋ではexecは認められない

はずよ
今時は知らんけど
0504デフォルトの名無しさん (ワッチョイ cdba-atfx)
垢版 |
2019/08/23(金) 14:13:06.13ID:R6Gtd6JR0
最後に
Unixで実行可能なファイルで、フルパスで、パーミッションの実行権限付与したら
いけました!
4日間悩んでたのでとても嬉しいです
どうもありがとうございました!!

>>502
複雑な数値計算をするプログラムです

>>503
そうなんですね今後使えなくなったら困るな〜
0506デフォルトの名無しさん (ササクッテロラ Sp5d-x+Pl)
垢版 |
2019/08/29(木) 08:48:42.39ID:3m6UWwTfp
phpとかプログラム言語じゃない、ど素人向け
0508デフォルトの名無しさん (ワッチョイ 9b93-PkBi)
垢版 |
2019/08/31(土) 00:15:45.15ID:OzmC0qXX0
って玄人気取った素人が言ってるけど実際プログラミング言語だよ
0526デフォルトの名無しさん (ワッチョイ 9b38-cRT5)
垢版 |
2019/09/04(水) 21:58:33.15ID:8xuaC0PC0
初学者です
たとえば「ブログ」ページの「php」カテゴリーの「2」ページ目を表示したい場合、
URL(略~index.php? content=blog &category=php &page=2)
のように、GETメソッドでリンクから送った変数を取得していく方法でよいのでしょうか?
一応表示は出来るのですが、条件をつけるたびにどんどんURLが長くなっていくのが気になって
何か他にもっとスマートな方法があったりします……?
0527デフォルトの名無しさん (ワッチョイ 593c-cRT5)
垢版 |
2019/09/04(水) 23:00:10.33ID:LjVvm2Gp0
クエリじゃなくてパス(例: /blog/php/2)にすればいいんじゃない
あと普通はblogは独立したアプリになると思うから、/index.php?content=blog よりは /blog.php or /blog/index.php の方が自然
0528デフォルトの名無しさん (ワッチョイ 8638-kyym)
垢版 |
2019/09/05(木) 21:12:53.07ID:NNGkGktH0
ありがとうございます
むむむ、WordPress的にコンテンツブロックを入れ替えられるようにするべきなのかと思ったのですが、
やっぱりblog.phpで作る方が自然なんですね
実は独立したアプリという意味がよく分かっていないので、調べてみます
0530デフォルトの名無しさん (ワッチョイ dd5f-AFg9)
垢版 |
2019/09/09(月) 04:10:30.20ID:CJs/c5Zv0
絶対にやるなと書いてあったのですが

unset関数でグローバル変数のSESSION自体を消してしまうとどうなるんですか?unset($_SESSION←こんな感じで

そのサーバー上では二度とセッションを使えなくなるとか?取り返しのつかないことになるのですか?
0532デフォルトの名無しさん (ワッチョイ 2ea7-OrRa)
垢版 |
2019/09/09(月) 14:19:05.34ID:+lHTuL5H0
>>530
少なくとも自分の環境じゃなにもおきない
$_SESSION自体をunsetしたあとも普通に登録できるし
別セッションで変数登録したあとunsetしても別セッションには影響ないし
最悪おかしくなってもサーバ再起動すれば問題ないだろう
まあやるなって言われてることはやらないほうがいいんじゃね
ソースコード読めば何が問題なのかわかるかもしれんが大変だしね
0533デフォルトの名無しさん (ワッチョイ 2ea7-BGeg)
垢版 |
2019/09/09(月) 19:26:46.12ID:TVbaw9og0
>>530
unset($_SESSION)とか全部消そうとするとセッション変数自体が消えて使えなくなるからダメで unset($_SESSION['hope'])とかやるのはok
セッション全部消すならsession_destroyを使う
ログオフする処理に使っているよ
0542537 (ワッチョイ 9fca-wSIV)
垢版 |
2019/09/12(木) 09:37:33.95ID:qG3+qr6E0
あー質問の意味を取り違えてた
今ブラウザ上で行ってる処理をサーバサイドでやらせるってことか。
例えばオセロのコンピュータ側の処理をブラウザ上のJSじゃなくてサーバサイドでやるみたいな?
0544デフォルトの名無しさん (ワッチョイ ff8c-3oQN)
垢版 |
2019/09/17(火) 13:48:19.74ID:NULA/kfp0
laravelとDBが分かれてる時ってどうやってアクセスしてるの?URL設定なんかあって接続してるのか?
0546デフォルトの名無しさん (ワッチョイ a95f-e9fJ)
垢版 |
2019/10/08(火) 06:33:05.95ID:M4B81Xan0
$name="山田";

変数$nameに山田と入れ


PDOでデーターベースに接続し


dbh->query('SELECT * FROM table名 WHERE name="$name"');

このようなSQL文を書いたところ変数の$nameがそのまま文字列として扱われて何度やってもデータを取り出せなかったので、
なんとなくダブルクオテーションとシングルクオテーションを入れ替えて

dbh->query("SELECT * FROM table名 WHERE name='$name'");

このようにしたところ上手くいったのですがどういう事なのか分からず、この現象を調べるのに、どう検索していいのか分からなかったので質問させてください

本にはコードを書くときはシングルでもダブルでも好きな方を使ってもいいと書いてあったのですが
SQL文の中では何か決まりがあるのでしょうか?

よろしくお願いします
0547デフォルトの名無しさん (ワッチョイ eaa7-0RA9)
垢版 |
2019/10/08(火) 09:23:10.71ID:ICRAu8JP0
PHPとSQLが混ざってるからごっちゃなんだろう

どっちでもいいってのはSQLの方に対して言ってるんでしょ
変数展開後に
WHERE name='山田'
WHERE name="山田"
となってる状態のことをどっちでもいいって言ってるだけだと思う

んでPHPの変数が展開されるのはダブルのほう
echo "$name"; //変数が展開されるので山田が表示される
echo '$name'; //変数は展開されないので$nameが表示される

シングルで同じことをする場合
"略 WHERE name='" . $name . "'";
のように一回抜けて$nameを連結しないといけない

だいたいPHPの本の最初のほうに書いてることだと思うがね
忘れちまったのかい
0549デフォルトの名無しさん (ワッチョイ 6661-uMLw)
垢版 |
2019/10/08(火) 13:37:44.62ID:Xix6Aq9n0
文字列に変数を展開や連結してqueryはSQLインジェクションのおそれもあるのでprepareとexecute使え
$sth = $dbh->prepare('SELECT * FROM table WHERE name=:name');
$sth->execute([':name' => $name]);
0552デフォルトの名無しさん (ワッチョイ 5701-0MPl)
垢版 |
2019/10/12(土) 23:40:21.29ID:TjciH4iB0
親クラスのメソッド内で、protectedコンストラクタを持つサブクラスを生成する場合、
new static()ではなく、クラス名を直接指定してnew SubClass()でも生成出来るのは正常な仕様ですか?
この辺調べても、なかなか出てこないので・・
0554デフォルトの名無しさん (ワッチョイ 7705-4AsH)
垢版 |
2019/10/16(水) 21:27:10.98ID:3M2x+3910
素朴な疑問、PHPファイルをダウンロードしてきて、コピペでサーバーディレクトリに貼り付けると500エラーになるのってどういう原理?

仮想サーバーで動かしてる方にコピペは動くんだが、ネットのサーバーってFTPとか挟まないともしかしてアップロード出来ない仕組み?
レンタルサーバーで借りてる方はFTP通してアップロードしてて、そんな事起きた事ないから分からん
0567デフォルトの名無しさん (オッペケ Sr11-wiCk)
垢版 |
2019/11/14(木) 11:52:42.61ID:UbsUbcmDr
PHPを勉強しますが、いわゆる駄目なコード(メンテ不能とか他人が読めないとか)を書かないようにするための方法がまとめられた書籍とかWebサイトってありますか?
ググって見ましたが、Githubの他人のコードを読むとかとにかくググるとかで、お手本が一箇所にまとめてあるような事例が見つかりません
そもそもプログラミング初心者なのでどういうコードが良くて駄目なのか根拠が無いと理解できないので、Webサイトで調べるのはちょっとハードル高いです
0568デフォルトの名無しさん (ワッチョイ e902-yJHQ)
垢版 |
2019/11/14(木) 12:34:11.76ID:yaNNoKNo0
最初から完璧を目指してると前に進まない上に身にも付かないんで
気にせずガンガン組んで経験値上げた方がいいよ

経験値上げる=ダメコードが分かってくる
0570デフォルトの名無しさん (ワッチョイ d163-iGNt)
垢版 |
2019/11/14(木) 12:49:12.10ID:lyAVwglk0
読みやすいコード手法やアルゴリズムを勉強したいなら、
もっとシンプルな、例えばC言語や、Javaで勉強しtが方が良いと思う
PHPはどちらかと言うと実用本位で動けば何でもありの書き方してしまうから
人によって書き方も違うし、手本にして学ぶというのには向かない気がする
0571デフォルトの名無しさん (ワッチョイ e189-wiCk)
垢版 |
2019/11/14(木) 14:29:48.81ID:YV+wn0qT0
>>567
初心者にあれこれ言っても仕方ないと思うので
Beauty Is in Simplicity code
という言葉を送る

日本語訳は「美はシンプルさに宿る」や「プログラマが知るべき97のこと」でググるといい
0574デフォルトの名無しさん (オッペケ Sr11-wiCk)
垢版 |
2019/11/15(金) 17:40:16.12ID:3geqpL2yr
>>568-573
初心者のうちから変な癖をつけないようにしたと思いましたが
あれこれ手を広げないほうがいいかなとも思っていました
PHP自体が可読性より生産性を重視してるのなら
初心者のうちは経験値を積んで生産性をあげて
次のステップとしてリーダブルコードで読みやすさなどを学ぶことにします
みなさん回答ありがとうございました
0575デフォルトの名無しさん (ブーイモ MM76-Xz/Q)
垢版 |
2019/11/15(金) 17:49:19.08ID:oPXVgqk1M
実際に動いているPHPって
HTMLのソースみたいにソースコードを見ることは、できないのですか?
0577デフォルトの名無しさん (ブーイモ MM76-Xz/Q)
垢版 |
2019/11/15(金) 18:01:55.55ID:oPXVgqk1M
PHPのソースは見れるかと聞いておるのだ。
誰か分かる者はいないのか?
この馬鹿モンが!
0580デフォルトの名無しさん (ブーイモ MMb2-+PZ0)
垢版 |
2019/12/02(月) 18:02:15.74ID:uWhstvBwM
初心者です。
PHP7.2にてfile_get_contentsにてHTMLを
全取得するテストをしているのですが、
youtube、yahoo.co.jpのトップページは
全取得できますが、
Tver.jpなどの一部サイトでは、HTMLの一部が取得できないのですが、
この違いが何なのか分からず。。
コンテキストオプションはchromeのデベロッパーツールと同内容をいずれも使用しています。

一部しか取得できないだけで、errorが返ってきているわけではありません。
このようなケースで想定される原因は何か、
お教え下さい。
0581デフォルトの名無しさん (ワッチョイ 36a0-o7DB)
垢版 |
2019/12/02(月) 18:12:49.06ID:OjDe9qis0
その関数フロントで生成されるコードは取得できなかった筈なんでそれじゃね
仮想端末挟んで生成してもらってからソース取得の処理作るかで悩んだ覚えある
結局pythonとかJavaScriptにクローラー向きのAPI一杯あるからそっちで操作した方がラクって結論に落ち着いたけど
0582デフォルトの名無しさん (ワッチョイ 5ea7-8b9h)
垢版 |
2019/12/02(月) 19:19:41.96ID:VMZvMN3R0
解決したから原因までは特定しなかったけど
fsockopenだとうまくいくけど
file_get_contentsじゃうまくいかない
ということはあったな
同じcontext使ってるんだけどね
cURL使うと多分うまくいくよ
0583デフォルトの名無しさん (ワッチョイ d9c9-+PZ0)
垢版 |
2019/12/03(火) 23:22:42.46ID:8Kx0IsVg0
>>581,582
回答ありがとうございます。
なるほど、動的なコンテンツはこの関数では取得できないのですね。もう少し構造について調べてみます。
curlや他の言語も検討してみます。
0584デフォルトの名無しさん (ワッチョイ 922c-Ql8R)
垢版 |
2019/12/04(水) 01:38:24.44ID:9qyS2PwK0
例えば、5ch みたいに最初に、空のHTML を送ってきてから、
その後、Ajax で内容をサーバーから取得するようなページでは、
普通のクローラーでは、確実に取得できない

そういう場合は、Ruby などで、Selenium WebDriver を使って、
人がやるのと同じように、ブラウザを操作すれば取得できる
0591デフォルトの名無しさん (ワッチョイ 1261-luhV)
垢版 |
2019/12/04(水) 13:46:24.53ID:I65RuVdL0
python自体がjavascript動かしてスクレイピングできるわけじゃないよ
たいていwebdriverでheadless chrome動かしてそれを取るだけ
phpにもwebdriverはあるので同様のことはできる
0592デフォルトの名無しさん (ワッチョイ c508-o7DB)
垢版 |
2019/12/04(水) 16:23:36.96ID:ynT0rzJO0
>>589
Python Seleniumでググってみ
すげぇ簡単だぞ
原理的には>>591の書いてる通りだが手軽さはPHPの比じゃない

>>588
だよな
言語なんか手段にすぎないのだから目的に応じて生産性の高い手段を選べってことだ
1つの言語に齧りついてるのは能無しの証拠
0593デフォルトの名無しさん (ワッチョイ 36a0-o7DB)
垢版 |
2019/12/04(水) 16:56:56.54ID:M0bOyCLn0
>>592
能無しっていうか
まぁこだわりがあるなら別にそれでもいいとは思うよ
内部動作のよく分からん機械に依存するのが不安だって気持ちも分かるし
彫刻刀一本であらゆるものを作りたいって人を否定する気は無い

電ノコやドリルが入った工具箱が横に置いてあるなら俺はそっち使うけど
0595デフォルトの名無しさん (ワッチョイ 4b5f-q31q)
垢版 |
2019/12/12(木) 00:04:39.58ID:8N8BhmJA0
phpStormでアロー演算子使って無名関数宣言すると警告出るのどうしてる?
0596デフォルトの名無しさん (ワッチョイ e2a9-kui+)
垢版 |
2019/12/16(月) 00:10:56.73ID:eA/7D1/t0
古い環境から新しい環境に、古いプログラムを移行したいのですが、

古い環境でphpinfoでtimezoneがAsia/Tokyoになっているのに
php.iniや、php.d/*にはその項目がありません。

# php -i | grep timezone
Default timezone => Asia/Tokyo
date.timezone => no value => no value

# grep Tokyo /etc/php.ini
#
# grep Tokyo /etc/php.d/*
#
あと、ログにエラーが出ないので調べると
# php -i | grep error_report
error_reporting => 0 => 0

# grep error_report /etc/php.ini
error_reporting = E_ALL & E_STRICT
と矛盾した感じになっていますが、どこにその設定が書かれているか探す方法はあるのでしょうか?
0598デフォルトの名無しさん (ワッチョイ e2a9-kui+)
垢版 |
2019/12/16(月) 00:23:45.45ID:eA/7D1/t0
申し訳無いです。
CentOS5 の PHP 5.1.6 (cli)です。

新しい環境はCentoOS7のbaseにある5.4にて動くか試しているのですが、たくさんnoticeやwarningが出ていますが、
とりあえずこの古い環境でTokyoがどこから来ているか不思議な感じです。
0602デフォルトの名無しさん (ワッチョイ e2a9-kui+)
垢版 |
2019/12/16(月) 01:07:00.48ID:eA/7D1/t0
>>599
なんと環境変数から取っていたのですか・・・ありがとうございます。
5.1.6@CentOS5で
# grep Tokyo /etc/*/*
/etc/sysconfig/clock:ZONE="Asia/Tokyo"
となるとここから取っていたことになりそうです。
つまりは、この古い環境を作った人は、timezoneの項目をコメントアウトして編集していなかったのですね。

あと、ここがわからないのですが、
5.1.6における php.iniのerror_reporting のデフォルト値は コメントアウトして
error_reporting = E_ALL & E_STRICT とあるのですが、

あるプログラムで、新環境5.4では出てくるPHP Notice: Undefined variable:が、この5.1.6で出ないのは
# php -i | grep error_report
error_reporting => 0 => 0
この「0」が効いているからでしょうか? php.iniの設定がどこかで無効に上書きされていると考えればいいのでしょうか?

>>600-601
はい、新しい環境ではphp.iniに記載します
0603デフォルトの名無しさん (ワッチョイ e2da-6dnz)
垢版 |
2019/12/16(月) 10:08:56.19ID:ATUYW4cO0
date()よりgmdate()+9*60*60の方が速い
0605デフォルトの名無しさん (ワッチョイ a201-VrMI)
垢版 |
2019/12/16(月) 13:57:00.03ID:+KWK+mzK0
>>602
>この「0」が効いているからでしょうか? php.iniの設定がどこかで無効に上書きされていると考えればいいのでしょうか?

デフォルトはNULLなのでどっかで設定してるんじゃないのかな

$ php -i | grep '¥.ini'
で他に読み込んでる設定がないか確認するといいと思う
0608デフォルトの名無しさん (スプッッ Sd22-q31q)
垢版 |
2019/12/18(水) 01:07:49.35ID:qvYpa8W8d
74のpreloadとffiめっちゃいいな。
いいんだけど、ffi現場で使ってる人いる?
0611デフォルトの名無しさん (ワッチョイ 775f-B9Tc)
垢版 |
2019/12/19(木) 00:22:50.43ID:F9c8Ivhx0
>>609
ffi、とても便利だけど、phpの現場でなんでphpかって、その言語で書く事が求められているからであってffi使うならphp使わないよねーっていうそもそも論もあると思う

preloadはプロセス再起動しないといけないからコンテナ向きだよね
0612デフォルトの名無しさん (ワッチョイ ff02-lgca)
垢版 |
2019/12/19(木) 13:14:56.57ID:FXNFzpmL0
<button class="bubbly-button">
<a href="http://coonelnel.net/"; target="_blank" rel="nofollow noopener">素人</a>
</a>に
0616デフォルトの名無しさん (スプッッ Sd3f-B9Tc)
垢版 |
2019/12/19(木) 20:19:58.91ID:e3NBcS5sd
>>613
これをwebページのどこ家に埋め込みたいんだけど、どのファイルに書けばいいのかってこと?
0617デフォルトの名無しさん (ワッチョイ 5701-uI9Z)
垢版 |
2019/12/19(木) 20:31:21.94ID:25wRxCsd0
>>616

612のHTMLに設置してURLつきボタンのクリック数をカウントして ランキング機能を実装する目的なのですが PHPを612のHTMLの何処に設置してしていいか分からず困ってます…
0619デフォルトの名無しさん (ワッチョイ 775f-B9Tc)
垢版 |
2019/12/19(木) 23:07:07.63ID:F9c8Ivhx0
>>617
まず君の環境でphoは動くの?
0620デフォルトの名無しさん (ワッチョイ 775f-B9Tc)
垢版 |
2019/12/19(木) 23:08:20.16ID:F9c8Ivhx0
php
0621デフォルトの名無しさん (ワッチョイ 5701-uI9Z)
垢版 |
2019/12/20(金) 03:02:34.89ID:IBAvNOD/0
>>619
サーバーを借りるので動くと思います
0623デフォルトの名無しさん (ワッチョイ 775f-B9Tc)
垢版 |
2019/12/21(土) 01:48:26.48ID:BiuKyk5n0
>>621
phpが動くのとサーバー借りてるのは同義ではないぞよ。
sshはできるの?
0624デフォルトの名無しさん (ワッチョイ 775f-B9Tc)
垢版 |
2019/12/21(土) 01:50:43.85ID:BiuKyk5n0
>>622
俺も同意。
そもそもffi書ける技術スタックのエンジニア集められてるならphpじゃなくていいよねって
0626デフォルトの名無しさん (ワッチョイ 775f-B9Tc)
垢版 |
2019/12/22(日) 01:04:31.99ID:ngrj6zpx0
>>625
c書けるスキルがあるのにphpの現場にいる人間が幸せになるよってとこなのかな
0628デフォルトの名無しさん (ワッチョイ 775f-B9Tc)
垢版 |
2019/12/23(月) 00:53:27.33ID:2qWBTAwK0
>>626
書くのが必ずしも許されるわけではないから難しいよね。
俺はライブラリ系は全部書き直した。
これじゃメンテナンスできないですーっていう方々を炙り出すために
0629デフォルトの名無しさん (ワッチョイ 9f07-Rp4x)
垢版 |
2019/12/24(火) 17:13:26.50ID:oJYJsXMm0
exec関数でサーバのコマンドを実行できますが、
ソフトウェアをインストールするときなどに表示される
「キーボードのyを押してインストールを進める」
みたいな処理もexecで行うことができるのでしょうか?
もしできる場合、どのように書けばいいか教えて下さい
0630デフォルトの名無しさん (ワッチョイ ff63-prDO)
垢版 |
2019/12/24(火) 17:23:02.72ID:4UlhXCkA0
>>629
バッチで動かすことを想定しているプログラムには
例えば起動オプションに "-y" が用意されてあって
キーボード応答全てにyが打たれたとして動作するものもある
動かしたいプログラム次第だと思うが
こういうものなら動かせるかもしれない

そうで無い場合は、プログラムからの応答を判断しながら
動かさないと、想定出来ない問題が起きかねないのでは
0632デフォルトの名無しさん (ワッチョイ 775f-B9Tc)
垢版 |
2019/12/25(水) 00:49:42.46ID:oMbV4Iar0
>>629
yesかecho yesをpipeで渡す
0633デフォルトの名無しさん (ワッチョイ 9f2c-1ZZR)
垢版 |
2019/12/25(水) 12:42:04.67ID:ZI663GBY0
漏れは、自分のPC で、
Windows10, WSL, Ubuntu16.04 で、全パッケージの更新をするのに、

Ruby で、sudo のパスワードの入力とか、
apt-get の-y で、yes の入力もやってる

#!/usr/bin/ruby
# frozen_string_literal: true

# 全パッケージの更新

# sudo のパスワードを自動入力する
# echo <your_password> | sudo -S <your_command>

puts `echo パスワード | sudo -S apt-get update`

puts `sudo apt-get upgrade -yV`
0634629 (ワッチョイ 9f07-Rp4x)
垢版 |
2019/12/25(水) 23:05:26.90ID:+4x8Vudl0
>>630-633
適当なコマンドですが、
exec("create database -y hogehoge");

みたいに-yをつけると
「hogehogeデータベースを絶対作成する」みたいな事ができるのでしょうか?

>>632さんが書いてるのは
exec("echo yes");

ということなのでしょうか?
0636629 (ワッチョイ 7007-35Sh)
垢版 |
2019/12/26(木) 00:03:12.37ID:QbBK51Lf0
すみません。公式のマニュアルを見てみたのですが、
yesに関しての記述が見当たらなかったんです。
>>635のように書くのだと理解します。ありがとうございました。
0642デフォルトの名無しさん (ワッチョイ a601-LIdJ)
垢版 |
2019/12/27(金) 08:17:09.42ID:4FJgkgoK0
PHPの勉強が目的ならXAMPPやMANPでいいと思うけどな
仮想環境やらの設定や不具合で時間食ってたら元も子もない
0644デフォルトの名無しさん (ワントンキン MMac-HCDf)
垢版 |
2019/12/27(金) 11:51:48.01ID:54ZzlDGdM
初心者にいきなり全CUI操作を強いるのはどうかと思う
VirtualBoxあたりでUbuntu入れて環境構築させればいいんじゃない
0645デフォルトの名無しさん (ワッチョイ 468c-1wr4)
垢版 |
2020/01/02(木) 18:10:26.21ID:NsD5otxd0
PHPを使ったサーバーサイドってどんなことしてるの?
ここはSQLの内部データ表示したいからhtmlの中にdivタグ付けて関数呼び出してってそんな感じでやってるの?
0647デフォルトの名無しさん (ワッチョイ 468c-1wr4)
垢版 |
2020/01/04(土) 03:43:48.23ID:5wVpG03+0
やっぱそうなんか、SQLのログイン設定とかばれるからそうやって防いだり動的処理するんか
0649デフォルトの名無しさん (ワッチョイ fe89-GYAN)
垢版 |
2020/01/04(土) 23:05:43.91ID:9+8EnAbP0
質問です。
環境はMacでXAMPPを使っています。
エラーが出てググったところgdの「JPG Support」がないからだというところまでわかりました。
ですがサポートのさせ方がわかりません。
どうするといいのでしょうか?
0650デフォルトの名無しさん (アウアウウー Saa5-g2RO)
垢版 |
2020/01/04(土) 23:16:35.72ID:9cRomv9Ua
php7環境でpear mailを練習していたところ、

Parse error: syntax error, unexpected 'new' (T_NEW) in /usr/share/pear/Mail/smtp.php on line 349
が出るので調べてみると非対応のようですが、

何に置き換えるのが一般的なのでしょうか?
mail、mb_send_mailでも良いのでしょうか?
これらがあるのにpear mailが利用されていたのでしょうか?
0651デフォルトの名無しさん (アウアウウー Saa5-g2RO)
垢版 |
2020/01/04(土) 23:34:51.34ID:9cRomv9Ua
SMTP.phpの該当箇所349行目を見ると
$this->_smtp = &new Net_SMTP($this->host,
とあったので、&new を new に置き換えると
エラーは出なくなりましたが。

さすがにソースを変えるのは良くないと思いますが、
php7用のpear mailがremiから提供されているのでしょうか?
他の方法を検討するべきでしょうか?
0652デフォルトの名無しさん (ワッチョイ 49a7-BfT8)
垢版 |
2020/01/04(土) 23:54:26.28ID:LM3WrULI0
>>649
macは知らんけど一般的にはphp.iniでgdのextensionを有効にするだけでいい
ていうか自己判断してるけどエラー内容を書かないことには答えようがないな

>>651
pearとかPHP7時代にそぐわないレガシーだよ
PHPMailerでも使えばいいんじゃない?
0653デフォルトの名無しさん (ワッチョイ fe89-GYAN)
垢版 |
2020/01/05(日) 00:03:45.20ID:ftX4LjxF0
>>652
エラーは
Fatal error: Uncaught Error: Call to undefined function imagecreatefromjpeg() in /Applications/XAMPP/xamppfiles/htdocs/php/sample2.php:5 Stack trace: #0 {main} thrown
です。
ググったところgdの「JPG Support」がないとのことで、phpinfoで調べたところ実際にありませんでした。
extension=php_gd2.dllのコメント化も解除し、再起動しましたがまだエラーになります。
0654デフォルトの名無しさん (ワッチョイ 468c-1wr4)
垢版 |
2020/01/05(日) 00:08:18.80ID:mNtiIqp60
https://ideone.com/VwTTUI
こういう書き方って良くないん?こういう手があったかって思ったが見た目が悪いことに気付いた
0655デフォルトの名無しさん (ワッチョイ 49a7-BfT8)
垢版 |
2020/01/05(日) 01:17:40.44ID:qDQaoTCH0
>>653
XAMPP7.4x使ってる?
確かにPHP7.4(XAMPP7.4x)でGDのJPEG Supportがないって報告出てるね
7.4からGDのconfigureオプションが変更されてるようだけど
旧オプションのままコンパイルしようとして無視されてるのかも
そのうち対応してくれると思うけど
自力でどうにかできないならPHP7.3(xampp7.3x)以下を使ってみると解決するかも?

>>654
https://ideone.com/ZwhEN8
まあフレームワーク使いましょう
0656デフォルトの名無しさん (ワッチョイ 468c-1wr4)
垢版 |
2020/01/05(日) 01:19:29.11ID:mNtiIqp60
>>655
やっぱそれが正しい書き方なんだな、悩んでたがスッキリしたわ
0658デフォルトの名無しさん (ワッチョイ fe89-GYAN)
垢版 |
2020/01/05(日) 09:10:52.06ID:ftX4LjxF0
>>655
データ移して、アンインストールして7.3.13にダウングレードしたところありました。
ありがとうございます。
0659デフォルトの名無しさん (ワッチョイ 3eca-aeaz)
垢版 |
2020/01/05(日) 10:23:42.03ID:GvoILGxb0
>>655
foreach のブロックをカッコじゃなく endforeach にするのはなんで?
カッコの対応を取ってくれるテキストエディタは多いのにそういうアシストも受けられなくなるし、タイプ量も増えるし、
あんまりやらんとは思うがループを foreach から for に変更するなんてのも面倒だし、何がよくてそうするのかさっぱり分からん。
0662デフォルトの名無しさん (ワッチョイ 49a7-BfT8)
垢版 |
2020/01/05(日) 14:39:22.34ID:qDQaoTCH0
そんな下らないとこで噛みつかれるとは思いもしないんで
気の利く答えなんて持ち合わせてないでw
自分にあったスタイルで「好きにしろ」でいいんじゃないの別に
0664デフォルトの名無しさん (ワッチョイ c261-BfT8)
垢版 |
2020/01/05(日) 17:25:59.86ID:HEA2L3oC0
括弧だとわかりにくいから。
htmlが混じるとインデントもややこしくなるし。
0665デフォルトの名無しさん (ワッチョイ 468c-1wr4)
垢版 |
2020/01/06(月) 13:02:17.22ID:udFWw96L0
個人的にはhtmlのタグのインテリセンスがかかるからスペルミス閉じミスが起きないから良いなって感じかな
0667デフォルトの名無しさん (ワッチョイ 7fa9-lZna)
垢版 |
2020/01/08(水) 02:17:03.00ID:DD+ZGKXm0
新しいサーバへの移行をしているのですが、
とりあえず動かすと「Parse error: Invalid numeric literal 」が出ます。

覚え立ての開発環境ではこんな感じです。
https://i.imgur.com/Jmw3irM.png

配列を空にして、配列が空でないならば、それぞれの「時」に対して「true, false」を入れた連想配列を作って、
現在時の「時」を$hourに入れて、それを比較して連想配列の「時」をキーにして「true」か「false」どちらかを返すということだと思いますが、
Invalid numeric literalは「使えない数字」と考えて良いのでしょうか?
php5では使えていたとは思いますが、php7では厳しくなったということでしょうか?

vscodeを覚えて時を止めてデバッグができる時に感動しました。
変数がコマ送りに変化していくことが見えるのは凄いです。
0671デフォルトの名無しさん (ワッチョイ 7fa9-lZna)
垢版 |
2020/01/08(水) 18:23:40.37ID:DD+ZGKXm0
>>670
0, 1, 2, 3, 4, 5, 6, 7, 10, 11, 12
ですよね。
シングルクォートで文字列にしてエラーは出なくなりました。

この関数は昔誰かが書いたものですが、時によってフラグを立てる方法としてはまだ改良の余地があるのでしょうか。
0673デフォルトの名無しさん (ワッチョイ ffca-SJ+5)
垢版 |
2020/01/08(水) 18:47:21.77ID:Z7OGNEnI0
>>671
そもそもなんだけど、関数の引数で $time_array が渡されたとき、その添字はどんな形式になってるの?
$hour は文字列なんだから、元々配列の添字は文字列であるべきだったように見えるけど。

それはそれとして、小さなフラグテーブルなら文字列で書く方法もあるかもね。

$timetbl = '000000000011111111111100';

return $timetbl[(int)$hour] === '1';

みたいな。
その例ではインタフェースを変更しないといけなくなるから適用しづらいだろうけど。
0676デフォルトの名無しさん (ワッチョイ dfa7-alJZ)
垢版 |
2020/01/08(水) 22:18:06.43ID:zDxhP1FM0
PHPはJavaScriptなんかと違って文字連結とは演算子が別れてるから
+演算子は加算専用で数字として扱えるというか数値として扱うというのが正しい

>>667のコード見た感想としてはそこで初期値設定するか?って思ったわ
渡すべき$time_arrayの初期値としてならともかく
ちゃんとarrayのみ渡されるよう想定したほうがいいね
0678デフォルトの名無しさん (ワッチョイ 7fd4-ErPi)
垢版 |
2020/01/13(月) 21:12:24.20ID:KUUG8Hhj0
質問があります。もしわかる方がいましたらご教授頂きたいです。

htmlを読み込んでbodyタグの中のaタグに書かれている内容を表示させようとしています。
(このサイトを参考:https://blog.katty.in/1400

$url = 'https://haruoto.com/?page_id=11';
$html = file_get_contents($url);
$html = mb_convert_encoding($html, 'HTML-ENTITIES', 'ASCII, JIS, UTF-8, EUC-JP, SJIS');
$domDocument = new DOMDocument();
$domDocument->loadHTML($html);
$xmlString = $domDocument->saveXML();
$xmlObject = simplexml_load_string($xmlString);
$array = json_decode(json_encode($xmlObject), true);
echo $array['body']['a'];  //「コンテンツへスキップ」と表示される

上記のコードは正しく動作するのですが、URLを「https://haruoto.com/?reply=407」に変更すると正しく動作しません。
何が原因なんでしょうか?
0681デフォルトの名無しさん (ワッチョイ 7fd4-ErPi)
垢版 |
2020/01/14(火) 00:49:39.13ID:Pp7kDtDs0
>>680
ありがとうございます!
そちらのコメント部分を修正したところ正常に動作するようになりました!
0682デフォルトの名無しさん (ワッチョイ dfa7-alJZ)
垢版 |
2020/01/14(火) 01:08:34.22ID:HMRlieOS0
PHPのDOMload周りは@でエラー無視が一般的だと思う

$domDocument->loadHTML($html);

@$domDocument->loadHTML($html);

>>678も自分の環境じゃWarning出まくるけどこれで結果を得られるし
?reply=407へURL書き換えたあともちゃんと結果を得られる
自分はPHPのDOM周りはいまいちなんでJavaScript側でやるかな
0683デフォルトの名無しさん (ワッチョイ dff1-///2)
垢版 |
2020/01/14(火) 11:21:04.15ID:LsFOQfCc0
自分のサイトを作ることにしました。
目的は主に2つあって、なにか簡単な商売をして副業としてお金をかせぐことと、ブログみたいになにか情報発信しようかと思っています。
PHPも使います。
どこのレンタルサーバを使うのが得策でしょうか?
今後生涯サイトは使おうと思います。
0684デフォルトの名無しさん (ワッチョイ 7f59-alJZ)
垢版 |
2020/01/14(火) 14:36:03.43ID:Yv2y+5Q60
ここはまんさんでもやさしくしてくれるやろか

あのな、画像検索するとある画像が大きさが5504x8256ってなってるんやが開くとちっさいんや大きさが指定してあって。アドレスバーのとこに410x618って書いてあって。しかもこいつ実際は274x410なんやで。
wysiwygとかでダメなんやろかってやってもちっさいんや。大きいのは格納されとるハズなんやろうけど初心者すぎて大きい元画像にたどりつけないんやで。

やさしい人手取り足取り教えてほしいんやでどなたか
0685デフォルトの名無しさん (ワッチョイ 7f59-alJZ)
垢版 |
2020/01/14(火) 14:36:34.20ID:Yv2y+5Q60
スレチやったらごめんなさい
0686683 (ワッチョイ dff1-///2)
垢版 |
2020/01/14(火) 16:42:58.46ID:LsFOQfCc0
どうですかね?
いまの時代、無料のレンタルサーバでPHP/SQLも使えるところはあるのでしょうか?
0687デフォルトの名無しさん (ワッチョイ 5fda-woae)
垢版 |
2020/01/14(火) 16:49:46.95ID:HWX79XGs0
>>684
自分のサイトの話じゃなくて、他人のサイトに置いてある画像の元ファイルにどうしたらたどりつけるかって話か
ここは下らねぇ質問のスレだが自分のサイト以外の問題を持ち掛けられてもしょうもないと思います
0688デフォルトの名無しさん (ワッチョイ fff2-ZJ4Y)
垢版 |
2020/01/14(火) 16:57:43.19ID:R0T58PMv0
>>683
スレチ
レン鯖スレへ
「いまの時代、”無料のレンタルサーバでPHP/SQLも使えるところ”はあるのでしょうか?」
ダブルクォートのワードそのまんまで検索すればいいのに

>>684
スレチ
google画像検索ならimagesizeのオプション追加すればある程度絞り込めても万能じゃない
サイトまでたどり着けてるならurlを想像してアタックする
0689デフォルトの名無しさん (ワッチョイ 7fa9-lZna)
垢版 |
2020/01/14(火) 20:36:37.48ID:/BEaD92M0
mysql_real_escape_string($string)
を多用している手続き型のphp5環境からphp7へ移行をしていて、
mysqli_real_escape_string($link, $string)
への修正しているのですが、

htmlspecialcharsのように、エスケープ目的で多用しているコードなのですが、
データベースのリンクも引数の強制になったようですが、リンクを使うのはどういう理由なのでしょうか?

また使いどころとしては、多用せずsqlクエリを使う前に1回で済ますという感じでしょうか?
0690デフォルトの名無しさん (ワッチョイ a9a7-s5Rz)
垢版 |
2020/01/15(水) 00:51:29.73ID:0SK8bZ/o0
>リンクを使うのはどういう理由なのでしょうか?
マニュアルに書いてるけど、
「接続の現在の文字セットを考慮して、SQL 文で使用する文字列の特殊文字をエスケープする」から。
接続が複数あって文字セットが異なる場合なんかを考慮してるのでしょう。

>多用せずsqlクエリを使う前に1回で済ますという感じでしょうか?
プリペアドステートメントで行うのが普通。
mysqliみたいなベンダー固有関数は汎用性がないのであまり使われないよ。
mysqlしか使わないならいいけど、本気で修正するなら手間も同じだしPDOでやったほうがいいと思う。
0691690 (ワッチョイ a9a7-s5Rz)
垢版 |
2020/01/15(水) 01:29:34.93ID:0SK8bZ/o0
>>690の答えはちょっと答えになってなかったから補足しとく

・mysql関数時代も接続(リンク)は必要っちゃ必要だったけど、省略可能な第二引数だった。
 省略した場合は、直近に使った接続になる。
・mysqli関数は省略不可能な第一引数になった。(引数の順番が変わった)

mysql関数は、接続を明示しなくていいので、
接続が複数ある場合、意図しないDBを操作するミスがおきる可能性がある。
エスケープする場合も同様、意図しないエスケープ結果になってしまう恐れがある。
そういうミスを減らすためにも、接続を明示しないといけないmysqli関数ってことなんじゃないかな多分。
0692デフォルトの名無しさん (ワッチョイ 02a9-JESV)
垢版 |
2020/01/15(水) 19:33:51.69ID:OZZ+PtiC0
今まで1つの接続しかしたことが無かったので複数を接続するって考えもしなかったです。
たしかにそれだと文字コードが違う場合も想定すると、明示したほうが良いですよね。
古すぎてpdoに書き直すのは難しいので、とりあえず地味に書き換えていきます。

しかしmysqli_real_escape_stringや、mysqli_queryとか
引数の強制が増えたり、引数が入れ替わったり、pdoを使っていない古いコードは修正に振り回されることになりますよね。


プリペアドステートメントは「?」とかコードの行数が一気に増えて難しそうなのですが、
クエリに直接変数を書いて、real_escapeすればと思ってしまうのですがやはりデメリットがあるのでしょうか。
新規で練習するときはプリペアドステートメントを使おうと思っています。
0693デフォルトの名無しさん (ワッチョイ a9a7-s5Rz)
垢版 |
2020/01/16(木) 04:41:59.97ID:WGM+n45y0
>>692
具体的なコードは書かないけど、
real_escape_stringでは攻撃対策としては不十分だから、プリペアドステートメントは必須。
(PDO使う場合、PDO::ATTR_EMULATE_PREPARESが1で、PDO側でエミュレートする場合、攻撃が成立する場合があるのは注意)
型を調べたり、想定してるフォーマットに沿うものか検証(バリデーション)して、
受け渡された変数が安全なデータであることが保証されてればいいけど、それこそコード長くなるし、
プリペアドステートメントでやったほうが、確実だし簡単だと思う。
0694デフォルトの名無しさん (ワッチョイ 7eca-uIHU)
垢版 |
2020/01/16(木) 09:20:07.39ID:yWLTyI800
>>692
あちこちに適用するライブラリでもなくいろんなDBに対応するわけでもないんだろうから、無理して PDO に置き換える必要は無いんじゃね。
プリペアドステートメントのいいところはプレースホルダが使えることもあるけど、プリペア済みのオブジェクトを何度も使い回すことによってSQLのパースを省略してパフォーマンスを上げられるって利点がある。
でも使い回しなんてせず同じSQLでも使う度にプリペアするようなコードが多いだろうし、バッチならともかくwebの1リクエストでどんだけ使い回せるの?って話もある。

それに加えて LIKE とか可変個の IN とか面倒だから、プリペアドステートメントに拘る必要は無いというのが俺の考えだな。
新規じゃないなら特に。
0695デフォルトの名無しさん (ワントンキン MM52-NIOJ)
垢版 |
2020/01/16(木) 14:43:23.92ID:B1/MNbmAM
pdoに置き換えは無理してってほど大袈裟なものじゃないでしょ
手続きが用意されてないからオブジェクトになるけど
オブジェクト型のmysqliと比較してコードは似たりよったりだ
新規はpdoにしたほうがいい
0697デフォルトの名無しさん (ワッチョイ 8d07-muX5)
垢版 |
2020/01/16(木) 16:00:44.94ID:NkO/oANm0
クラス内のメソッドについて、
似たような処理を行うもの(少し変更している)のがあるとします。
たとえば「redirect」というメソッドだったとして、
少し変更したのを「_redirect」みたいにして、親クラスに用意しているのですが
こういう書き方・使い方はまずいでしょうか?
beforeRedirectとかcustomRedirectみたいに変えた方がいいでしょうか?
0700デフォルトの名無しさん (ワッチョイ a9a7-s5Rz)
垢版 |
2020/01/16(木) 17:54:13.09ID:WGM+n45y0
>>697
どう変更してるのかわからないけど、
引数の数や型が違うならオーバーロードにする手もある。
ただしPHPにはない機能なので、可変引数を使ったり工夫が必要になるけど。
あとは柔軟に引数でモード選ぶとか、言ってるように名前変えるとかでいいと思う。
0701デフォルトの名無しさん (ワッチョイ 8261-s5Rz)
垢版 |
2020/01/16(木) 18:12:11.14ID:9x78fuLW0
共通部分の処理は親側で全部行うようにして、差分だけを子側に委譲する(abstractメソッド)。
0702デフォルトの名無しさん (アウアウウー Sa05-DeBb)
垢版 |
2020/01/16(木) 20:22:40.39ID:HZuE80s1a
>>693-694
今回は古い部分を直すだけで必死なのでreal_escapeを使いますが、
たしかにプリペアドステートメントが
エスケープも兼ねるので新規では使いたいです。

古いコードなので、闇雲に同じクエリを投げているので、そういう意味ではプリペアドステートメントの利点を受けられるかもしれません
0703デフォルトの名無しさん (ワッチョイ 8d07-muX5)
垢版 |
2020/01/17(金) 17:10:14.42ID:HDLfgQuO0
>>699-700
できれば他の人が見てもわかる方法にしたいのですが、

親クラス
class Main {
 function redirect($url){
  header('Location:' . $url);
 }

 function _redirect($url){
  〜$urlになにかする処理〜
  $this->redirect($url);
 }
}

みたいなことをしていまして、これだとわかりづらいですよね?
※redirectになにかする処理を書くのは別とします。

なので別のメソッド名にした方がいいのかな?と思うものの、
beforeRedirectとかcustomRedirectとかにするのは変かな?
と感じており、質問した次第です。
0706デフォルトの名無しさん (ワッチョイ 8d07-muX5)
垢版 |
2020/01/20(月) 10:56:16.47ID:UzBq59x80
>>705
通常はredirectの方で、変わったことがしたい(ページ推移を分岐させたい等)時は
_redirectの方を使うというイメージです。

そのため、「このリダイレクトは、カスタマイズしたリダイレクトですよ」
ということを説明するためのメソッドであればと思うのですが、
「_redirect」のような名前は、間違いやすいし、
beforeRedirectの場合はイベントハンドラっぽいので、悩んでいる次第です。
0707デフォルトの名無しさん (ワッチョイ 8d07-muX5)
垢版 |
2020/01/20(月) 11:28:18.41ID:UzBq59x80
すみません、自己レスですがやっぱり変なので

class Main {
 function beforeRedirect($url){
  〜$urlになにかする処理〜
  return $url;
 }

 function redirect($url){
  $url = $this->beforeRedirect($url);
  header('Location:' . $url);
 }
}

みたいな設計にし直します。
0708デフォルトの名無しさん (ワッチョイ a902-1yOP)
垢版 |
2020/01/20(月) 19:21:08.15ID:OvG49n5/0
ネーミングの問題だと思うけど、アンダーバーが付いたのは予約語だったりシステムコールに
見えちゃうので、ちゃんと名前付けた方がいいね
個人的には面倒くさかったら拡張した方はすべて〜exで済ませる
0709デフォルトの名無しさん (アウアウウー Sa05-gGzZ)
垢版 |
2020/01/21(火) 22:14:23.82ID:k/0CqDEqa
editURL/editRedirectURLとか
あとはめっちゃ冗長だけどeditURLBeforeRedirectとかな

そもそもredirectと並列に並べるような処理してないんだから同じ動詞が中心になるような命名はダメ
0710デフォルトの名無しさん (ワッチョイ e7da-Jq7D)
垢版 |
2020/01/26(日) 21:35:09.22ID:X84CwPm80
formのactionを「action=""」と記述した場合、再帰的に現在のページが呼び出されると
あったのですが、その際は現在のページの記述を全て読み込みなおすってことでしょうか?
0712デフォルトの名無しさん (ワッチョイ ffca-v+ft)
垢版 |
2020/01/26(日) 22:34:05.94ID:qUKNFCzW0
>>710
遷移先のURLが今と同じになるということ。
submitされる内容はその時のformの中身だから、ページの内容を読み込み直すということではない。
よくあるフォームだと、入力、確認、完了画面を順に遷移していくと思うけど、それら全部を同じ myform.php というひとつの URL で対応する感じ。
今どの画面を表示すべきなのかは submitされるパラメータのどれかに仕込むとかして判別できるようにする。

method が get だと URL自体が変化していくから、その手法をやるなら method は必然的に post になる。
0713デフォルトの名無しさん (ワッチョイ e7da-Jq7D)
垢版 |
2020/01/26(日) 23:01:03.81ID:X84CwPm80
>>711-712
即レスどうもです。

動画サイトで勉強してまして、なんでその記述になるのか説明がないので、
>>712さんの説明で理解が深まりました。


遷移先が同じ場合はformのパラメータのみが変化して、ページの記述は読み直さないってこと
なのでしょうか?

下記のようにPOSTされていたら関数を呼び出すという条件式がheadタグより
上に書いてあり、ページの記述を読み直しでもしないと
この条件式の処理が走りようがないのでは?と混乱しております。

if ($_SERVER['REQUEST_METHOD'] === 'POST') {
 $uploader->upload();
}
0715デフォルトの名無しさん (ワッチョイ ffca-v+ft)
垢版 |
2020/01/26(日) 23:31:40.69ID:qUKNFCzW0
>>713
それは同じURLで get と post の両方に対応してるんだね。
リンク踏んだりURL叩いてページに来たときは get でのアクセスになるから、とりあえず動画閲覧画面でも表示するのでしょう。
でもその画面では動画のアップロードもできるようになってて、post によってアクセスされる場合はアップロードの操作がされたものとして動画を差し換え、改めて閲覧画面を表示するのでしょう。
ページの記述とか何言ってるのかはよくわからないけど、その URL はアクセスされる度に毎回一からページを送り出してるだけだと思うよ。
動画のIDなんかURL自体に含まれてて、閲覧や更新対象を示すキーとして満ち足りてるから、同じURLを使い回すようにしてるんじゃないかな。
ブックマークするときなんかも、リンク踏んで来た場合でもアップロード後でも URL が一緒になるからタイミングを選ばず都合がいいだろうしね。
0717デフォルトの名無しさん (ワッチョイ f689-Kz18)
垢版 |
2020/01/30(木) 15:15:02.21ID:H+L/BkWr0
phpでPixivの画像まとめてDLしたいなと思いついて
https://html-css-javascript.com/demo/pixiv/
これ参考にやってるんだけどうまく行かない
Pixivの画像ってphpじゃDLできないの?
0720デフォルトの名無しさん (ワッチョイ f689-Kz18)
垢版 |
2020/01/30(木) 18:08:28.77ID:H+L/BkWr0
マジか…
Rubyわかんないからphpでやりたかった

Pixivの画像のURL自体は変わってなかったから下記のURLの画像が保存できる方法知ってたら教えて下さい
https://i.pximg.net/img-original/img/2020/01/28/01/28/46/79136582_p0.png
0723デフォルトの名無しさん (ワッチョイ 2a01-I+PI)
垢版 |
2020/01/30(木) 20:52:22.46ID:N/97jNZ60
ranking TOP10のやつ全部ダウンロードするスクリプト
curl, pup, jqが必要

curl -s 'https://www.pixiv.net/ranking.php' ¥
| pup 'a.work' attr{href} ¥
| head -10 ¥
| sed -E 's/¥/artworks¥/([0-9]+)/¥1/' ¥
| xargs -I {} curl -s https://www.pixiv.net/ajax/illust/{}/pages ¥
| jq '.body[].urls.original' ¥
| xargs -I {} curl -# {} -H 'Referer: https://www.pixiv.net/en/artworks/' -O -w "%{url_effective}¥n"
0725デフォルトの名無しさん (ワッチョイ a5f1-yzQx)
垢版 |
2020/01/30(木) 20:58:51.80ID:Rpk6h2gy0
>>724
なぜ?
円マークとバックスラッシュは同じじゃないの?日本語のパソコンだと円マークに表示されるだけで。

この辺の仕組みを「文字コード」とてう言葉を使って竹を割ったようなスッキリ解説できるかた、どうかお願いできませんかね?
0726デフォルトの名無しさん (ワッチョイ b501-0Ybi)
垢版 |
2020/01/30(木) 21:01:33.81ID:Z7o7STkD0
フォントデザインが違うだけ。
0727デフォルトの名無しさん (ワッチョイ 2a01-I+PI)
垢版 |
2020/01/30(木) 21:30:24.16ID:N/97jNZ60
>>725
円マークとして表示されてる文字の文字コードが
バックスラッシュと同じ0x5Cならいいんだけど
>>723の円マークは0xA5なので別の文字

バックスラッシュと円マークは同じ場合もあれば
違う場合もあるってこと
0728デフォルトの名無しさん (ワッチョイ f689-Kz18)
垢版 |
2020/01/30(木) 21:56:00.67ID:H+L/BkWr0
N/97jNZ60 様
ありがとうございます。
ですが、素人に毛が生えた程度の私では難しいようです。(Rubyもスクリプトもできません)
phpで無理そうなら諦めます。
0729デフォルトの名無しさん (ワッチョイ 2a01-I+PI)
垢版 |
2020/01/30(木) 23:11:34.50ID:N/97jNZ60
>>728
PHPでもシェルスクリプトより少し面倒なだけで普通にできるよ
処理手順だけ書いておくからPHPでトライしてみて

https://www.pixiv.net/en/artworks/79136582の一連の画像を全部ダウンロードしたい場合

https://www.pixiv.net/ajax/illust/79136582/pagesにアクセスすれば
各サイズのURLのリストがJSON形式で取得できる

取得したURLリスト(JSON)から目的のURLだけ抜き出して
そのURLを一つずつアクセスして画像をファイルに保存すればOK

>>723の後半3行が上の手順に相当する部分
0733デフォルトの名無しさん (ワッチョイ ea2c-KoMo)
垢版 |
2020/01/31(金) 04:49:35.34ID:/fagGTpB0
>>723
は、Linux コマンド、またはシェルスクリプト

一方、Windows 10 にも、curl が入っている。
コマンドプロンプトで、where curl と打つと、
C:\Windows\System32\curl.exe

このcurl とは別に、PowerShell にもcurl がある

Ruby で、`〜` 内に、コマンドを書いて、呼び出すこともできる。
例えば、curl のヘルプの最初の5行を表示する

puts `curl -help`.lines.first( 5 )

同様に、PHP にも、コマンドを呼び出す記法があるはず。
ダウンロードでは、Linux のcurl, wget は、よく使うコマンド

Windows 10 上で, WSL, Ubuntu 18.04 を使っているなら、
Linux側で、Linuxコマンド・シェルスクリプトを書いて、Windows側のフォルダをいじる事もできる
0734733 (ワッチョイ ea2c-KoMo)
垢版 |
2020/01/31(金) 08:14:28.08ID:/fagGTpB0
Ruby なら、ウェブページをBOMなしUTF-8 で、一旦保存してから、JSON.parse すると、

require 'open-uri'
require 'json'

# json_str = URI( "https://www.pixiv.net/ajax/illust/79136582/pages"; ).read
json_str = File.read( "79136582_pages.json" ) # 保存した、UTF-8 ファイル

json_obj = JSON.parse( json_str )
json_obj[ "body" ].each do |urls|
p urls[ "urls" ]
end

出力。
こういうのが画像の数だけあるけど、この中で、original だけが欲しいの?

{"thumb_mini"=>"https://i.pximg.net/c/128x128/img-master/img/2020/01/28/01/28/46/79136582_p0_square1200.jpg";,
"small"=>"https://i.pximg.net/c/540x540_70/img-master/img/2020/01/28/01/28/46/79136582_p0_master1200.jpg";,
"regular"=>"https://i.pximg.net/img-master/img/2020/01/28/01/28/46/79136582_p0_master1200.jpg";,
"original"=>"https://i.pximg.net/img-original/img/2020/01/28/01/28/46/79136582_p0.png";}
0735デフォルトの名無しさん (ワッチョイ 66a7-ol1H)
垢版 |
2020/01/31(金) 09:07:20.03ID:Qzj9ULR80
PHPで頼む言われてんのにRuby厨また沸いてんのかw

$api = 'https://www.pixiv.net/ajax/illust/79136582/pages';
$json = json_decode(file_get_contents($api));
$ctx = stream_context_create(['http'=>['header'=>"Referer: {$api}\r\n"]]);
foreach ($json->body as $body) {
  $url = $body->urls->original;
  $fname = basename($url);
  file_put_contents($fname, file_get_contents($url, false, $ctx));
  sleep(1);
}

保存先やら上書きやら考慮してないからこのままは使うなよ
0736デフォルトの名無しさん (ワッチョイ f689-Kz18)
垢版 |
2020/01/31(金) 10:18:31.72ID:2wi/3AbP0
昨日Pixivの件で質問した者です。
皆様のおかげでなんとかできました。
ありがとうございます。
ただ、>>735 さんのようにきれいに書けてないので修正しながら使っていきたいです。
0738デフォルトの名無しさん (ワッチョイ f689-Kz18)
垢版 |
2020/01/31(金) 17:24:53.23ID:2wi/3AbP0
Pixivの質問者です。
画像をタイトル名で保存したかったので、下記のようにしました。

$url = "https://www.pixiv.net/artworks/79152593";;
$html = file_get_contents($url);
preg_match("/この作品 「(.*)」 は 「/", $html, $titlearr);
echo $title = $titlearr[1];

タイトル以外にも投稿日や閲覧数などが取得できたのですが、カテゴリが上手く取得できません。
なにか良い方法はないでしょうか?

もしくは「https://www.pixiv.net/ajax/illust/79152593/pages」のような画像の情報集のようなものがあるのでしょうか?
0739デフォルトの名無しさん (ワッチョイ 66a7-ol1H)
垢版 |
2020/01/31(金) 19:10:54.05ID:Qzj9ULR80
DOMDocumentで$htmlをロードして
getElementById('meta-preload-data')->getAttribute('content')取って
json_decodeすればあとはapiと同じ様につかえるんじゃね?
文字コードまわりの処理がちょっと面倒だと思うが
0741デフォルトの名無しさん (ワッチョイ f689-Kz18)
垢版 |
2020/01/31(金) 20:23:09.76ID:2wi/3AbP0
ありがとうございます。
JSONならなんとかなりそうです。
「/pages」を取るだけだったんですね…
0742733 (ワッチョイ ea2c-KoMo)
垢版 |
2020/01/31(金) 23:34:14.10ID:/fagGTpB0
>>732
に、API を公開してるって、誰かが書いてる

大々的に横断検索のようなスクレイピングしてると、営業妨害で逮捕される!
ちゃんと会社と契約して、API を使ってやるように!

会社のrobots.txt で、スクレイピングを禁止している場合は、有罪にされる!
クローラーの開発者は、robots.txtに従うべき!
従わないと訴えてくる。特に、5ch みたいなサイトは

クローラーのテストも、自分のPC 内に、Rubyのサーバーを立てて、
そこにウェブサイトのコピーを作って、それにアクセスしてテストする

本当のサイトに対して、テストしたりしない!
何回もテストしていると、営業妨害になるから!

クローラー開発者の大原則!
1. 会社と契約して、API を使う
2. robots.txtに従う
3. 自分のPC内に、サーバーを立ててテストする

それと書き込むときは、名前欄に、717 と入れてください!
誰が書き込んでいるか、分からないので
0744デフォルトの名無しさん (ワッチョイ 2a01-I+PI)
垢版 |
2020/02/01(土) 00:45:19.00ID:EnxAFhi/0
>>742
>大々的に横断検索のようなスクレイピングしてると、営業妨害で逮捕される!
>会社のrobots.txt で、スクレイピングを禁止している場合は、有罪にされる!
>何回もテストしていると、営業妨害になるから!

すべてデマ
一般論としてデマ書くくらいは別にいいけど
それを元に人を犯罪者扱いするとそれこそ罪になるから気をつけてね
0745デフォルトの名無しさん (ワッチョイ b501-/fp1)
垢版 |
2020/02/01(土) 00:47:42.04ID:1yCARK9i0
だからAPI公開されてるんだってば
0746デフォルトの名無しさん (ワッチョイ 66f2-kxDg)
垢版 |
2020/02/01(土) 00:50:08.53ID:MgOexLzI0
専用ブラウザだろうが一般ブラウザだろうが、使う人間が同じなら同程度のアクセスにしかならんと思う
あと、API使わないWEB通信で専用か一般かを判別するのは無理じゃね?
UAも偽装できるし、そもそも廃止方向だし
0747733 (ワッチョイ ea2c-KoMo)
垢版 |
2020/02/01(土) 01:00:56.04ID:4wtj58110
いたずら電話でも、回数が多いと逮捕される!
一杯逮捕されてるし、有罪にもなってる!

会社は、一般的な用法でアクセスできるようにしてるだけで、
常識内の使い方じゃないと、営業妨害になる

クローラー開発者が、robots.txt に従うのは常識だから、従わないと営業妨害になる。
クローラー開発者はそもそも一般人じゃないし、一般的な使い方じゃない

株取引と同じで、プロの取引だから、守るべきハードルが高い。
これほど専門的な開発者は、素人の一般人が作っていましたという弁明ができない。
専門家として扱われるから
0748デフォルトの名無しさん (ワッチョイ 66f2-kxDg)
垢版 |
2020/02/01(土) 01:09:26.21ID:MgOexLzI0
>>747
誰にレスしてるのか分からないけど、俺にレスしてるんなら改めて書いとく

俺は良い悪いの話をしていない
API非使用の話
同じ人間がスレ見るような使い方はアクセス頻度も負荷も変わらないだろう
判別するのは技術的に無理じゃねえか

以上
弁明とかそんな次元の話をしているのではないので、そこんとこよろしく
0750733 (ワッチョイ ea2c-KoMo)
垢版 |
2020/02/01(土) 02:39:22.43ID:4wtj58110
法律では、常識というのが判断基準になる

マナー・エチケットなどは関係ない。
契約していない者同士では、有形力の行使が判断基準

API の契約をした場合は、契約者同士だから、刑事事件にならないけど、
契約をしていない場合は、有形力の行使で判断する

いたずら電話とか、万引き・痴漢・家宅侵入などは、
契約していない者同士での有形力の行使

一般的じゃない使い方は、非常識になる。
プログラミングなど、プロの技術を用いた場合は、一般人と違う扱いになる

一般人が手でクリックした場合と、違う扱いになる

マナー・エチケットも、プロ・素人では、遵守レベルが異なる。
一般人の遵守レベルと、プロの遵守レベルは違う

株取引と同じ。
株はプロの遵守レベルだから、1桁間違って入力しても、勘違いとして撤回できないだろ。
普通の民法なら、錯誤で撤回できるけど

株は一般人の商取引じゃなく、プロの商取引だから、遵守レベルが厳しい
0753デフォルトの名無しさん (ワッチョイ 1149-futC)
垢版 |
2020/02/01(土) 11:30:39.83ID:ldPcUcvt0
pixivとか大きいところならインフラで帯域制御してるだろうから、IP詐称やら多数の接続元やらで大規模にやらない限り、
スクリプトでのDLは気付かないだろうし看過されるだろうけどね
逆に目立てば注意とか何も言われず制限とかされる

まあ、インターネットがある意味良識で成り立ってるところもあるから、あまり変なことはしない方がいいよ
自分のことばかり考えるなってね
0754デフォルトの名無しさん (ワッチョイ b501-+mJQ)
垢版 |
2020/02/02(日) 11:44:23.24ID:OTJ5GLO00
サイト内検索を設置したいのですがわかりません 
どのように作ればよいのでしょうか?
0757デフォルトの名無しさん (ワッチョイ a602-ZjM+)
垢版 |
2020/02/03(月) 04:24:06.78ID:w78j2Hgc0
サイト内のキーワードを検索したいんです
絞り込み検索など
0758756 (ワッチョイ ea2c-KoMo)
垢版 |
2020/02/03(月) 04:30:12.91ID:YoBHNt100
多くのサイトが、Google のコントロールを使っているから、

Googleが配布しているのでは?
0759デフォルトの名無しさん (ワッチョイ 3d7c-a4zy)
垢版 |
2020/02/03(月) 21:07:08.59ID:zKdzrXwz0
平面上に座標の判明している点が数百あるとして、全ての点どうしの距離を
計算時間はかかって構わないのでハングしないように計算したいのですが
PHPではどうやったらいいのでしょうか

普通のPHPプログラムと同じように
点の座標情報をリクエストとして受け取って
全ての計算が終わったらブラウザにレスポンスしたいです
0761デフォルトの名無しさん (ワッチョイ ea2c-KoMo)
垢版 |
2020/02/04(火) 09:19:02.42ID:6/2RTZHA0
Ruby なら、標準のwebrick サーバーで、
VSCode の拡張機能、REST Client で、JSON 文字列をPOST すると、同じ配列が返ってくる。
CGI にも出来る

POST http://localhost:8888/ HTTP/1.1
content-type: application/json

[[0,0],[10,20],[10,10]]

以下は、Ruby

require 'webrick'
require 'json'

srv = WEBrick::HTTPServer.new( {
:DocumentRoot => './',
:BindAddress => '127.0.0.1', :Port => 8888 } )

srv.mount_proc( '/' ) do |req, res|
res[ "content-type" ] = "text/plain"

ary = JSON.parse( req.body ) # JSON 文字列から、Ruby のオブジェクトに変換する
# ここで、ary を処理する
result = JSON.generate( ary ) # Ruby のオブジェクトから、JSON 文字列に変換する

res.body = result
end

Signal.trap( :INT ){ srv.shutdown } # Ctrl+C で終了
srv.start
0762デフォルトの名無しさん (ワッチョイ 66a7-ol1H)
垢版 |
2020/02/04(火) 10:26:16.95ID:a9RPAFSb0
>>759
長い計算で問題になるのはタイムアウトと使用人数
色々考慮しないといけないのでケースバイケースになるが
そういう計算はJavaScriptでやったほうがいいと思う
非力な環境考慮やスマホの節電狙ってるならとめはしないが

基本はある程度計算した時点で(タイムアウトする前に)一度レスポンス返して
計算再開するようリクエスト再送して計算終わるまでそれを繰り返すとか
サーバ側でタイムアウトを無効にしてマルチスレッドで計算しながら
Transfer-Encoding: chunked(flush関数)とかでなんかブラウザに送り続けるとかそんなところ
あと設定したことないので確認はしてないがxhr使えばブラウザ側のタイムアウトは無効に出来るはず
大人数で使う&計算が数時間に渡る場合サーバ側タイムアウトを無効にするような計算はしないほうがいい
0763761 (ワッチョイ ea2c-KoMo)
垢版 |
2020/02/04(火) 10:59:31.95ID:6/2RTZHA0
確かに、計算のタイムアウトなどを考えたら、

AWS Lambda などを使った方がよい
0764759 (ワッチョイ 3d7c-a4zy)
垢版 |
2020/02/04(火) 14:13:53.25ID:D53RXKif0
>>760
450点あたりで
計算は10万回超えちゃいそうな気がするんですが…

>>762
あざます、そんで説明下手ですみません
アクセス数とか、ユーザビリティ的なことはそれほど考えなくていいんです

説明が難しいんですが、MovableTypeみたいな動き方と言いますか
このプログラムを一度実行することで静的なファイルを生成して
ウェブのユーザにはそのファイルを見てもらうことになるので

なのでとりあえず、10万なら10万回
時間かけていいんで、PHPがハングしないように計算を終えて
その結果が出たら、ブラウザに返したいな、と

昨夜自分で考えて
PHPは1点ずつの計算結果をテキストファイルとして生成して
ブラウザはそのファイルが出来ているか定期的にポーリングする
みたいなことを考えたんですが…
0767759 (ワッチョイ 3d7c-a4zy)
垢版 |
2020/02/04(火) 16:28:58.13ID:D53RXKif0
>>766
点の情報は、ブラウザからJSONかCSVかXLSXかでポストさせるので
実行時点で数が不明ですので、クロンを書くのも難しいかなと

たぶんポストされた座標データ群を基に

foreach($datas as $data){
foreach($datas as $data){
// ここで距離を計算
// 計算済みのものは除外
}
}

みたいになるわけですが、$datasの数が多いと止まってしまうので
非同期でいいので止まらない方法はないものかなと
0768デフォルトの名無しさん (ワッチョイ 2a01-I+PI)
垢版 |
2020/02/04(火) 17:30:21.86ID:26FK/H9g0
数百の点同士だから最大1000 x 1000でも100万でしょ
floatだとしても100msもかからないと思うんだけどそれでハングするの?

クライアント側で計算させても一瞬だから
ラウンドトリップさせるのをやめて計算結果だけ非同期で受け取るようにしたほうが
ユーザーにとっても運用してる側にとってもいいと思う
0769759 (ワッチョイ 3d7c-a4zy)
垢版 |
2020/02/04(火) 17:37:32.11ID:D53RXKif0
>>768
あざます
大丈夫ですかね?100万回
とりあえずストレートにやってみようかなあ…
0770761 (ワッチョイ ea2c-KoMo)
垢版 |
2020/02/04(火) 23:05:49.06ID:6/2RTZHA0
JSON が普通。
非同期処理なら、Ajax を使う方法もある

C/C++ で計算だけして、ファイルに書き込んでから、
ウェブサーバーで、そのファイルを見れば?

計算速度が遅くてもよいなら、どの言語でも良いし
0771デフォルトの名無しさん (ワッチョイ 2a63-unxX)
垢版 |
2020/02/04(火) 23:14:48.03ID:lLuVC2X20
実際の処理時間次第って気がする
10分程度なら、そのまま終わるのを画面監視して待っていれば良い
数時間以上掛かるなら、結果をメールで送ってもらうなり
夜間バッチで動かしておくのも良いかも
0772761 (ワッチョイ 9f2c-ndoi)
垢版 |
2020/02/05(水) 00:24:15.42ID:NEouxGwD0
クライアント/サーバー間の通信は、JSON で良いけど、
元のデータは、CSV の方が、データベースとの連携でも簡単かも

そして、CSVを計算して、ファイルに書き込む

JSON
[[0,0],[10,20],[10,10]]

CSV
x,y
0,0
10,20
10,10
0773デフォルトの名無しさん (ワッチョイ 7f89-IOUD)
垢版 |
2020/02/05(水) 11:25:21.84ID:2PM+quj20
$url = "https://page.auctions.yahoo.co.jp/jp/auction/u332334293";; //エロ個別ページ
//$url = "https://page.auctions.yahoo.co.jp/jp/auction/n399439358";; //ノーマル個別ページ
$filestr = file_get_contents($url);
echo $filestr = mb_convert_encoding($filestr,'utf8','auto');

こんな感じでヤフオクのページにアクセスしたいんだけど、
通常のページなら問題ないけどアダルトカテゴリの場合ログインしてくださいとなる
この場合ログインなしで対処することはできますか?
0776デフォルトの名無しさん (ワッチョイ b75f-mZAX)
垢版 |
2020/02/06(木) 00:07:34.22ID:UYgbv9bH0
fopenでファイルに書き込んでいたのですが
突然文字化けするようになったのですが
ファイルも送信もUTF-8なのですが
$str = mb_convert_encoding($str, "UTF-8");
のようにする必要性も感じないのですが
これはサーバー側の問題なのでしょうか
0778デフォルトの名無しさん (ワッチョイ ffa7-QQjh)
垢版 |
2020/02/06(木) 12:12:05.29ID:NnjjFI0X0
>>773
どういう目的で取得するのかしらんけど
googleのキャッシュならそこそこ取れてるようだから
そこに欲しい情報があれば検討したら?
https://webcache.googleusercontent.com/search?q=cache:https://page.auctions.yahoo.co.jp/jp/auction/u332334293
まあ普通にログインしてやればいいと思うけど
ヤフーにcaptcha認証なんてあったっけ?記憶にないな

しかしなんだねこのいかがわしい人形はw
0779デフォルトの名無しさん (ワッチョイ 7f89-IOUD)
垢版 |
2020/02/06(木) 17:18:10.95ID:mIIVuTqX0
>>778
検索かけて出てきた商品情報から希望要項に合うものピックアップし、
その中にある画像をまとめて表示させるて一気に見たいと思って作ってた
そしたら呼び出せない項目があって内容見てたらアダルトカテゴリに該当するものだった

キャッシュ必要だと使うのは難しいな
0780デフォルトの名無しさん (ワッチョイ 9701-YmmE)
垢版 |
2020/02/06(木) 21:08:13.30ID:qcCZ1na20
返り値が空と表示されるのですがどうすれば治るのでしょうか?
0781デフォルトの名無しさん (ワッチョイ 9701-L9ne)
垢版 |
2020/02/06(木) 22:00:14.76ID:qcCZ1na20
空だと表示される原因としてmariadbの設定を適当にしてしまった
phpadminを使用している時のユーザー名パスワードとmariadbを作成した時のパスワード又はユーザー名が全く別のものだと考えられるのですが原因はやっぱりこれでしょうか?
0782デフォルトの名無しさん (ワッチョイ 9701-L9ne)
垢版 |
2020/02/06(木) 22:02:13.41ID:qcCZ1na20
コマンドプロンプトで消せと書いてあるんですがデータのみインストールでzipからインストールしなかった場合消せるのでしょうか?
0786デフォルトの名無しさん (オッペケ Sr0b-B6qE)
垢版 |
2020/02/08(土) 09:15:29.74ID:dJyCpuORr
mysqli関数使ってるんだが、PDOについて質問です。

別のDBMSに乗り換えるときに便利、みたいな記事をよく見ますが、DBMSごとにSQL文の制約が少しずつ違いますよね?

この差はPDO自体は吸収できませんよね?コードで分岐するしかないんですよね?

すると、MySQLしか使わない限りは、PDOを使うメリットって何でしょうか?
0788デフォルトの名無しさん (ワッチョイ d7a7-QQjh)
垢版 |
2020/02/08(土) 14:08:52.88ID:iOIJiyGE0
>すると、MySQLしか使わない限りは、PDOを使うメリットって何でしょうか?
自分で使うもので将来的な移行もありえないならメリットは特にない
pdoのほうがよりモダンなコードで書けるぐらいか
パフォーマンスは公式にも書いてるけどどのAPI使ってもほぼ同じで誤差程度
0791デフォルトの名無しさん (ブーイモ MM0e-gsGW)
垢版 |
2020/02/12(水) 17:49:58.19ID:qFSwmyrvM
アップロードしたファイル名をDBに書き込んでファイルはtmpディレクトリに保存しておくときって
ファイルの名前はハッシュ値に変えるべきかそのままのファイル名で処理するかどっちがいいの?
0793デフォルトの名無しさん (ワッチョイ 5eda-OxJ8)
垢版 |
2020/02/15(土) 18:10:33.43ID:ndNA2Bw/0
下記記述のようにグローバルな場所で $arr を出力することはできたのですが、
関数の中で出力するとエラーになってしまいます。
PHPだと親に位置する変数って参照できないのでしょうか?


$arr = [
'a' => 1,
'b' => 2
];
var_dump($arr);

function test() {
var_dump($arr);
};
test();
0796デフォルトの名無しさん (ワッチョイ 8689-RqZf)
垢版 |
2020/02/15(土) 22:52:13.91ID:wgObr5UE0
質問です。
色の近さを測る方法ってあるでしょうか?
例えば、
A.#4169e1 B.#ff7f50 C.#dc143c
があった場合、Cにより近い色はAとBどちら?
といった感じで使いたいです。
0797蟻人間 ◆T6xkBnTXz7B0 (ワッチョイ a701-ZWcj)
垢版 |
2020/02/15(土) 23:32:30.86ID:f7hi9XcW0
色コードといえば、RGBとかHSVとかCYMKとか習うと思うけど、これらは数学的にいうと、(ベクトル空間みたいな)色空間上の位置を持った点を意味する。
色の近さは色空間での2点間の距離の長さ。というわけで、色空間と距離の定義しだい。
0799デフォルトの名無しさん (ワッチョイ 8689-RqZf)
垢版 |
2020/02/16(日) 00:14:57.82ID:KR6y1seH0
思った以上に難しそうだな…
16進数だからC-AとC-Bを行い絶対数の小さい方が似てる色くらいに思ってたぜ
0802デフォルトの名無しさん (ワッチョイ 46ca-MwwC)
垢版 |
2020/02/16(日) 03:32:24.89ID:Tw+Vg2AB0
色の近さの判断基準が分からんとな。
とにかくRGBをHSVなりに変換したとして、
色相(H)が近ければ濃さ(S)や明るさ(V)はどうでもいいのか?
どうでもよくないならそれぞれのパラメータの重みを決める必要があるな。
0806デフォルトの名無しさん (ブーイモ MMa7-mtzg)
垢版 |
2020/02/21(金) 10:38:09.06ID:uhz6TO4QM
csvをアップロードして中身読み込んで確認画面を出して問題なければDBに登録する仕組み作ってるんですけど
ページ間のデータ渡しって2Mくらいのそれなりに大きいデータでもセッションで大丈夫ですか?
0807デフォルトの名無しさん (オイコラミネオ MM47-1Tph)
垢版 |
2020/02/21(金) 11:04:55.83ID:KI0NB2iSM
セションの中身はディスクに書いてるんだろうから、2MBくらいなら保存自体の問題は無いんじゃね。
でも不要になったらセッションからさっさと削除しないと、毎回そのデータがメモリにロードされることになる。
セッションとは別に一時ファイルに書き出してそのファイル名をセッションで保持するのがスマートな気がするけど、一時ファイルの掃除の方法を別途考えないといけないのが面倒だな。
0810デフォルトの名無しさん (ワッチョイ 8f89-sS5o)
垢版 |
2020/02/23(日) 17:03:54.18ID:LPteoL8J0
preg_match_allを使ってリンク先が画像のURL取得したいんだけど正規表現がわかりません。

これを↓
<a href="http://img.hoge/001.jpg"; target="_blank">
こうしたい↓
http://img.hoge/001.jpg
作ってみたのがこれ↓
preg_match_all('/href="(.*?)(jpg|jpeg|png)?"/', $html, $imgurllist);

わかる方いらっしゃいました教えて下さい。
0813デフォルトの名無しさん (ワッチョイ a3a7-icXw)
垢版 |
2020/02/23(日) 18:39:43.25ID:p2aTkQco0
なんでもかんでも正規表現でやらんほうがいいよ
ちゃんとしたの書くの難しいし何より自分がわからないのは良くない
多少時間はかかるかもしれないが
getElementsByTagName('a')->getAttribute('href')でa hrefのリストとってきて
1個ずつpathinfo['extension']を見ていく感じ
pathinfo['extenstion']の?以降を除外してstrtolowerで拡張子小文字にした上で
in_arrayあたりで比較すればいいんでは?
0820デフォルトの名無しさん (ワッチョイ ffad-C6+A)
垢版 |
2020/02/23(日) 21:13:29.11ID:0sUq9sLC0
>>818
自分が有能と勘違いしてるプログラマにありがちだな
教えて→こんなこともわからないの?底辺!→はよ教えて→考える力が身につかないよ!自分でやれ!→はよ教えて→無言で逃走
0821デフォルトの名無しさん (ワッチョイ 6fda-Nz9x)
垢版 |
2020/02/23(日) 21:37:24.28ID:rIVuphj20
先輩が書いたコードを見ると $_SERVER などの取得する値に対して
urldecode やら isset やらで本当にその値か正しいものかどうか、セットされてるかどうか
毎度調べてるようなのですが、正しくない場合の事例が書いてあるサイトってありますか?

また、この手のエスケープや存在確認やらがまとめてあるサイトもあれば教えていただけますでしょうか。
自分では追っかけきれず、毎度先輩に迷惑掛けてしまっている状態で申し訳ないっす…
0823デフォルトの名無しさん (ワッチョイ 3308-p4c1)
垢版 |
2020/02/24(月) 11:46:26.32ID:/D+Ss1rU0
>>821
$_SERVERで取れるのは環境変数
環境変数って言うぐらいだから、その値が必ずある保証なんてないし、めちゃくちゃな値をセットする事もできる

例えば
$_SERVER['HTTP_USER_AGENT']
とかな。自分でめちゃくちゃな値をセットして自分で実験してみたらいい

isset()なんか使わんけどねw
あるか無いか分からない時は getenv() 使えばいい

urldecode()にいたっては検証用の関数ですらない
URLエンコードされたデータをデコードしてるだけ

なんていうかHTTPの基礎から理解できてない
とりあえずGoogle Chromeのデベロッパツールでも眺めてHTTPの流れから理解した方がいいんじゃね?
0824デフォルトの名無しさん (ワッチョイ 3308-p4c1)
垢版 |
2020/02/24(月) 11:58:40.79ID:/D+Ss1rU0
>>818
ペチパーはクソ正規表現をネットに載せるな!って昔からよく馬鹿にされるからなぁ…

まずは>>813のようにHTMLをパースする別の手段を検討すべき
その上であえて正規表現を選ぶってのなら別にいいけどさ
0825デフォルトの名無しさん (ワッチョイ 3308-p4c1)
垢版 |
2020/02/24(月) 12:00:32.05ID:/D+Ss1rU0
>>810
くそ適当に書くけど

$html = '<a href="http://img.hoge/001.jpg"; target="_blank">';

preg_match_all('/href\s*=\s*([\'"])(.+?\.(?:jpe?g|png))\\1/i', $html, $match, PREG_SET_ORDER);
print_r($match);

・大文字小文字の考慮
・スペース文字の考慮
・シングルクォートで挟むのかダブルクォートで挟むのかの考慮

正規表現を使うならせめてこれぐらいはしようよw
0827デフォルトの名無しさん (ワッチョイ 8f89-sS5o)
垢版 |
2020/02/24(月) 12:27:06.58ID:bCyGnyrg0
>>810です。
皆様ありがとうございます。
勉強不足であると実感しました。
URL取得はうまくいきました。
0831デフォルトの名無しさん (ワッチョイ 3308-p4c1)
垢版 |
2020/02/24(月) 19:35:47.79ID:/D+Ss1rU0
>>830
上のタブでNetworkを選んでHeadersのところを見る

Request Headersに書かれてるのが、ウェブサーバに対するHTTPリクエストの内容

例えばそこにAccept-Encoding: gzip とあれば
ウェブサーバがそれを見てコンテンツをgzip圧縮してレスポンスとして返す
そしてウェブブラウザがそれをデコードして元に戻す

User-Agentなんかも書かれてるはず


Accept-EncodingにせよUser-Agentにせよあくまでも自称であり、
そこには嘘でもめちゃくちゃな文字列でもなんでも書けるんだよ
だから値を信用したら駄目ってこと
0832デフォルトの名無しさん (ワッチョイ 3308-p4c1)
垢版 |
2020/02/24(月) 19:42:59.09ID:/D+Ss1rU0
>>830
自分でHTTPクライアントを作ってみるのが一番いい
fsockopen()やstream_socket_client()あたりでサーバに接続して
HTTPの命令を送ってレスポンスを受け取るみたいなコードを書けばHTTPの流れは一発で理解できる

「PHP stream_socket_client HTTP/1.1」とか適当にググったら、たぶんサンプルコードは見つかるはず
0833デフォルトの名無しさん (ワッチョイ ff2c-lQWV)
垢版 |
2020/02/24(月) 20:05:32.49ID:ZFXUbFog0
漏れは、5ch の投稿から、画像のリンクだけを取り出すために、
Ruby で、こういうモジュールを作っている

module MyUtility
require 'uri'

@@EXTS = %w(png jpg jpeg gif) # 画像の拡張子

# 画像の拡張子かどうか?
def check_picture_extname? ( picture_url )
return false if picture_url.empty?

begin
uri = URI.parse picture_url
rescue # 半角以外の文字
return false
end

file_name = File.basename(uri.path) # ファイル名
file_extname = File.extname(file_name) # 拡張子
return false if file_extname.empty?

# . を削除して、小文字にする
file_extname.delete!(".").downcase!

@@EXTS.include? file_extname # 含まれている?
end

module_function :check_picture_extname? # 公開
end
0838デフォルトの名無しさん (ワッチョイ 4f89-x1Qw)
垢版 |
2020/03/07(土) 21:24:50.43ID:0OcB8lvE0
質問です。
テキストファイルにキーワードが書いてあり、
それを読み込んで一致する文字列があったらtrueを返します。
しかし、たまに一致箇所があるにも関わらずスルーされる場合があります。
なぜでしょうか?
判定は↓のような感じです。
strpos($str,'キーワード') !== false
0839デフォルトの名無しさん (ワッチョイ 9fad-j73r)
垢版 |
2020/03/07(土) 22:30:19.72ID:olnFzWkU0
>>838
再現性のある最小コードをどうぞ
$strとキーワードじゃエスパーじゃないと分からん
0841デフォルトの名無しさん (ワッチョイ 4f89-x1Qw)
垢版 |
2020/03/07(土) 23:48:46.74ID:0OcB8lvE0
すみません。
解決しました。
原因は、テスト用のフォルダのパスのままになっていたことと
試運転時のデータが一部使われていた事により
一部検出されていないというおかしな状態になっているということでした。
0843デフォルトの名無しさん (ワッチョイ 4bda-R/kF)
垢版 |
2020/03/08(日) 16:38:04.82ID:o6nDRKvt0
die();
exit();
exit は言語構造です。 status を指定しない場合は括弧なしでコールできます。

って今知ったわー
0844デフォルトの名無しさん (ワッチョイ 86da-drwQ)
垢版 |
2020/03/13(金) 02:12:30.03ID:iVXMMcFW0
foreach ($this->_db->query($sql) as $v) {...}

query()やprepare()で準備した文はexecute()必須だと思ってましたが
↑の記述ではexecute()なしでSQL文を実行できているようでした
何故でしょうか?
0846デフォルトの名無しさん (ワッチョイ 69f1-ZSAD)
垢版 |
2020/03/13(金) 13:42:16.08ID:3oUhS72l0
->
=>

がよく混同する。
どれがどの用法かを一発で覚える方法ある?
数ヵ月以上使っていなかったり他言語やってたりすると覚えるのは困難。
0847デフォルトの名無しさん (ワッチョイ 86da-drwQ)
垢版 |
2020/03/14(土) 09:55:43.61ID:Vu/3uGwv0
>>845
どうも
$sql のSQL文は下記なのですが、直接実行できるときとできない場合の
見分け方ってありますでしょうか?
$sql = "select answer, count(id) as c from answers group by answer";

bindValue() とかをかましているときに execute() 使っているようなので
プレースホルダの置換しなければおk的な感じなのでしょうか?
0849デフォルトの名無しさん (ブーイモ MM8d-ZSAD)
垢版 |
2020/03/14(土) 12:06:04.05ID:ftz/XzuIM
>>846
いまだ自己解決しません
0850デフォルトの名無しさん (ワッチョイ 068c-WOeG)
垢版 |
2020/03/14(土) 19:01:35.17ID:B3THKCTN0
>>846
->これはアロー演算子だから
オブジェクトとかクラスとか呼び出したときにメソッドを呼び出すときに使うから
クラス名->メソッドとかで
=>これは普通の演算子以下とか以上とかで使うやつだから
0852デフォルトの名無しさん (ブーイモ MM8d-ZSAD)
垢版 |
2020/03/14(土) 19:58:46.89ID:hEp1GdU0M
>>850
このウソつきめ
0853デフォルトの名無しさん (ワッチョイ 7d02-FfQu)
垢版 |
2020/03/14(土) 20:34:45.23ID:GFwOalat0
>>850
You are a liar!
0854デフォルトの名無しさん (ワッチョイ 068c-WOeG)
垢版 |
2020/03/15(日) 12:42:37.91ID:dxrxQoIU0
>>850
間違ってたわ、=>これは配列で添字で関係持たせるときに使うやつだったわ
謝罪しておきます
0856デフォルトの名無しさん (ワッチョイ 69d2-WWFo)
垢版 |
2020/03/16(月) 05:40:39.73ID:3OE3knP80
>>846
-> は「の」
=> は「は」
0857デフォルトの名無しさん (ワッチョイ 69f1-5Ayy)
垢版 |
2020/03/16(月) 10:12:02.17ID:n/UZHZ/90
>>856
その説明ではわかりません。

まず
・象は鼻は長い
・象の鼻は長い
の違いを教えてください
0860デフォルトの名無しさん (ワッチョイ 1389-xsY/)
垢版 |
2020/03/22(日) 17:15:31.58ID:R2yf6A3f0
質問いいでしょうか?
ローカル環境XAMPPで動かしています。
外付けHDDから画像を表示させようとしたところ見つからないというエラーが出ました。
[an error occurred while processing this directive] 要求された URL は本サーバでは見つかりませんでした。 もし手入力で URL を入力した場合は、綴りを確認して再度お試し下さい。 [an error occurred while processing this directive]

リンクをコピーで確認したところURLの前に「http://localhost」が勝手に追加されていました。
これのせいで上手く表示されていないようです。
なんとかして画像を表示させる方法はないでしょうか?
0863デフォルトの名無しさん (ワッチョイ 1389-xsY/)
垢版 |
2020/03/22(日) 18:26:04.76ID:R2yf6A3f0
ウ〜ンやっぱ無理か
一時的にコピーくらいしか思いつかんな
データとして貼り付けるにして多いし重すぎる
0866デフォルトの名無しさん (ワッチョイ 1389-xsY/)
垢版 |
2020/03/22(日) 22:18:36.23ID:R2yf6A3f0
>>865
フルパスでやってる
ドライブ跨ぐと駄目なんだろうな
0868デフォルトの名無しさん (ワッチョイ fbda-ED79)
垢版 |
2020/03/22(日) 22:54:04.30ID:D4yHaglA0
相乗りで質問させてください。

>>867 のリンク先に書いてあるような設定を済ませて、chromeでは〇〇〇.localhostといった
URLで開けるようになったのですが、それ以外のブラウザではエラーが出てしまい開けません。
改善方法はありますでしょうか?

PHPと関係ないかもしれませんが、該当スレも見当たらず…
どうかご回答よろしくお願いいたします。
0871デフォルトの名無しさん (ワッチョイ 8b2c-cvBQ)
垢版 |
2020/03/23(月) 07:16:27.59ID:jGS2rL5b0
Windows 10, WSL, Ubuntu 18.04 で、Ruby なら、Linux 側で、
1-liner で、Rubyで作られた遅いウェブサーバー、WEBrick が起動する

ruby -run -e httpd . -p 8080

そのフォルダに、index.html があれば、
Windows側から、これでブラウザでアクセスできる

http://localhost:8080

Linux側も、C ドライブ内にあるからかな?

アクセスするサーバーが、どのドライブのどのフォルダ内を、
カレントディレクトリとして起動したか
0872デフォルトの名無しさん (オイコラミネオ MM55-94HG)
垢版 |
2020/03/23(月) 21:22:44.81ID:w/tA8drNM
2ch風の掲示板を作ってます。
datファイルで一行に名前・メール・メッセージと管理用のIDやらを
記述するやり方で、レスアンカーやurlをループ処理の中で出力時に
aタグで囲む方法が思い付きません。

正規表現でメッセージから有無の判定はできましたが、そこから先で詰まってます。
ヒントをください。
0876デフォルトの名無しさん (ワッチョイ b6da-Cd0d)
垢版 |
2020/03/25(水) 23:42:46.36ID:YJCiq0GG0
>>874
下記記述で行けました。
本当にありがとうございました(涙)
preg_replace('/&gt;&gt;([0-9]{1,3})/', '<a href="#$1">>>$1</a>', $message);

ちなみにセキュリティに対して理解が浅すぎるのですが、渡ってくる文字列に対して警戒していればおkで
置換でa要素を使ったり、HTMLエンティティ対象の文字列をそのまま書いても大丈夫なのでしょうか?
0877デフォルトの名無しさん (ワッチョイ b1a7-B4Y8)
垢版 |
2020/03/26(木) 08:37:27.85ID:uQPl4pkP0
5chはテキストログで1レス1行が都合が良さそうなのと区切り文字が必要になるので
そのへんの改行(<br>)と区切り(<>)考慮するとエスケープ済みのほうが扱いやすい
ただ欠点としてはログサイズが肥大する
もちろん必要最小限のエスケープでもできるけどめんどくさいので完全再現じゃないが

ログ保存時
$message = preg_replace('/\r?\n/', '<br>', htmlspecialchars($_POST['message'], ENT_QUOTES, 'UTF-8'));

出力時
$message = preg_replace(['/&gt;&gt;([0-9]{1,3})/', '%(https?://[^\s&]+)%'], ['<a href="#$1">&gt;&gt;$1</a>', '<a href="$1">$1</a>'], $message);

とかなんじゃないかなと
リンクつける仕様上一旦エスケープしたのを戻す箇所があるので
そこでXSSを成立させないよう注意してコーディングする必要がある
エスケープ済みの文字は&lt;や&quot;のように&がつくので
[^\s&]のとこのように&でぶったぎるのが簡単
ちなみにurlの複数パラメータでも使われる&の扱いは面倒なので適当だけど
>>835のように&でリンク切れてるの見る限り5chも適当なのでおkってことで
0878デフォルトの名無しさん (ワッチョイ b6da-Cd0d)
垢版 |
2020/03/26(木) 22:20:23.54ID:pJp2pNNg0
>>877
詳しくありがとうございます。
5chのログの内容は最初にチェックしてたはずなのに、すっかり忘れてました。
再度確認したところ、エスケープ処理済みな上にタグまで付いてました…

てっきり出力前にエスケープするのがPHPのルールだと思ってたのですが、
まさか事前にエスケープしておくとは…

出力時のpreg_replaceも配列にすれば一回で済むのですね…
レスアンカーとリンクで分けてました

>>835のリンクについては、専ブラで見てたので気づきませんでした。
直リン避けも考慮してhttps://まで見て、後は半角英数なら置換対象に
してしまおう!…って感じで雑に考えてました。
preg_replace('/(h?ttps?:\/\/[-_.!~*\'()a-zA-Z0-9;\/?:@&=+$,%#]+)/', '<a href="$1">$1</a>', $replaceMessage);

凄く参考になりました。
どうもです。
0879デフォルトの名無しさん (ワッチョイ 09da-Cd0d)
垢版 |
2020/03/29(日) 10:25:07.65ID:wUzzaaBN0
文字列と多次元配列の値に対して一括で処理できるメソッドで質問です。

下記メソッドで$hogeに多次元配列が渡ってきたと仮定しまして、
値が配列であれば再起処理でメソッドが再度呼び出されるそうです。

私の考えでは、再起処理で多次元配列の中の値が配列ではなかったときは、
Aの文字列の方に流れるのではと思っていたのですが、実際は@に流れるようです。

多次元配列の中の文字列にis_array()を掛けてもfalseなのですが、どういった理由で
@に流れるのでしょうか?

function test($hoge) {
 // 配列の場合
 if (is_array($hoge)) {
  foreach ($hoge as $key => $value) {
   // 再起処理
   if (is_array($value)) {
    test($value);
   }
   // @配列の中の値が配列でない場合
   else {
    ...
   }
  }
  return;
 }
 // A文字列の場合
 return;
}
0880デフォルトの名無しさん (ワッチョイ b1d2-pf+t)
垢版 |
2020/03/29(日) 12:47:17.78ID:XdbgZgVO0
@は再帰呼び出しで、Aは再帰の終了条件だね。
配列の中に配列があったときは@が呼ばれるようになってる。
再帰を一度じっくり勉強したほうがいいよ。誤字も含めて。
0881デフォルトの名無しさん (ワッチョイ 09da-Cd0d)
垢版 |
2020/03/29(日) 14:07:51.77ID:wUzzaaBN0
>>880
誤字失礼しました。

どうにも理解できなくて、再度質問しようと文字に起こしていたところ自己解決できました。
Aは文字列専用の終了条件で@は配列専用の終了条件だったようです。

再帰処理の際に値が文字列なのに、何で配列判定で true が出るのだろう?
というところが疑問だったのですが、
本来であれば配列の中の配列である [] で再帰処理されるところを、その中の値Bで
再帰処理されていると勘違いしておりました。

ご迷惑おかけしました。

$hoge = [
 'piyo1',
 'piyo2',
 [
  // B
  'piyo3'
 ]
];
0882デフォルトの名無しさん (ワッチョイ adda-Cd0d)
垢版 |
2020/03/29(日) 15:05:54.62ID:r8VR5IyJ0
書き方としては終了条件を早期returnして終了するべき(そうじゃないとひどく読みにくい)

一般化するなら

function apply_recursively($target, callable $callback) {
if (!is_array($target)) {
return $callback($target);
}

return array_map(function ($target) use ($callback) { return apply_recursively($target, $callback); }, $target);
// return array_map(fn($target) => apply_recursively($target, $callback), $target); // -> for PHP >= 7.4.0
}
0883デフォルトの名無しさん (ワッチョイ a9ca-Emx9)
垢版 |
2020/03/29(日) 19:30:19.50ID:KCykJRwi0
>>879
foreach 直後の if は不要で無条件に test($value) を行い、
Aは else にして @ に書いてた処理を書き、
関数の引数は function hoge(&$value) で参照で受けとるようにし、
foreach も foreach($hoge as &$value) にする。
こうしないと動かなくない?
0885デフォルトの名無しさん (ワッチョイ 4f5f-JsNC)
垢版 |
2020/04/11(土) 19:45:53.72ID:9fxAF0s30
phpのechoを使ってルートフォルダからの絶対パスを指定して
ナビ部分のリンク変更をサイト全体に一括で行えるような書き方を教えてください

3年くらい前にやってたんですが
やり方がわからなくなってしまいました
0886デフォルトの名無しさん (ワッチョイ 6fa7-kpEi)
垢版 |
2020/04/12(日) 01:01:57.54ID:9sN7iYc+0
>>885
echoにそんな機能ないし、何が聞きたいのか伝わらないと思う。

find(grep)+sedのような、ファイルの中身に特定の文字列があれば、
それを一括で書き換えるようなことをしたいわけでもなさそうだし、
何かナビ用のリンクのリストをincludeしてるなら、
そのリストの中身を書き換えろで終わる話だけど、そんな簡単な話でもなさそうだし。
0887デフォルトの名無しさん (ワッチョイ 4f5f-JsNC)
垢版 |
2020/04/12(日) 07:18:43.42ID:xGytKmNW0
細かく言いますと
一時期Web製作会社でコーディング業務をしており
html/cssは扱えるのですがphpはヘッダー、ナビ、フッターなど共通部分をincludeフォルダで共通化できる程度しか扱えませんでした

そして自社のドメインのサブドメインでテスト環境を作り、そこでHPを作成して客先の本番サーバにアップロードという工程で納品、保守管理をしていました

その場合、リンク先を絶対パスで書けないので相対パスにする訳ですが
phpで常にルートフォルダを取得して書き出し、それに続けて下層のリンク先を明記するようにしていたんですが
そのやり方を忘れてしまったので教えて欲しいのです
0889デフォルトの名無しさん (ワッチョイ f7da-AglQ)
垢版 |
2020/04/12(日) 11:56:55.73ID:+wetVu4e0
2ch風の掲示板を作っており、考え方についてアドバイスをいただきたいです。

ログファイルでレスを記録して、1レス1行で構成されています。
ajaxを用いて遷移なしでの投稿反映と、レスアンカーにホバーすると、該当のレスを引っ張ってくる
ようになっています。

このレスアンカーへのホバーを行うと、当たり前なのかもしれませんが、添付の画像のように
どんどん_ajax.phpのファイルへのアクセス?が増えていってしまい、投稿ならまだしも、
ホバーするだけでPOSTを行うなんて、無駄な処理をさせているのではないか?
と考え出しております。

ログファイルは数百kb程度なので、投稿内容の全てをJS側で配列で保持をしていく方が
無難だったりしますでしょうか?

ttps://f.easyuploader.app/eu-prd/upload/20200412115052_69364c5954346f304857.png
0892デフォルトの名無しさん (ワッチョイ 6ff1-Xgk8)
垢版 |
2020/04/12(日) 14:43:40.33ID:1ZMEMPeI0
->
=>

この使い分けをよく忘れるのですが
覚えておくコツはありますかね?
メインでPHP言語以外をやってるのでたまにPHP書くときよく混乱します。
0893デフォルトの名無しさん (ワッチョイ 6ff1-Xgk8)
垢版 |
2020/04/12(日) 14:46:43.20ID:1ZMEMPeI0
>>856
「の」はクラス「の」メンバー、
「は」は連想配列のkey「は」これですよ
という意味?

でもこれ以外で->や=>が出てくる場面なかった?
0895デフォルトの名無しさん (ワッチョイ f7da-AglQ)
垢版 |
2020/04/12(日) 16:48:22.18ID:+wetVu4e0
>>894
ども。
おっしゃる通りかもしれません。
投稿以外でサーバーに負荷掛けるより、クライアント側で処理した方が
良い気がしてきました。
1回投稿での文字数を制限してしまえばサイズも制御できそうですし。
0899デフォルトの名無しさん (ワッチョイ 6fa7-kpEi)
垢版 |
2020/04/13(月) 10:11:39.65ID:Hsuo/bvd0
RubyならRubyならってよく布教しに来るけどいい加減場違い空気嫁

>>887
URLの話じゃないでしょ?
内部の話なら別に相対パスにしなくても絶対パスでも問題ないんだけど。
その絶対パスがわからんって話?
自スクリプトから見た自分の絶対パスは__FILE__定数でわかる。
サーバのドキュメントルートが知りたいなら$_SERVER['DOCUMENT_ROOT']
ただしこういう環境変数($_SERVERや$_ENV)はあんまり過信しないほうがいいね。
0900デフォルトの名無しさん (ワッチョイ 77b0-dkLK)
垢版 |
2020/04/16(木) 13:03:40.61ID:emwZ0tr20
Eclipseで参考書通りに
print “¥n”入れてもコンソールで改行してくれないんだけどなんで?
0901デフォルトの名無しさん (ワッチョイ 9fad-9n34)
垢版 |
2020/04/16(木) 17:50:16.15ID:mDx3pHSK0
>>900
OSとか実行コードくらい書けないのか
あと円マークがそのまま出てるようなら
正しくは「(日本語環境では円マークに見える』バックスラッシュだから」
を確認しろ
0903デフォルトの名無しさん (ワッチョイ 77b0-dkLK)
垢版 |
2020/04/16(木) 22:40:26.71ID:emwZ0tr20
OSはMac
eclipseでphp7
<?php
print “hello”;
print “¥n”;
print “world”;
print “¥n”;
?>
Kindle Unlimitedの参考書によるとこれで
hello
world
と出力されるみたいなんだけど実行すると
hello¥nworld¥n
ってなる
0905デフォルトの名無しさん (ワッチョイ ff2c-8Jcx)
垢版 |
2020/04/16(木) 23:11:06.27ID:tywb42E30
これを、Ruby で、実行してもエラーになる!
print “\n”;

基本的にプログラミングは、どの言語でも、半角英数字しか使えない。
全角文字のクォーテーション・全角空白なども使えない

\ も、日本語キーボードでは、バックスラッシュキーのこと!
\ という文字を使っちゃいけない!

これなら、Ruby でも改行される。
print "\n" ;
0907デフォルトの名無しさん (ワッチョイ 77a7-csEB)
垢版 |
2020/04/17(金) 06:24:31.98ID:9clD5XXx0
半角で書くべきとこを全角で書いてるのは
動いてるようだから書き込んだときのミスとして
文字コードがおかしいんだろう
文字コード変えるか\nやめてPHP_EOLにしとけば
0911デフォルトの名無しさん (ワッチョイ 1701-QEis)
垢版 |
2020/04/19(日) 14:20:56.44ID:26zoB4wU0
可能アルヨ
0913デフォルトの名無しさん (ワッチョイ 1701-QEis)
垢版 |
2020/04/19(日) 23:14:11.96ID:26zoB4wU0
定期実行されるクローラーとかのこと言ってるんじゃないの?
0914デフォルトの名無しさん (ワッチョイ 77a7-csEB)
垢版 |
2020/04/21(火) 16:09:14.67ID:DLCfuoS50
個人的にPHPでサーバ書いてるんでそれはよくやってる
ただPHPに限った話じゃないけどその手のバックグラウンド実行は
普通のレンタルサーバだと一定時間でkillされるだろうね
0915デフォルトの名無しさん (ワッチョイ 0de1-HPZ2)
垢版 |
2020/04/22(水) 08:46:54.32ID:kEPjMBTM0
定数を、成型した変数を代入することで宣言することはできませんか?

外部ファイル(.csv)を読み込み、連想配列$arrayを作成し、
クラス定数CLASS::CONSTをその配列$arrayにしたいのです
グローバル定数としてdefine(CONST, $array)することも試したのですが、いずれも出来ませんでした
0916デフォルトの名無しさん (ワッチョイ e2ad-h7Ku)
垢版 |
2020/04/22(水) 11:16:41.91ID:/bKUmTE30
それは定数って言わないのでは
0917デフォルトの名無しさん (アウアウウー Sa83-Ha7z)
垢版 |
2020/04/22(水) 19:18:42.44ID:KcrgV6Jha
定数にはコンパイル時定数と実行時定数(immutable, readonly)とがあるが, PHPは基本的にコンパイル時定数しかサポートしていない
実現したいのは後者の実行時定数なんだろうが, 「php readonly」とかでググれば分かるように言語としてはサポートしていない
0919915 (ワッチョイ 0de1-HPZ2)
垢版 |
2020/04/22(水) 23:55:38.61ID:kEPjMBTM0
すみませんできました
defineだと変数渡しで定数を作れました
単にPHP5.6でdefineで定数に配列を入れられないため正常動作しなかったようです
PHP7.3の環境では動作しました
お手数おかけしました
0920デフォルトの名無しさん (ワッチョイ a601-ZzZR)
垢版 |
2020/04/23(木) 08:33:15.04ID:n33m75pH0
ドットインストールでCakePHP勉強するお
0922デフォルトの名無しさん (ブーイモ MMed-enkp)
垢版 |
2020/04/23(木) 09:41:57.79ID:RRYW82KBM
x ドットインストールでCakePHP勉強するお
o ドットインストールでCakePHP勉強するよ

正しい日本語。
最近の日本人は気持ち悪い言葉づかいをする。
0923デフォルトの名無しさん (ワッチョイ a601-ZzZR)
垢版 |
2020/04/23(木) 10:24:36.69ID:n33m75pH0
>>921
Webアプリの仕組み(裏でどう動いているか)を理解したくて、LaravelかCakePHPかで迷ってCakePHPを勉強しようと思ったんだけどLaravelはどう?
0925921 (ワッチョイ 4c2c-Hty+)
垢版 |
2020/04/23(木) 23:07:52.02ID:C0/pHZNH0
web アプリの作り方を学ぶのは、Ruby が最適!

本当は、Sinatra が良いけど、web 上の教科書が少ないから、
Rails になるかな?

ただし、Rails は、半年ぐらい掛けて学ぶぐらい高機能。
本は、10冊ぐらい出てる

web サイトでは、日本語版・Rails チュートリアルの1つ古いバージョンなら、無料で読めるけど、
あまりに難しいので、初心者は本から始めるのが良い
0927デフォルトの名無しさん (ワッチョイ e2ad-h7Ku)
垢版 |
2020/04/24(金) 02:12:49.04ID:rM9gQYtA0
>>926
次からテンプレに入れよう
0928デフォルトの名無しさん (ワッチョイ 4ca7-Op/G)
垢版 |
2020/04/24(金) 02:24:32.60ID:nHNgt9zS0
単に使い方を学びたいと言ってるだけなら別にフルスタックでもいいけど
ソースコードレベルで仕組みを理解したいならフルスタックは疲れるだけ
slimあたりのマイクロフレームワークのソースコード読むといい
0929デフォルトの名無しさん (オッペケ Sr72-Xss7)
垢版 |
2020/04/24(金) 05:55:46.89ID:cuZ5QlOgr
なんで荒らしの相手をするんや。

ホントにRubyが優れとるなら、PHPで書かれた有名ソフトがRubyで書かれなかった理由を提示させるべきや。

WordPressもNextCloudもPHPなんや。Facebookも元はPHPで書かれてた。

PHPerは胸を張って堂々としておけ。小バエが顔の前をうろちょろしても気にするな。
0930デフォルトの名無しさん (オッペケ Srd7-V4ab)
垢版 |
2020/04/26(日) 16:06:33.45ID:EH1DMWp5r
小さなグループのための連絡帳づくりには便利だな
自分も使って現在5人くらいで使っておおむね合格点しかし
「こういう風になってたらもっといいなあ」多数w
0931915 (ワッチョイ 0de1-HPZ2)
垢版 |
2020/04/26(日) 16:37:45.80ID:QChGrgCL0
RubyってPHPと張り合うものだったんだ?
あれはPerlと競合するものだと思ってた
0932デフォルトの名無しさん (ワッチョイ efca-WM26)
垢版 |
2020/04/26(日) 22:04:15.59ID:NZagGUNV0
PHPはごった煮のテンプレートエンジンってイメージだな。
スクリプトのパースがコードではなくテキスト出力から始まるしな。
そこが他のスクリプトと比べてもweb向きに使い勝手がいいところだと思う。
0935デフォルトの名無しさん (ワッチョイ 2701-ur4w)
垢版 |
2020/05/03(日) 11:44:53.69ID:eurrHnV60
下記のような、空以外のstringだけを通し、それ以外はnullを返すメソッドを作りたいんですが、
この処理に最適なメソッド名ってありますか? 暫定のfilterStringは何となく違う気がしてます

function filterString($var): ?string
{
return is_string($var) && $var !== '' ? $var : null;
}
0940デフォルトの名無しさん (ワッチョイ 7f68-8DoZ)
垢版 |
2020/05/05(火) 02:01:57.19ID:2JXMMGLu0
各ページa,bからcページへの遷移を各ページのボタンa,bからとしたときに、ページbのボタン名をページaのものにブラウザのデバックモードかなんかで変更した場合に、
ページcから見るとisset(ボタンA)がtrueとなると思いますが、こういうパターンを見分ける方法ってありますでしょうか
0942デフォルトの名無しさん (ワッチョイ a7a7-D935)
垢版 |
2020/05/05(火) 03:53:04.29ID:abcVn/0z0
と思ったけど、結局リファラも改ざんできちゃうから難しいね
JavaScriptで小細工も出来るけどそれすら改ざんされるのも想定してるなら
まあノーダメならそんな物好きなこと想定する必要はないと思うけど
ダメージあるなら設計変えればいいし
0945デフォルトの名無しさん (ワッチョイ ea02-7oqX)
垢版 |
2020/05/06(水) 19:48:47.60ID:KQs5P28n0
$a = [1, 2, 3];
と言う配列があったとして、そこから
$b[1][2][3] = '何か入れる';
と言う配列を作る簡単な方法はありませんでしょうか?
0947デフォルトの名無しさん (ワッチョイ ea02-7oqX)
垢版 |
2020/05/06(水) 20:03:27.90ID:KQs5P28n0
ごめんなさい、質問の仕方が悪かったです
元の配列の長さは可変で、出来上がる配列の深さも深くなっていく感じです

$ary = [1,2,3]; //長さは可変
$val = '何か';
$ret = func($ary, $val);
var_dump($ret);
---
array (size=1)
 1 =>
  array (size=1)
   2 =>
    array (size=1)
     3 => string '何か' (length=3)
0948915 (ワッチョイ 3fe1-k/Zm)
垢版 |
2020/05/06(水) 23:50:59.56ID:cMx2hlKH0
そういうあり得ないくらい複雑な何かを実装しようとするときは、
実はやりたいことを実現するもっと簡単な方法があることが多い
配列$bは常に1つの次元に1つの要素しか持たないまま深さだけ深くなってくのは無駄というか意味不明
やりたいこと自体を書いた方がいいと思う
0949945 (ワッチョイ ea02-7oqX)
垢版 |
2020/05/07(木) 01:58:37.98ID:T+6y7YdL0
元の配列の値をキーの深さとする配列ができれば、あとはなんとかなるのでその部分だけの質問としたのですが、わかりにくくてすみませんでした
やりたかったことはLaravelのRouteの真似事です
木構造のクラス書いてデータ保持するのも面倒だったので配列でなんとかしようと思いました
ただあまりゴリ押しで書いても見ずらいので既存の関数などで簡潔に書けたらと思い質問した次第です
結局、参照代入をforeahで回すと言う方法で落ち着きました

public static int get($uri, $action)
{
if ($uri == '/') {
$paths[] = '/';
} else {
$paths = explode('/', $uri);
}

$tmp = &static::$routings;
foreach ($paths as $path) {
$tmp = &$tmp[$path];
}
$tmp = $action;

return static::$instance;
}
0950デフォルトの名無しさん (オイコラミネオ MM9b-BAqB)
垢版 |
2020/05/07(木) 10:33:19.60ID:n2/pzMnbM
>>947
そのコードで言うところの func は一応実現してて、もっとシンプルな方法があるかを確認したいの?
それともまだ func を実現できてないの?
参照と再帰を使えば簡単なはずだけど、参照とループを使ってもできるはずだよ。
0953デフォルトの名無しさん (ワッチョイ bea7-C0uG)
垢版 |
2020/05/10(日) 16:35:05.72ID:vZKWBupI0
ざっくり

ブラウザがセキュリティのために(あくまでも独自に)設定している、
同一オリジンポリシーというものがある。
同一オリジンってのは同じプロトコル 同じホスト 同じポートのことで、
同一ドメインでもこれらが違ったら別オリジンということになる。
ブラウザはJavaScriptのXMLHttpRequest(XHR)やFetchAPIから、
別オリジンのサイトには意図的にアクセスしないようにしてある。

その制限を超えるのがCORSで、
あるサイトを開いた時、別オリジンのサイトにXHRなどからアクセスしようとしてたら、
ブラウザは追加のOriginヘッダをつけて、その別オリジンに対して確認作業を行う。
そのサイトがAccess-Control-Allow-Originというヘッダを返してこれば、
意図したものと把握し、制限を超えてアクセスすることになる。

Access-Control-Allow-Originは、
よそのサイトのXHRから呼び出し可能なAPIを提供してる時はつけるべきだが、
よくわかってない人が、自サイトの掲示板でつけてしまった場合、
悪意あるサイトにアクセスするだけで、CSRFが成立して、犯罪予告を書いてしまったりする。
0955デフォルトの名無しさん (アウアウエー Sa52-1T3V)
垢版 |
2020/05/21(木) 20:00:19.93ID:yfswt4qEa
ファンキーさが足りないね
0956デフォルトの名無しさん (ワッチョイ 4e2c-g3Kq)
垢版 |
2020/05/21(木) 20:50:27.91ID:HuNUoNoV0
CORS は、ブラウザでアクセスする人を保護するもの。
サーバー経由にすれば、クロスドメインでもアクセスできる

自分のPC にサーバーを立てて配信する、一番簡単な方法は、
VSCode の拡張機能のLive Server
0958デフォルトの名無しさん (ワッチョイ 5bf1-D4L3)
垢版 |
2020/05/26(火) 12:57:20.59ID:DWJQ5IJN0
<?php
の閉じタグをそれが文末にくるときは省略が奨励されてるのは
どういう理由からですか?
0972デフォルトの名無しさん (ワッチョイ 51f1-Jx8k)
垢版 |
2020/05/28(木) 23:49:50.69ID:rxZlNEYS0
ENT_QUOTESのENTとは何の英単語の略でしょうか?
0974デフォルトの名無しさん (アウアウエー Sa23-hNtB)
垢版 |
2020/05/30(土) 19:49:27.83ID:556K1q3ea
なんで汎用性のある言語はCでできてPHPではできないの?
0980デフォルトの名無しさん (ワッチョイ d312-LwiI)
垢版 |
2020/05/31(日) 14:51:06.35ID:DtypBXIf0
「汎用性のある言語」の意味するところが分からんとなぁ
「CでできてPHPではできない」も, 「汎用性のある言語」をCやPHPで実装する話なのか, CやPHP自体の汎用性の話なのか分からん

前者なら別にどっちでも書けるけどコンパイルするなら最終的にセルフホスティングするだろうし仮想マシンやインタプリタで実行するなら処理系の速度が重要だからCが選ばれるだろう

後者ならCだって何でも出来るのは確かだけど, 低レベルプログラミングには向いてても例えばWebアプリケーション開発には向いてない
Cは汎用的な「システムプログラミング言語」で, PHPは(今は)汎用的な「スクリプト言語」だからそもそも目的が違うとしか
0981デフォルトの名無しさん (ワッチョイ 1689-K9ci)
垢版 |
2020/06/03(水) 09:41:53.03ID:Dz3eZEWL0
質問いいでしょうか?
ローカル環境で動かしています。
昨日macのOSを更新したところ、USBからのデータの取得ができなくなりました。
Warning: file_get_contents(URL): failed to open stream: Operation not permitted
対応方法をご存知の方がいらっしゃいましたら教えていただけると幸いです。
URLの打ちミスやphp.iniの「allow_url_fopen = On」も確認済みです。
macOSはバージョン10.15.5です。
0982デフォルトの名無しさん (ワッチョイ 15f1-GwrY)
垢版 |
2020/06/03(水) 10:12:12.14ID:/BExPaqE0
>> 981
だめだ
質問の許可を確認してからしたまえ
0985デフォルトの名無しさん (ワッチョイ 15f1-GwrY)
垢版 |
2020/06/04(木) 01:20:43.78ID:OPvY9Lkv0
>>984
コツコツがんばるんだ
0991984 (ワッチョイ b9fd-xhRj)
垢版 |
2020/06/04(木) 18:09:53.35ID:5+4XWaYg0
ありがとうございます。
改修なんで選択の余地はないです。
あと、cakephpというフレームワークは
マイナーなんですか?
0993デフォルトの名無しさん (ワッチョイ b908-INBt)
垢版 |
2020/06/04(木) 19:30:46.27ID:O8iG8kTh0
>>991
日本では一番メジャー(だった)
今はLaravelが強いけど

昔からCake使ってる人はテンプレエンジンを使わない傾向があるかな
Cakeにも載せる事はできるんだけどね
Laravelには始めからBladeっていうテンプレートエンジンがついてる
0995デフォルトの名無しさん (ワッチョイ 15f1-GwrY)
垢版 |
2020/06/05(金) 13:01:16.90ID:td6kQI8l0
なぜ人はMacBookProをすすめるのですか?
わたしはずっとWindows使いで新たな学習コストを消費したくないのですが。
0996デフォルトの名無しさん (ワッチョイ 65c4-sznY)
垢版 |
2020/06/05(金) 13:04:55.57ID:BhXHxLMP0
・デバイスとして高品質、見た目も良い
・高解像度ディスプレイが標準のモデルが多い
・デュアルブートが可能で環境選択の幅が広がる

こんなとこじゃない?
使いたくないなら使わなきゃいいじゃん。
学習コストが〜とか言って無駄な書き込みしてる時間的コストはどうでもいいのかな?
0997デフォルトの名無しさん (ワッチョイ 15f1-GwrY)
垢版 |
2020/06/05(金) 13:10:00.56ID:td6kQI8l0
Windowsでも同じ条件を満たしてるじゃないか。
0998デフォルトの名無しさん (ワッチョイ 15f1-GwrY)
垢版 |
2020/06/05(金) 13:11:25.62ID:td6kQI8l0
Macは滅びたほうがいい。
使っている人といない人が混在したら互換性の問題が甚大になる。
1000デフォルトの名無しさん (ワッチョイ 15f1-GwrY)
垢版 |
2020/06/05(金) 14:20:12.90ID:td6kQI8l0
↑この人ハゲ!
10011001
垢版 |
Over 1000Thread
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 554日 21時間 11分 27秒
10021002
垢版 |
Over 1000Thread
5ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。


───────────────────
《プレミアム会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────

会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。

▼ プレミアム会員登録はこちら ▼
https://premium.5ch.net/

▼ 浪人ログインはこちら ▼
https://login.5ch.net/login.php
レス数が1000を超えています。これ以上書き込みはできません。

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