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

■ このスレッドは過去ログ倉庫に格納されています
2021/04/29(木) 12:39:39.75ID:P0iZ4CYt0
!extend::vvvvv:1000:512
!extend::vvvvv:1000:512
!extend::vvvvv:1000:512
★スレ立て時 ↑ が3行以上になるようコピペ

PHPに関する質問スレです

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

次スレは>>980以降
VIPQ2_EXTDAT: default:vvvvv:1000:512:: EXT was configured
2021/04/30(金) 12:01:11.72ID:6f1slJ3x0
NG推奨ワード: Ruby

この単語を含むレスは一切相手にしないように
3デフォルトの名無しさん (オッペケ Sr5b-/um6)
垢版 |
2021/05/01(土) 13:04:54.03ID:wcP0w+UGr
https://codepen.io/sadsfff/pen/ExZBomX
記事によってサムネイルが表示されたりされなかったりするのですが、原因がわかりません。アドバイスお願いします。
4デフォルトの名無しさん (オッペケ Sr5b-/um6)
垢版 |
2021/05/01(土) 13:12:28.57ID:wcP0w+UGr
どうやら記事にサムネイルがなかったようです。記事にサムネイルがない場合、代わりに画像を設定したいのですがどのコードを修正すればいいのでしょうか?
2021/05/01(土) 14:10:09.09ID:hhTcbcPJ0
「html 画像 タグ」で検索!

<img> 要素
6デフォルトの名無しさん (オッペケ Sr5b-/um6)
垢版 |
2021/05/01(土) 14:23:28.88ID:wcP0w+UGr
https://codepen.io/sadsfff/pen/dyNBJLw
サムネイルが取得できない場合 代替えの画像を表示するコードを付け足したのですが構文エラーが出てしまいます。どこが間違っているのでしょうか?
?php if(empty($first_img)){
// 記事内で画像がなかったときのためのデフォルト画像を指定
$first_img = "/wp-content/uploads/2021/02/スクリーンショット-60.png";
}
return $first_img;
}
足したコードはこちらです。
7デフォルトの名無しさん (オッペケ Sr5b-/um6)
垢版 |
2021/05/01(土) 14:31:24.78ID:wcP0w+UGr
>>5
htmlではなくphpの処理がわかりません。
8デフォルトの名無しさん (オッペケ Sr5b-/um6)
垢版 |
2021/05/01(土) 16:40:35.24ID:wcP0w+UGr
RSSで出力元からサムネイルを取得してなければダミー画像を表示する方法がわかりません。functions.phpに処理を記載したいのですが、そもそも他人から取得するコードと自分のダミー画像を出力するコードをごちゃまぜにできないので困ってます。
9デフォルトの名無しさん (オッペケ Sr5b-/um6)
垢版 |
2021/05/01(土) 16:56:15.41ID:wcP0w+UGr
記事中の1枚目の画像を取得 なければダミー画像を取得 
ifで条件が合ったときに画像を表示させたいのですが…
10デフォルトの名無しさん (オッペケ Sr5b-/um6)
垢版 |
2021/05/01(土) 20:20:18.09ID:zdiXzYTRr
https://codepen.io/sadsfff/pen/oNBryGr
return $first_img;
<span class="thumbnail2"> この部分が連結できません。調べてもわからず、RSSで画像を引っ張ってきたときに画像がないものにダミー画像を使いたいのですが、何をどう調べればよいか教えてください。
2021/05/01(土) 21:02:01.19ID:womjwnFK0
https://www.php.net/manual/ja/function.return.php
2021/05/01(土) 21:27:54.33ID:k3UheK6C0
そもそもコードが無茶苦茶で論外ではあるのだが
更に言うとこれWordPressが入っている環境でしか動かないコードでは?
13デフォルトの名無しさん (ワッチョイ 67c9-zD6t)
垢版 |
2021/05/01(土) 21:33:04.20ID:HeWILf2Q0
笑った。aspの頃を思い出した笑
14デフォルトの名無しさん (オッペケ Sr5b-/um6)
垢版 |
2021/05/01(土) 22:15:10.90ID:F9cq2G89r
<php // RSSフィードを取得
incloude_once(ABSPATH.WPINC.'/feed.php'); //オブジェクト取得
$rss=fetch_feed('http://~.com/rss/feed/goes/here');
$maxitems=0; if(is_wp_error($rss)){ //フィードのエラーチェック
$maxitems=$rss->get_item_quantity(2); //すべてのフィードから最新2つを出力
$rss_items=$rss->get_items(0,$maxitems); //0件から指定した件数まで配列を生成
}?>
15デフォルトの名無しさん (オッペケ Sr5b-/um6)
垢版 |
2021/05/01(土) 22:17:05.23ID:F9cq2G89r
<div class="grid-x grid-margin-y">
<php if (empty($maxitems)):?>
<php if ($maxitems==0) echo' <div class="celllarge-14"> //データがありませんでした。
</div>'; //取得できたRSSが0の場合「データがありません」と表示。
else foreach ($rss_items as $item):?> //RSSが1件以上あったときは繰り返し、$itemにあるデータであれば他のデータも表示させる。

