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

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

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

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

Q&A

解決済

1回答

291閲覧

foreachで繰り返しの処理をしたとき、最後の項目しか認識しない

eofyshi

総合スコア9

PHP

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

0グッド

0クリップ

投稿2018/07/26 06:44

ページタイトルを一括管理したい

CMSを使わない状況で、ページ数が多くあるためにmetaタグ等を一括管理できればと思い、まずはページタイトルだけでもと下記ページのソースを使用してみました。

http://webdrawer.net/php/phptitle.html

発生している問題

ソースを確認してみるときちんと読み込まれているんですが、下層ページに進むとサイトタイトルのみ表示されていました。ただ、配列の最後に書いたページはページ名とサイトタイトルが読み込まれています。

該当のソースコード

php

1<?php 2 //URLを取得 3 $url = $_SERVER["REQUEST_URI"]; 4 //サイト名を入れる 5 $defaultTitle = "サイトタイトル"; 6 //タイトル登録箇所。タイトルが「ぺーじ名|サイト名」になるようにしています。 7 $titleName = array( 8 '/' => $defaultTitle, 9 '/archive/' => '記事一覧' . '|' . $defaultTitle, 10 "/company/outline.php" => '会社概要' . '|' . $defaultTitle, 11 '/sns.php' => '各SNS' . '|' . $defaultTitle, 12 ); 13 //index.htmlでも/終わりでも対応 14 if(preg_match('/index.php/',$url)){ 15 $url = str_replace("index.php","",$url); 16 } 17 //URLと登録してるタイトルで一致するものをさがす。 18 foreach ($titleName as $key => $value){ 19 if($url === $key){ 20 $titleTxt = $value; 21 }else { 22 $titleTxt = $defaultTitle; 23 } 24 } 25 //表示 26 echo '<title>' . $titleTxt . '</title>'; 27?>

試したこと

  • URLが取得できていないのかと思い、$_SERVER["REQUEST_URI"]の吐き出すものを確認したらURLは正しいものでした。
  • コピー元のソースはhtmlを使用する形でしたが、私の方はphpでしたので、index.htmlという記述はindex.phpに変更しています。

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

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

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

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

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

guest

回答1

0

ベストアンサー

php

1 foreach ($titleName as $key => $value){ 2 if($url === $key){ 3 $titleTxt = $value; 4 break; 5 }else { 6 $titleTxt = $defaultTitle; 7 } 8 } 9

投稿2018/07/26 06:46

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

eofyshi

2018/07/26 06:50

ありがとうございます!breakで処理を抜けて(止めて?)しまうかたちですね(違うかもしれませんが・・・)大変助かりました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問