X

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

■ このスレッドは過去ログ倉庫に格納されています
2020/06/05(金) 14:25:26.87ID:RQhNy1WS0
PHPに関する質問スレです

前スレ
【PHP】下らねぇ質問はここに書き込みやがれ 10
http://mevius.5ch.net/test/read.cgi/tech/1543392526/

次スレは>>980以降
本文の1行目に以下を追加すること
!extend:on:vvvvv:1000:512
VIPQ2_EXTDAT: default:vvvvv:1000:512:----: EXT was configured
VIPQ2_EXTDAT: default:vvvvv:1000:512:: EXT was configured
292デフォルトの名無しさん (ワッチョイ 137c-SQv1)
垢版 |
2020/08/08(土) 07:41:30.77ID:B/ZPOvn+0
>>291
「入力フォームを用意して追加」をもう少し詳しく
お願いします
2020/08/08(土) 08:26:54.21ID:XhZjTReF0
>>292
formデータの送信については
https://developer.mozilla.org/ja/docs/Learn/Forms/Sending_and_retrieving_form_data
PHPでの受信については(method=postの場合)
https://www.php.net/manual/ja/reserved.variables.post.php
Laravelなら
https://readouble.com/laravel/6.x/ja/requests.html
取り合えずデータを取得したら、ユーザーの入力したメッセージをデータベースに登録する訳だが
テーブル構成はidをオートインクリメントにすれば、単にメッセージをinsertするだけで新規登録出来る
本来ならバリデーション(エラーチェック)など必要だけどね
登録の一覧を取得するならそのテーブルのidを列挙すればいいだけ
それにそれぞれのリンクを付ければ全ページへの遷移が出来上がる
294デフォルトの名無しさん (ワッチョイ 137c-SQv1)
垢版 |
2020/08/08(土) 09:47:32.72ID:B/ZPOvn+0
>>293
それはmysqlなんかのデータベースを使わないでも
できるんですか???
2020/08/08(土) 11:15:22.29ID:Z8nKWpj+0
まず、Webの仕組みを勉強してきた方が良いよ
PHPやDBの話はその後だ
296デフォルトの名無しさん (ワッチョイ 137c-SQv1)
垢版 |
2020/08/08(土) 11:43:40.01ID:B/ZPOvn+0
>>295
すんません
了解しました
2020/08/08(土) 12:41:36.31ID:XhZjTReF0
mysqlというかデータベースの知識が無いと出来ない訳ではないが
通常はデータベースにデータを保存するのでその辺の意味が分からないなら
データベースやらSQL、PHPでデータベースを扱う為のPDO等を勉強する必要がある

このIDがどうのこうのというレベルなら外からアクセス出来ない場所に
IDのファイルを生成するという方法でも出来るが、ファイルにすると色々問題があるので
(むしろDBでやるより難しい問題がある)そこは考えない方がいいかと思う

