0

PHP で記述されたコンテンツ管理システム GetSimple を使用した Web サイトを持っています。必要に応じて編集しましたが、ヘッダーには次のように記載されています。

<title><?php get_page_clean_title(); ?> - <?php get_site_name(); ?></title>

問題は、私がチェコ人であり、特殊文字 (á、é、í、ó、ú、ů、ě、š など) を使用する必要があることです。私の Web サイトを開いてソース コードを表示すると、次のように表示されます。

<title>Tomáš Janeček - osobní web - Tom**&aacute;&scaron;** Janeček | Personal Website</title>

「Tomáš Janeček - osobní web - Tom* áš * Janeček | Personal Website」の代わりに。私が気になっているのは、タイトルの 2 番目の部分にのみある HTML エンティティです。á は「á」を表し、š は「š」を表します。SEO に悪影響を与えないことはわかっていますが、コードを明確にするためにこれを行っています。

それをデコードする方法、または get_site_name() をこれらの余分な文字に問題のないより良い関数に変更する方法はありますか? コードにエンティティが必要ありません。私が望むように編集する必要があるのは、この具体的な .php ファイルではないと思いますが、このファイルで簡単に解決できることを願っています。CMS には数十の .php ファイルが含まれており、何を検索すればよいかわかりません。「疑わしい」ファイルで PHP エンティティを含むコードを探しましたが、役に立たないものは見つかりませんでした。必要な場合は、CMS 全体をここからダウンロードできます。

事前にご協力いただきありがとうございます。

Edit1:// -------------------------------------------------- --------------------------------------------

もちろん、このメタも含まれています。

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

いいえ、データベースは使用しません。それはJoomlaを勉強することで得られます!:)

タイトルには get_page_clean_title() と get_site_name() の 2 つの部分があることを強調したいと思います。どちらにも私の名前全体が含まれており、HTML エンティティを含むソース コードに表示されるのは 1 つだけです。

別のファイルで関数を見つけました:

1 つ目は、ソース コードに HTML エンティティを配置しないものです。これは、2 つ目の関数の下に必要なものです。

function get_page_clean_title($echo=true) {
global $title;
$myVar = strip_tags(strip_decode($title));

if ($echo) {
    echo $myVar;
} else {
    return $myVar;
}

}

SECOND 関数は本来の機能を果たしますが、HTML エンティティを含む出力が得られ、それが問題です。

function get_site_name($echo=true) {
global $SITENAME;
$myVar = trim(stripslashes($SITENAME));

if ($echo) {
    echo $myVar;
} else {
    return $myVar;
}

}

上記の関数は両方とも同じファイルにあります。

問題のある関数を、変数名を正しい値に変更することでうまく機能する関数に置き換えようとしましたが、まったく機能しなくなりました:/

結論として、ページ全体は問題ありません。1 か所 (get_site_name 関数を使用したタイトルの後半) を除いて、HTML エンティティはありません。

さらに、問題はソースコードのみにあります。最終的な表示は問題ありません。

これまでの返信に感謝します。このような迅速で価値のある返信をうれしく思います。本当に感謝しています。

4

2 に答える 2

1

文字セットに問題があると思います。特殊文字を正しい方法で表示する場合は、追加します

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

あなたのhtml/phpファイルに。また、データが UTF-8 でコード化されていることも確認してください。

MySQL データベースからデータを取得している場合は、列がutf-8文字セットを使用していることを確認してください。また、このクエリを使用して接続の文字セットを設定し、正しいコード化でデータを取得していることを確認してください。

set names utf8;
于 2013-03-13T20:23:49.837 に答える
0

Tome、あなたの *.php やデータベース、あるいはどんなデータが消えようとしているのかが UTF-8 であり、インデックスのメタ文字セットも utf-8 であることを確認してください。

http://www.jakpsatweb.cz/cestina.html - html の分音符号に関する情報については、この Web にアクセスしてください。各エンコーディングの記号の表が表示されます。

ロシア語の文字を UTF-8 でエンコードされたファイルに保存する方法

于 2013-03-13T20:22:58.353 に答える