ここまでは文法でおかしなところはないようです。
2021/05/01(土) 22:29:37.42ID:CNjeTyKed
>>14
incloudeって何? includeだよね。
2021/05/02(日) 02:55:22.64ID:eESL2rf00
なんでXAMPP環境だと、STDINはエラーになるのですか?
2021/05/02(日) 16:05:44.15ID:mGuGuO120
>>17
そもそも何がしたいの?
2021/05/02(日) 17:27:19.42ID:eESL2rf00
>>18
ユーザーから文字列を受け取り、コード内で使いたいです
2021/05/02(日) 18:02:00.71ID:mGuGuO120
入力?
https://www.php.net/manual/ja/reserved.variables.get.php
のようにGETで渡されたパラメータなら$_GETに入るのだが?
まさかとは思うが、サーバーが返したHTMLでリアルタイムで入力を受け取りたいとかだと
そもそもPHPは関係無いし、フロントのjavascriptでイベント処理するとかしないと無理だがw
https://developer.mozilla.org/ja/docs/Web/API/GlobalEventHandlers/onkeydown
2021/05/02(日) 22:55:09.90ID:eESL2rf00
>>20
ありがとうございます
まだよく理解出来ていないのでいろいろ調べてみようと思います
22デフォルトの名無しさん (オッペケ Sr5b-/um6)
垢版 |
2021/05/03(月) 20:41:30.42ID:N1nfC+z1r
<span class="date2">
<php echo $item->get_date('Y.m.d');// 日付 ?>
</span> //書き方が多少おかしい

<div class="cell medium-7"><!-- 記事中の1枚目の画像を取得-->
<a href="<php echo $item->get_permalink(); ?>"> //サムネイル
<php
$first_img = '';
if ( preg_match( '/<img.+?src=[\'"]([^\'"]+?)[\'"].*?>/msi',
$item->get_content(), $matches )
) { $first_img = $matches[1]; } ?> //記事中の1枚目の画像を取得
23デフォルトの名無しさん (オッペケ Sr5b-/um6)
垢版 |
2021/05/03(月) 20:55:59.41ID:N1nfC+z1r
>>11
原因は>return $first_img; の前に処理が続いてるのにreturnしているからとヤフー知恵袋で教えてもらいましたが、
<php if(empty($first_img)){ //Defines a default image
$first_img = "/images/default.jpg";
}
return $first_img;