一通りwebの仕組みやらを理解していないとそもそもPHPの部分だけコードがあっても何も出来ないので
単に動的なwebページを作りたいだけなら、wordpress等を勉強した方が良いかも知れない
2020/08/08(土) 13:08:57.52ID:pfF9whtk0
smartyよりLaravelの方がいいんかな、、
2020/08/08(土) 14:32:37.96ID:XhZjTReF0
smartyはテンプレートエンジン
Laravelに含まれるテンプレートエンジンがblade
書き方は違うが使い方は似たような感じ
導入はcomposerを使うのが楽かと思われる
2020/08/08(土) 16:13:04.33ID:pfF9whtk0
d
よくわからんのでその辺のキーワードでぐぐって
いろいろ試してみるわー
2020/08/08(土) 18:37:43.59ID:TaplS41H0
動的にwebページを生成?
302デフォルトの名無しさん (ワッチョイ 137c-SQv1)
垢版 |
2020/08/09(日) 19:00:58.47ID:cc0OxtMe0
やっとapacheでphp動いた.....
2020/08/09(日) 20:21:06.55ID:EsmywIKu0
>>278
MySQLはインストール出来たの?
304デフォルトの名無しさん (ワッチョイ 137c-SQv1)
垢版 |
2020/08/09(日) 22:56:13.63ID:cc0OxtMe0
>>303
はぁ
305デフォルトの名無しさん (ワッチョイ 137c-SQv1)
垢版 |
2020/08/09(日) 23:00:16.09ID:cc0OxtMe0
>>304
間違った、まだですわ
306デフォルトの名無しさん (ワッチョイ 137c-SQv1)
垢版 |
2020/08/09(日) 23:09:07.94ID:cc0OxtMe0
>>303
ところで、mysqlなんかのデータベースというものは情報を表に整理して
取り出したり検索したりするために使うって本に書いてたんですけど、
それを使ってどうやって自動でぺーじを作成したりするんですか?
2020/08/09(日) 23:17:51.95ID:3D9Ym6aU0
ページの作成は、君がやるんだよ
2020/08/09(日) 23:26:47.51ID:/po0BMLrM
>>306
自動でページを作成するだけならデータベースは別に必須じゃないけど掲示板を作りたいなら必要です。
データベースって本棚とかタンスとかのイメージで良いですよ
データベースはSQL言語で基本的にやり取りする
入れるinsert
選び出すselect
更新するupdate
削除するdelete
をPHPで駆使してやり取りする
まだまだ先は長そうだね
取り敢えずlocalhostでPHPのファイルが表示出来たんでしたら、
次はまずHTMLのフォームをやらないと
309デフォルトの名無しさん (ワッチョイ 61f1-wC7G)
垢版 |
2020/08/09(日) 23:26:47.87ID:GCJ1ci+/0
このわたしが?
わたしを誰だと思ってるんだ
2020/08/09(日) 23:29:25.72ID:/po0BMLrM
>>309
四ヶ月くらい悩んでる>>218
ってもう5カ月目か
311デフォルトの名無しさん (ワッチョイ 137c-SQv1)
垢版 |
2020/08/09(日) 23:58:38.82ID:cc0OxtMe0
>>308
ありがとうございます👍
312デフォルトの名無しさん (ワッチョイ 137c-SQv1)
垢版 |
2020/08/10(月) 00:02:18.61ID:eVQ5NROO0
>>309
あなただれ?
何に対しての投稿??
2020/08/10(月) 07:09:42.68ID:k2ud7k4K0
Ruby on Rails なら、scaffold とすれば、全自動で、CRUD 処理ができるけど
2020/08/10(月) 07:57:49.90ID:0qF8N4Z/0
文盲ばかりの会話ってこういうことを言うんだな
315デフォルトの名無しさん (ワッチョイ 1bc7-qEq0)
垢版 |
2020/08/10(月) 18:18:24.20ID:rTlZ13Bm0
?php
$hoge = "gufufufufu";
if(strpos($hoge,"g"))
{

echo "true";

}else{

echo "false";
}
?

strposの使い方なんですが、文字列が含まれているはずなのにfalseが返ってきます
これはなぜでしょうか?
316デフォルトの名無しさん (ワッチョイ 1bc7-qEq0)
垢版 |
2020/08/10(月) 18:37:47.44ID:rTlZ13Bm0
ドルつけてたごめん(´・ω・`)
2020/08/10(月) 18:38:45.68ID:BXZAjCBt0
strpos($hoge,"g")が何を返しているかを調べる
そして、その理由を考える
あとは、わかるな
318デフォルトの名無しさん (ワントンキン MM53-IKly)
垢版 |
2020/08/10(月) 20:15:14.58ID:bVpI+4NnM
PHP7を学習中の者です
8.0で仕様、書き方がガラッと変わったと聞いたのですが本当ですか?
2020/08/11(火) 10:36:06.23ID:7m/ufExf0
>>315
そりゃ0を返しているからそうなるだけ
FALSEとイコールで見付からなかったと判定するのが正解
2020/08/11(火) 10:57:15.24ID:7m/ufExf0
>>318の質問でちょっと調べてみたら
>>315のような文字列が存在しているか調べる関数がPHP8で導入されるようで
PHP8ではstr_contains()で書けるようになるらしい
まぁ、確かにこの方が存在しているだけを調べるならスマートではあるね
PHP8になってもプログラマの方はそんなに気にする必要は無いみたいな感じ
321デフォルトの名無しさん (ワッチョイ 1bc7-qEq0)
垢版 |
2020/08/11(火) 11:20:57.46ID:x3iAuc4F0
なぜphpは.ではなく、アロー演算子なんでしょうか?
2020/08/11(火) 11:27:26.60ID:1kHdySm/M
>>321
.ピリオドは文字連結にも使われるので可読性が落ちるから
323デフォルトの名無しさん (ワッチョイ 1bc7-qEq0)
垢版 |
2020/08/11(火) 12:16:30.51ID:x3iAuc4F0
なるほど
なかなか慣れなくて、、、(´・ω・`)
324デフォルトの名無しさん (ワッチョイ 1bc7-qEq0)
垢版 |
2020/08/11(火) 19:10:21.31ID:x3iAuc4F0
strposに関してですが、検索文字列にはてなが指定されていることがあります。
これは一体何をしているのでしょうか。
記号なので検索しづらく、情報が見つかりませんでした。

