質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Webサイト

一つのドメイン上に存在するWebページの集合体をWebサイトと呼びます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

解決済

2回答

1881閲覧

サイトのリニューアルをしていますが、PHPコードの書き方と入れる場所が分からなくて困っています。

sepu

総合スコア10

Webサイト

一つのドメイン上に存在するWebページの集合体をWebサイトと呼びます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

2クリップ

投稿2014/12/27 10:00

PHPという名前を知ってから一ヶ月ちょっとになります。
どうしても既存のサイトをリニューアルしたくてPHPを勉強しています。

しかし、ワード命令をPHPにどうやって変換するのか解りません。
たとえば、「if」というコードは「もし」という意味みたいなのですが、PHP講座に行って知りました。
2日間行ったのですが、教えてもらったコードの意味は解っても使いたいコードがどこに落ちているかが分かりません。

やりたい事は、サイトマップにサーチで集めた動画を視聴すると書き込んでいるサイトなのですが、
キーワードと全く関係ないサイトを視聴してしまうとそれも書き込まれてしまうので、
キーワードを指定して書き込みたいのです。

・キーワードが入ってなければ、書きこまない。
・キーワードが入っていれば書き込む

この二つの方法のどちらかを「ファンクション/サイトマップを書き込む」のところに指定してあげればいいのだと思うのですが、
もう、同じことを一ヶ月以上やっても未だにわかりません。

・キーワードの指定

これもどこかに書き込んでおく必要があると思うのです。

この二つの指令をPHPコードに直す方法が分かりません。
出来れば、どこに書き込むのかも教えて頂ければありがたいです。
想像でここかなあと思っただけですから。

毎日毎日サイトを調べても頭が悪いのか、考えられなくなってきました。
今日もサイトを調べていたのですが、偶然にもこのサイトを発見しました。
プロの中ど素人が混じって申し訳ないのですが、どなたか教えて頂けたらありがたいです。

宜しくご指導の程お願いします。

ファンクションファイルです。

  • 関 数:サイトマップHTML作成

*--------------------------------------------------------------------------

  • 引 数:$pData データ
  • $pFile テンプレートファイル
  • $pFlg 処理フラグ 0->サイトマップ新規作成 1->サイトマップに追加

*--------------------------------------------------------------------------

  • 戻り値:$ret HTML

***************************************************************************/
function MakeSiteMapHTML(
$pData,
$p_filename
){

$ret = ""; $templateArray = file( $p_filename ); /* HTMLページ作成開始 */ // 配列をループしてHTMLをHTMLソースとして表示 $line =""; foreach ($templateArray as $line_num => $line) { $line = htmlspecialchars($line); if ((substr($line,0,13)=="&lt;!----&gt;")){ // <!---->の次にアンカータグを追加 $line = "&lt;!----&gt;".$pData." ".substr($line,13); } $ret .= unhtmlescape($line); } $ret = mb_convert_encoding($ret,"UTF-8","auto"); return $ret;

}

/***************************************************************************

  • 関 数:サイトマップ作成

*--------------------------------------------------------------------------

  • 引 数:$p_videoId 動画ID

*--------------------------------------------------------------------------

  • 戻り値:$ret ファイル一覧を格納した配列

***************************************************************************/
function MakeSiteMap(
$p_videoId,
$p_filename
){

$dir = array(); $ret = ""; $data = ""; $xmlDataObj = SearchVideoById($p_videoId); if (is_object($xmlDataObj)){ $title = $xmlDataObj->title; $data = "\n<a href='".$p_videoId.".html' target='_self'>".$title."</a>"; } // sitemap.html作成 $data = MakeSiteMapHTML($data,$p_filename); if (!$data){ }else{ $ret = CreateHtmlFile("../".SITEMAP_HTML,$data); } return $ret;

}

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

もし、差し込むところを指摘していただけたらありがたいです。

すみません、差し込んだ状態での例のつもりだったのですが、
一部を抜粋していたのでわかりづらかったですね。
下記だとどうでしょうか。