の部分は後から別のコードを連結したためおかしくなってます。
本来は
<php if(empty($first_img)){ //Defines a default image
$first_img = "/images/default.jpg";
}
return $first_img;
}
で処理を閉じるのですが。
続きのコードまで処理が続いているため、<php endif; ?>がいらないとエラーが出ます。
仮の画像につなぐコードを維持しつつ<php endif; ?>につなぐには<span class="thumbnail2">
<img class="heit6" src="<php echo esc_attr( $first_img ); ?>" alt="" />
</span>
<php endif; ?>を書き換える必要があるのでしょうか?
24デフォルトの名無しさん (オッペケ Sr5b-/um6)
垢版 |
2021/05/03(月) 21:03:01.51ID:N1nfC+z1r
https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q13242533143?notice_type=new_ans
これが全体のコードです。
25デフォルトの名無しさん (オッペケ Sr5b-/um6)
垢版 |
2021/05/03(月) 21:58:18.17ID:N1nfC+z1r
すいませんどこを調べればよいのでしょうか?わかりません。
2021/05/03(月) 22:05:53.25ID:Cpgqkk+d0
>>23
そのreturnは一体どこで受け取るの?
マニュアル理解できないのか、そもそも読んでないのか知らんが、wordpress弄る前に基本的な学習が足りてない
27デフォルトの名無しさん (オッペケ Sr5b-/um6)
垢版 |
2021/05/03(月) 22:13:12.99ID:N1nfC+z1r
しらべてみましたが、他サイトのRSSを表示する際にサムネイルがない記事に自身のサイトの画像を設定することは無理なようです。
28デフォルトの名無しさん (オッペケ Sr5b-/um6)
垢版 |
2021/05/03(月) 22:19:25.42ID:N1nfC+z1r
>>26
調べるとfunctionに書くパターンと直接かくコードがあり。自身のサイトから発信する場合はfunctionに書いてそれを表示したいphpファイルから呼び出すよう書いてました。
自分の場合 相手方のサイトからRSSを取得してそれにアイキャッチや抜粋の情報を取得するので、直接コードを書いてますがその場合サムネイルがついてない記事も読み込んでしまいます。
そこでサムネイルがない記事に自身のサイトの画像を表示させたかったのですが、どのサイトにもその処理は乗ってませんでした。
29デフォルトの名無しさん (オッペケ Sr5b-/um6)
垢版 |
2021/05/03(月) 22:25:10.28ID:N1nfC+z1r
自分の見解では相手方のサイトのRSSからそもそも画像のついてない記事をはじいて、サムネイルのついている記事のみ収集して表示するという考えになったんですが。
そんなことはphpで可能なのでしょうか?
2021/05/03(月) 22:39:39.80ID:Cpgqkk+d0
>>28
functions.phpから直接returnして一体どこでどうその値が扱われるの?
先のことがわからないコード貼って動きませんは無いでしょ

yahooに上げたのが最新だとすると、return $first_img;の後ブロック閉じてないし、閉じたとするとその5行下のendiの開始が見つからない
あとブロックが波括弧とコロンが混在してるし

安易に他人のコード切り貼りするからこう言うことになる


どこで画像取得してるか調べて、調べたら無い場合の処理を書く
これだけのことなんだから、ちゃんと動く段階のもの用意して一からやり直してみたらどうですかね?
2021/05/03(月) 22:41:00.86ID:+oXrxKHu0
やりたい事はPHPで普通に出来るが
そもそも質問するならpaiza等で動くコードを提示しないとね
wordpressが前提のようなものは、そういう前提部分が無いコードに書き換えるなりしないと
わざわざその環境を作って試してくれるような人なんて居ないしどうしょうもないかと
32デフォルトの名無しさん (オッペケ Sr5b-/um6)
垢版 |
2021/05/03(月) 22:51:45.18ID:N1nfC+z1r
https://oku-log.com/blog/post-thumbnails/
このコードのダミー部分と
https://midorinz.com/app/2018/05/20/wordpress%E3%81%A7%E5%A4%96%E9%83%A8rss%E3%82%92%E8%AA%AD%E3%81%BF%E8%BE%BC%E3%82%93%E3%81%A7%E8%A1%A8%E7%A4%BA%E3%81%99%E3%82%8B/
このコードを合わせたので変になってます。
もとはこうなってました。{ $first_img = $matches[1]; } ?> <php if ( !empty( $first_img ) ) : ?>
33デフォルトの名無しさん (アウアウクー MM5b-/um6)
垢版 |
2021/05/03(月) 23:01:59.87ID:HTxVkaL2M
endiタグはそもそも上のコードと連結していたものです。なので自分がやってることは本来完結してる文に句読点をつけて同じ処理を書いてるのだと思います。
エラーにかけるとreturn $first_img;の後ブロック閉じるとしたのendiタグはいらないといわれます。
しかし消してしまうと<span></span>の内容は表示されません。なぜなら上の文と合わせてphpが完結していたのに、自分が加えた余計なコードでphp処理が完結してしまうため後の処理が消えてしまうせいです。