strpos($target,'?')
こんな感じです
2020/08/11(火) 19:20:21.18ID:gJF+/AhQ0
>>324
指定されていることがありますってなら
実際に使っているソースを見せてくれないか?

一休さんと同じで、出してくれればたちどころに捕まえて見せます、だろう
326デフォルトの名無しさん (ワッチョイ 1bc7-qEq0)
垢版 |
2020/08/11(火) 19:51:57.81ID:x3iAuc4F0
https://ideone.com/gdHAao
https://techacademy.jp/magazine/7525
すみません
このソースの4行目です
ワードプレス関連で、ページ送りに使われています
2020/08/11(火) 19:57:48.63ID:m6hVVdmE0
あんま見ないけど
対象文字列が何であっても全てワイルドカードに変換してるってことかな
2020/08/11(火) 20:22:21.18ID:RdKhLiIu0
ページのリンク形式がqueryかPATH_INFOか判定してるだけでしょ
strposの'?'に特別な機能があるわけじゃない
329デフォルトの名無しさん (ワッチョイ 1bc7-qEq0)
垢版 |
2020/08/11(火) 20:34:17.94ID:x3iAuc4F0
はてなの含まれないurlを判定してるということですね
ありがとうございました
330デフォルトの名無しさん (ササクッテロレ Spf1-pkts)
垢版 |
2020/08/13(木) 17:41:21.72ID:MXf8lpiCp
新しいpcでxamppいれてphp.ini書き換えてもphpinfoに反映されない。旧pcでもダメだった、アパッチ再起動、Loaded file一致も確認してるけどダメ。ネットで調べてもこれ以外で出てこないし、何か分かる方いますか?win10です
php.iniはインストールしてそのままc:¥xampp¥php¥php.iniにあります
2020/08/13(木) 19:24:44.14ID:4EoQL8yn0
phpinfo()で表示されているphp.iniのフルパスを確認した方がいいかも?
332デフォルトの名無しさん (ワッチョイ 4d61-QlkZ)
垢版 |
2020/08/13(木) 20:07:42.50ID:Cfghw1580
まずコマンドライン(php -iや-mなど)で確認できているか?
コマンドラインで確認出来ていて、サービス化すると確認できなくなる場合は、
一度システム再起動の必要になる(Windowsのsvchost?のめんどくさい仕様)。
333デフォルトの名無しさん (ササクッテロレ Spf1-pkts)
垢版 |
2020/08/13(木) 21:01:19.91ID:MXf8lpiCp
>>331
すみません、phpInfo()のフルパスとは何かがわかりませんが、Configuration File(php.ini)PathはC:¥windows、Loaded Configuration FileはC:¥xampp¥php¥php.iniとなっています。前者は初心者ゆえ何のことだかわかりませんが、少なくとも後者のファイルは自分で編集したファイルと一致しているはずなのですが...

>>332
シェルにてphp -i、php -m それぞれ実行しました。が、前者で表示された記載と私が編集したphp.iniの記載が一致していませんでした。

なんにしろxamppも入れたてで入門書やネット情報通りに操作してもうまくいかないので、もっと根本的な部分で誤りがあるのかもしれません。もう少し調べてみます。
2020/08/13(木) 22:49:03.97ID:4EoQL8yn0
>>333
今新規にxampp入れてみて、XAMPP Control PanelのApacheのConfigからphp.iniを選択して
memory_limitを512Mから1024Mに変えて再起動して
http://localhost/dashboard/phpinfo.php
で確認したらちゃんと変更が更新されていたので、それで設定が変えられないなら
個別にphpを入れたものとかあったりしてそれがpathの関係で邪魔しているとかもあるので
一旦全部消してxamppを入れなおせば変な事にはならないと思うが
2020/08/14(金) 00:07:59.91ID:SCMnTycc0
例えば、メモ帳のパスなら、コマンドプロンプトで確認できる。
上に表示される方が、優先される