/*************** * 関 数:サイトマップ作成 *-------------------------------------------------------------------------- * 引 数:$p_videoId 動画ID *-------------------------------------------------------------------------- * 戻り値:$ret ファイル一覧を格納した配列 ***************/ function MakeSiteMap( $p_videoId, $p_filename ){ $dir = array(); $ret = ""; $data = ""; $keyword_pattern = '/*キーワード*/'; // この行を追加。キーワードは適宜変更する $xmlDataObj = SearchVideoById($p_videoId); if (is_object($xmlDataObj)){ $title = $xmlDataObj->title; // ここから修正 // キーワードと動画タイトルを比較(部分一致) if (preg_match($keyword_pattern, $title)) { // 一致していれば、リンクHTMLを作成する $data = "\n<a href='".$p_videoId.".html' target='_self'>".$title."</a>" } // ここまで修正 } // sitemap.html作成 $data = MakeSiteMapHTML($data,$p_filename); if (!$data){ }else{ $ret = CreateHtmlFile("../".SITEMAP_HTML,$data); } return $ret; }

投稿2014/12/29 14:39

fu_fu_fu

総合スコア21

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

sepu

2014/12/30 05:34

いろいろとありがとうございました。 どうやら、ファンクションファイルでは、どうにもならないみたいです。 サーチPHPの方にも色々試したのですが、ダメでした。 サイトの作りがそのようになっているみたいなので、どうすることもできません。 この、書き込みコードは大切にします。 サイトはリニューアルではなく、新たに作ろうかと考えています。 本当にお騒がせしました。 アドバイス頂いて心より感謝申し上げます。 ありがとうございました。
guest

0

やりたいことを明確に理解しているわけではありませんが
・キーワードは固定であらかじめ設定しておく(ユーザーが入力した値でない)
・キーワードと動画タイトルを比較し、制御を行う
という前提でなら。。

MakeSiteMap関数で、動画情報を取得し動画リンクHTMLを作成しているように見えます。
したがって動画タイトルを取得後に、
動画タイトルとキーワードとの比較処理を入れればよいのかと思いました。

キーワードに一致するかどうかは「正規表現」という技術を使います。
※これだけで本1冊になるほど奥が深いです。
その「正規表現」で文字列比較ができるpreg_matchという関数(命令)が
PHPに用意してありますので、それを使えばよいと思います。

例)

・キーワードが入ってなければ、書きこまない。 であれば

// キーワードの正規表現パターン $keyword_pattern = '/*ここがキーワードです*/'; $xmlDataObj = SearchVideoById($p_videoId); if (is_object($xmlDataObj)){ $title = $xmlDataObj->title; // キーワードが含まれていたらなにもしないで処理を抜ける if (preg_match($keyword_pattern, $title)) { continue; } $data = "\n<a href='".$p_videoId.".html' target='_self'>".$title."</a>"; }

とすればよいですし
・キーワードが入っていれば書き込む
であれば

// キーワードの正規表現パターン $keyword_pattern = '/*ここがキーワードです*/'; $xmlDataObj = SearchVideoById($p_videoId); if (is_object($xmlDataObj)){ $title = $xmlDataObj->title; // キーワードが含まれていたら動画リンクを作成する if (preg_match($keyword_pattern, $title)) { $data = "\n<a href='".$p_videoId.".html' target='_self'>".$title."</a>"; } }

とすればよい気がします。

例ではキーワード1つですが増やすことも可能です。
また正規表現はもっと細かいパターンで比較することも可能です。

投稿2014/12/29 04:39

fu_fu_fu

総合スコア21

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

sepu

2014/12/29 09:10

お忙しい中、ご指導ありがとうございます。 心より感謝申し上げます。 正直、半分諦めていたのですが世の中には凄い人がいるものだなあとつくづく思いました。 すぐにあちらこちらに、片方づつ試しました。 書き込まれたら、また上に持っていき貼り付ける、 また、書き込まれたら上に持っていき貼り付けるの繰り返しを両方やってみましたが、 どうしても書き込まれてしまいます。 上過ぎると動画がサーチされなくなってしまいます。 >MakeSiteMap関数で、動画情報を取得し動画リンクHTMLを作成しているように見えます。 まったくその通りです。 >したがって動画タイトルを取得後に、 ここが分からなくて、あちこちに試しました。 >動画タイトルとキーワードとの比較処理を入れればよいのかと思いました。 そうだと思います。 もし、差し込むところを指摘していただけたらありがたいです。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問