functionに書くやり方ですとreturnをかいて別のphpファイルに書いてますが、そもそも他サイトから情報をもらってRSSを表示するならfunctionを通さないはずです。
2021/05/04(火) 00:05:26.78ID:q/VBEoPh0
じゃんけんをするスクリプトを、htmlファイルとphpファイルに分けて書き、
XSS対策としてhtmlspecilschars関数を使いたいのですが、
以下のphpファイルのどこに使えばよいでしょうか?
https://pastebin.com/8VBzn7PB

入力値は12行目の$_POST['handnum']で受け取っています
2021/05/04(火) 00:13:57.09ID:yFx0moer0
>>33
>本来完結してる文に句読点をつけて同じ処理を書いてるのだと思います。

>>32 前者のコードはfunctions.php内の関数内の処理なのだからreturnで値返すよね
それを後者の関数では無いプラグインの処理をベースにしてreturnするって、おかしいと思わない?

後者のコードでempty($first_img)で判別してるんだから、ある場合と無い場合でそれぞれ処理して終わる話では?(あくまでプラグイン作ってるとしたらの話)
2021/05/04(火) 00:47:59.15ID:yFx0moer0
>>34
filter_inputを使ってみてはどうか?

$handnum = filter_input(INPUT_POST, 'handnum', FILTER_SANITIZE_NUMBER_INT);
$player_hand = intval($handnum);
2021/05/04(火) 01:37:39.10ID:q/VBEoPh0
>>36
ありがとうございます
あとは特徴とか自分で調べてみようと思います
2021/05/04(火) 01:40:40.07ID:i9uz7Z8I0
>>34
そのスクリプトではXSSの問題はおきない
よってhtmlspecialcharsは不要
htmlspecialcharsは外から入ってきた変数を直接出力するようなときに使う
例えば echo "こんにちは{$_POST['name']}さん" は使わないとだめ

ちなみにintvalは"A"は0になるし"1A2"は1になるので
「0・1・2のいずれかの数字を半角で入力して下さい」なんて言うのであるならば
こんな適当な関数は使ってはだめ
そこは普通にstrで受けていいしhandtypeにもstr渡せばいいだけ
んでhandtypeで"0"〜"2"じゃなかったときにfalseでも返して
handtypeからfalseが返ってきたらexitすりゃいい
39デフォルトの名無しさん (アウアウクー MM5b-/um6)
垢版 |
2021/05/04(火) 01:43:50.15ID:qBuN3ovAM
>>35
このコードではプラグインは使ってません。simplepieでRSSを取得しているようです。
まず記事のサムネイルを取得します。それがない場合1番目の画像を代わりに取得します。
自分がこれに付け加えたいのは、その1番目の画像がない場合にサムネイルを自分で取り付けることです。
勉強不足で申し訳ないのですが、具体的にどのコードを書き換えてどのような修正が必要なのでしょうか?
40デフォルトの名無しさん (アウアウクー MM5b-/um6)
垢版 |
2021/05/04(火) 01:45:49.53ID:qBuN3ovAM
なんとかコードを完成させたい気持ちはありますし。途中で投げ出す気もありません。
2021/05/04(火) 01:58:27.33ID:q/VBEoPh0
>>38
助言ありがとうございます

handtype関数はコンピュータの手(int型)にも利用するので
引数はint型にしたんですが…


intval()を使う所で、(int)とキャストするのは悪手ですか?
どっちにするか少し迷ったんですが
2021/05/04(火) 02:58:16.62ID:yFx0moer0
>>39
>どのような修正が必要なのでしょうか?

ぶっちゃけ全部

functions.phpに処理を加えたいならfunctions.phpの作法を最低限勉強しないと

https://www.google.com/search?q=wordpress+functions.php+%E6%9B%B8%E3%81%8D%E6%96%B9
43デフォルトの名無しさん (アウアウクー MM5b-FYM5)
垢版 |
2021/05/04(火) 04:27:30.04ID:blbvBx1gM
>>42
すみません… つまり画像がある記事とない記事の処理を分けてRSSで召集するのが早いってことですかね?
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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