where notepad
C:\Windows\System32\notepad.exe
C:\Windows\notepad.exe

同様に、where php とやってみれば?

環境変数パスを知らないような人は、システム環境構築運用なんて、とてもできない
336デフォルトの名無しさん (ワッチョイ 46c7-zLXa)
垢版 |
2020/08/14(金) 16:23:54.63ID:gdj6lSjH0
wordpressでfunction phpに以下を記述しました
function hogehoge(){
$hoge = "ほげ";
}

header phpでこれを呼び出しました
?php echo hogehoge().hoge;?
きちんと表示されます

?php echo hogehoge()->hoge;?
しかしこれは表示されませんが、何故でしょうか?
phpはアロー演算子をピリオドの代わりに使うそうですが、、
337デフォルトの名無しさん (アウアウカー Sa69-68fl)
垢版 |
2020/08/14(金) 17:30:27.59ID:XEPDP23xa
>>336
https://techacademy.jp/magazine/19296
-> アロー演算子はその左辺にはクラスのインスタンスを取り、
右辺には左辺のクラスが持つプロパティやメソッドを指定し
プロパティへのアクセス・メソッドの呼び出しを実行します。
338デフォルトの名無しさん (ワッチョイ 46c7-zLXa)
垢版 |
2020/08/14(金) 18:17:39.77ID:gdj6lSjH0
クラスのプロパティへのアクセス方法と、関数のプロパティへのアクセス方法gあ違うのですか?
他の言語だと同じだと思うんですが、アロー演算子の場合、インスタンス化と取り出しを一気に行うということでしょうか?
2020/08/14(金) 19:58:37.47ID:Knkd60VG0
>>336
何がしたいのか良く分からないが
function hogehoge(){
$hoge = "ほげ";
return $hoge;
}

と表示したいものをreturnしてから
echo hogehoge();
とすれば良いだけでは?
340デフォルトの名無しさん (ワッチョイ 46c7-zLXa)
垢版 |
2020/08/15(土) 06:35:37.77ID:OMYcSWb50
クラスや関数の変数にアクセスしたいのです
アロー演算子はインスタンス化も行うのでしょうか
2020/08/15(土) 09:10:22.35ID:fdFbalj40
取り合えず簡単なコード書いてみたけど
https://paiza.io/projects/e/sIu4YD7XajYVl7bDeo-EYg

クラスにする必要があるのならクラスのコードを書いてnewでインスタンスを作成して
メソッド(関数)を呼び出せばいいだけ
staticにすればインスタンスを作る必要はないのでクラス名::メソッド名で呼べる
342デフォルトの名無しさん (ワッチョイ 46c7-zLXa)
垢版 |
2020/08/15(土) 09:21:26.06ID:OMYcSWb50
アロー演算子とピリオドの機能的な違いを知りたいのですが、なんでしょうか?
クラスのメソッドを呼び出す場合はアローで、メソッドからプロパティなどを呼び出す場合はピリオドですかね。
2020/08/15(土) 11:11:58.10ID:fdFbalj40
PHPのピリオドは文字列を連結する演算子で、メソッドやプロパティもstaticでなければインスタンスから
アロー演算子でしかアクセス出来ません(勿論publicでないと呼べません)

メソッドからプロパティを呼ぶという言葉が意味不明過ぎて
勘違い?としてなら良くあるシングルトンの実装で

TestClass::getInstance()->hige();
みたいな事は可能ですがgetInstance()は自身のインスタンスを返すように作って無ければなりません
2020/08/15(土) 12:02:32.14ID:6WbTgz8j0
リクエストで外部キーを引っ張ってくるときに
ddで確認すると数字は取れてるんですが→nullになっていて関数上で使えません。
助けてください。
2020/08/15(土) 12:35:24.61ID:6WbTgz8j0
補足です。
ブレードからコントローラーに値を送る際です。
ショウメソッド的な感じで、新たに自分で作ったメソッドで
インデックスブレードからコントローラーにあるIDを送りたいんですが
ddで見ると一応数字は取れてるのに、=>nullとなっていて
そっから展開が進みません。
助けてください。
2020/08/15(土) 13:04:40.20ID:6WbTgz8j0
自決したっぽいです。
2020/08/15(土) 13:14:03.77ID:0tc6f7mC0
自決は、ちょっと待て
これを見てからにしろ

http://twitpic.com/6ro6ks
348デフォルトの名無しさん (ワッチョイ 46c7-zLXa)
垢版 |
2020/08/15(土) 16:54:55.83ID:OMYcSWb50
>>343
よくわからないですが、一旦飲み込みますです
2020/08/15(土) 17:45:17.35ID:z+dvr5Wj0
id year
1 2003
2 2004
3 2005
4 2006
5 2007
6 2008
7 2009


みたいなテーブルがあるんですが
find($id)でidで探すことは可能なんですが
find($year)で例えば2007で検索しようとするとnullになってしまいます。
yearカラムのデータはstringだったのでintegerに変えたりしましたが解決しません。
どうすればよろしいでしょうか。。
2020/08/15(土) 18:39:34.17ID:fdFbalj40
>>349
Laravelのeloquentでの話とします
find()はidを検索するものなので
yearを検索するなら
where('year', $year)->first()
と書きましょう
2020/08/15(土) 18:47:04.37ID:z+dvr5Wj0
>>350
早速ありがとうございます!!
ご指摘の通りやらせていただいたところ解決致しました(TT)
whereも気になってググってみてはいたんですが使い方がイマイチわからず、、
本当に助かりました。
352デフォルトの名無しさん (ワッチョイ 46c7-zLXa)
垢版 |
2020/08/17(月) 04:54:24.89ID:nU1LGxzf0
https://ideone.com/4IX092
htmlタグはすべてphp内に書くべきなんでしょうか?
どちらの書き方がいいですか?
353デフォルトの名無しさん (ワッチョイ 46c7-zLXa)
垢版 |
2020/08/17(月) 05:11:52.46ID:nU1LGxzf0
?php
$tag = "<p>"{0}"</p>";

echo $tag.format("hoge");


formatなのですが、これで波括弧がunexpectedになるのは何故でしょうか?
354デフォルトの名無しさん (ワッチョイ 46c7-zLXa)
垢版 |
2020/08/17(月) 05:12:19.85ID:nU1LGxzf0
失礼 これでした
$tag = "<p>".{0}."</p>";
2020/08/17(月) 07:39:28.83ID:9mJqNW620
>>352
Ruby では、ERB という埋め込みテンプレートエンジンがあって、
HTML ファイル内に、Ruby のコードを埋め込める

<% 式 %> では、表示せず、単に式を実行するだけ。
<%= 式 %> では、式を実行して、その結果を表示する

<ul>
<% [ 1, 2, 3 ].each do |num| %>
<li><b><%= num %></b></li>
<% end %>
</ul>

結果
<ul>
<li><b>1</b></li>
<li><b>2</b></li>
<li><b>3</b></li>
</ul>
356デフォルトの名無しさん (ワッチョイ 46c7-zLXa)
垢版 |
2020/08/17(月) 08:44:55.76ID:nU1LGxzf0
いえ、phpです
2020/08/17(月) 10:02:01.39ID:9mJqNW620
できる限り、Ruby に似せて書けばよい

その方が、可読性が高い
2020/08/17(月) 10:16:02.28ID:R6L6Ndbb0
>>353
どこの言語からやってきたのか分かりませんが・・・
PHPではsprintf()か変数展開で可能
$hoge = 'hoge';
echo sprintf('<p>%s</p>', $hoge);
または
$hoge = 'hoge';
echo "<p>$hoge</p>";
359デフォルトの名無しさん (ワッチョイ 46c7-zLXa)
垢版 |
2020/08/17(月) 10:31:15.34ID:nU1LGxzf0
pythonと勘違いしてました、、
360デフォルトの名無しさん (ワッチョイ 46c7-zLXa)
垢版 |
2020/08/17(月) 10:46:06.64ID:nU1LGxzf0
https://wpdocs.osdn.jp/%E9%96%A2%E6%95%B0%E3%83%AA%E3%83%95%E3%82%A1%E3%83%AC%E3%83%B3%E3%82%B9/WP_Query
wp queryというのは関数ではなく、クラスでしょうか?
関数リファレンスとなっていますが、、、
2020/08/17(月) 11:36:05.01ID:p+skW/fDM
>>352
どちらも用途によって使い分ける
テンプレートに宛字する時は埋め込みを使うし
データベースから引っ張ってきたらテーブルタグはジェネレートで生成するから
362デフォルトの名無しさん (ワッチョイ 46c7-zLXa)
垢版 |
2020/08/17(月) 16:27:11.96ID:nU1LGxzf0
>>361
では、基本的には埋め込みはあまり使わない感じですよね
363デフォルトの名無しさん (ワッチョイ c261-QlkZ)
垢版 |
2020/08/17(月) 23:13:09.81ID:VzEaSA8o0
いやいや、PHPはHTMLのテンプレートから発展した言語だから。
2020/08/17(月) 23:39:47.68ID:9mJqNW620
最初、Ruby では、
Rubyで、文字列のHTML 片を作っていた

これがあまりにも面倒なので、考えを逆転させて、
HTML内で、Rubyのコード片を実行するようになった

それが、この2つの表記
<% 式 %>, <%= 式 %>

これが、ERB という、Rubyの埋め込みテンプレートエンジン。
ちなみに、あらゆる種類のファイルに、Rubyのコード片を埋め込める

a.html.erb, b.js.erb など
2020/08/18(火) 00:28:03.33ID:3tEZ7IxF0
埋め込みは当たり前のように遣ってたな
2020/08/18(火) 01:44:22.07ID:IZwRntbAM
phpのスレでRubyの勧誘するのってなんなの?
2020/08/18(火) 07:02:13.19ID:Fdm1HnVu0
>>366
この板に住み着いた壊れたボットだよ
言葉は通じないからスルーするしかない
2020/08/18(火) 17:31:30.36ID:IdLI5hpvr
>>364
Rubyすげぇ、、、phpじゃできないもんな
369デフォルトの名無しさん (ブーイモ MM0f-qjQY)
垢版 |
2020/08/19(水) 03:15:55.98ID:lmPqEok8M
設定やDBへのログインパスなどを記したインクルードファイルの拡張子は何がオススメですか?慣例とかありますか?
2020/08/19(水) 04:01:54.62ID:832DQeBHa
拡張子は変えないでいいんじゃね
2020/08/19(水) 07:40:21.79ID:Mw6y6ZKQ0
>>366
Rubyが過疎で話し相手がいないんだろう
2020/08/19(水) 10:39:56.60ID:Jv991dcL0
拡張子を.inc とかにするとソースコードが丸見えになることがあるとかないとか
2020/08/19(水) 12:14:24.52ID:hsLGYVPM0
OS上の安全な所に保存して、中身はparse_ini_file使って取得してる
2020/08/19(水) 21:48:15.08ID:EjRsdu110
簡単なものでもLaravelなどのフレームワークを用いた方が何かと便利だとは思う
フレームワークなら設定用のファイルなども用意されていて、Laravelの場合は
プロジェクトのルートに.envファイルがありそこにDBの接続情報など書いたりする
2020/08/22(土) 05:03:03.61ID:iyOM14R/0
function isIe()
{
$userAgent = $_SERVER['HTTP_USER_AGENT'];
if (strstr($userAgent, 'Trident') || strstr($userAgent, 'MSIE')) {
return true;
}
return false;
}

IEかどうかチェックする関数があるのですが、
特有の文字列があれば真を返すのはわかるのですが、その後に偽を返してしまいそうなのですが、
phpはreturnがあれば強制的にそこで関数が終わると考えて良いのでしょうか?
2020/08/22(土) 06:45:18.27ID:6Z2EqbSN0
>>375
リファレンスを読まない理由を教えてください
2020/08/22(土) 07:43:46.74ID:iyOM14R/0
>>376
https://www.php.net/manual/ja/language.references.return.php
ここを読んで見ましたが、リファレンスを返すというのがわからない状態です
2020/08/22(土) 10:29:48.91ID:tZBSf8Cz0
>>375
その通り。
phpはreturnがあれば強制的にそこで関数が終わると考えて良い。

>>377 のリファレンスは、「参照」という機能であり、
>>376 のリファレンスは、「言語の説明書(マニュアル)」という意味でたぶん使われている。
意味が違う別のものだから勘違いしない方がいい。
2020/08/22(土) 17:02:25.49ID:iyOM14R/0
>>378
ありがとうございます。
そこで終わるのですね、やっと真偽がわかるようになってきたので、
リファレンスという言葉が出てきて混乱しました。
2020/08/24(月) 06:48:39.71ID:C1uB6ZQy0
ググれば分かることを人に聞くのは
本人のためにならないんだよな
そこ、プログラマの基本的な資質だから
安易に答えるのもどうかと思うし
381デフォルトの名無しさん (ワッチョイ ffc7-KCZZ)
垢版 |
2020/08/25(火) 20:26:57.46ID:khngmmlE0
https://on-ze.com/archives/1615
rssの取得にライブラリは必要なんですか?
rss-phpを使用している場合が多いですが、上では必要ないですね
2020/08/26(水) 02:37:14.50ID:BpaQECb00
Ruby では、RSS ライブラリを使う

RSS Parserは、RSS 0.9x/1.0/2.0, Atom 1.0 をサポートしていますが,RSS 0.90 はサポートしていない

独自では、バージョン判定・XML 整形式の判定など、作れない
383デフォルトの名無しさん (ワッチョイ 86c7-Xbxe)
垢版 |
2020/08/26(水) 05:57:56.26ID:rxHVxy4B0
rubyではなくです
384デフォルトの名無しさん (ワッチョイ 86c7-Xbxe)
垢版 |
2020/08/26(水) 10:56:12.28ID:rxHVxy4B0
curlとsimple xmlの違いはなんでしょうか?
rss取得が目的です。
385デフォルトの名無しさん (ワッチョイ 86c7-Xbxe)
垢版 |
2020/08/26(水) 11:28:22.15ID:rxHVxy4B0
ちがった
file get contentsとcurlの違いす
2020/08/26(水) 11:32:21.96ID:V3GgHeuL0
まず、処理の切り分けをするべき

1. rssを取得する
2. 取得したrssを解析してオブジェクトなり配列なりを返す

1だけなら、file_get_contents()なりcURLなり使えばいい

simplexml_load_fileは、1と2を同時にやってくれる
そんだけ

>>381
外部のライブラリは必須ではない
ライブラリを使った方がより直感的に書けたり標準関数にはない機能があったりする事もあるってだけ
プログラムの書き方は1つじゃない
387デフォルトの名無しさん (ワッチョイ 86c7-Xbxe)
垢版 |
2020/08/26(水) 12:10:42.02ID:rxHVxy4B0
simplexml_load_fileは1と2を同時にやるということですが、file_get_contentsとセットで使われていますので、1はfile_get_contents、2はsimplexml_load_fileということではないのですか?
2020/08/26(水) 12:35:09.11ID:BpaQECb00
>>384-385
普通、Ruby でスクレイピングするなら、

require 'open-uri'
require 'nokogiri'

url = 'http://www.example.com/' # @
doc = Nokogiri::HTML( open( url ) ) # @

elements = doc.css( "h1" )
puts elements.first.content #=> Example Domain

上の@ の2行を、下のように、
curl という、OS の外部コマンドを呼んでも、HTML を取得できるというだけ

html = `curl http://www.example.com/`
doc = Nokogiri::HTML( html )
2020/08/26(水) 13:20:32.20ID:V3GgHeuL0
>>387
せめてPHPマニュアルぐらいは読もう
https://www.php.net/manual/ja/function.simplexml-load-file.php

simplexml_load_file()はURLとファイルパスの両方を受け付ける(PHPにはこういう関数が多い)
つまり、

A
1. file_get_contents()で指定URLの内容を取得
2. 1をファイルに保存
3. 2をsimplexml_load_file()でパース

としなくても

B
1. simplexml_load_file()でURLを直接パース

ってできる。


じゃぁなぜわざわざAみたいな書き方もするかっていうと、
例えば取得したrssをローカルに保存してそれをキャッシュとして利用すれば
URLを何度も取得する負荷を減らせるから

この「なぜ」そういう書き方をするか?って事が理解できてないのは、プログラマとしては失格だなぁ
390デフォルトの名無しさん (ワッチョイ 86c7-Xbxe)
垢版 |
2020/08/26(水) 13:42:33.83ID:rxHVxy4B0
変数にするってことですよね
それはもちろん理解できます

マニュアルはむずくてなかなか、、、
2020/08/26(水) 14:05:12.50ID:V3GgHeuL0
>>390
> 変数にするってことですよね

違うw
よく読もうw
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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