2

サイトを interspire CMS から Joomla に移行しました! CMS。記事のすべてのデータベースを移行することができましたが、いくつかの記事には奇妙な問題があります。joomla からページにアクセスすると、タイトルに のような HTML エンティティが含まれています’

私が使用している CMS から推測できるように、私はサーバー側として PHP を使用し、データベースとして MySql を使用しています。

データベース内の記事のタイトルをhtmlspecialchars_decodeANDhtml_entity_decodeで調べてそれらを削除しようとしましたが、効果がありませんでした。

DB から例を取得してエコーすると、問題ないように見えます。

joomla の記事ページに移動すると、次のようになります。 What’s Your Pleasure, Lasagna Or Pizza Manchester Style?

データベースの内容を直接確認するために PhpMyAdmin にアクセスすると、タイトルの内容は次のようになります。 What’s Your Pleasure, Lasagna Or Pizza Manchester Style?

私はシンボルを削除しようとしました:

str_replace("’","",$title);

またはこのように置き換えます

str_replace('’',"'",$title);

しかし、何もありません。デコードする代わりに再度エンコードしようとすると(正しいDBにいるかどうかを確認するため)、機能して再度エンコードされました...

どうぞ、新しいアイデアをいただければ幸いです...ありがとう、ヤニパン

4

3 に答える 3

4

エンコーディングを cp1252 に設定してみてください。これは私にとってはうまくいきました:

$decoded = html_entity_decode($your_string, ENT_QUOTES, 'cp1252');

于 2012-11-28T16:51:30.140 に答える
1

おそらくあなたの最善の策は、データベース自体で検索と置換を行うことと、phpでそれを行うことです。mysql での検索と置換は次のように行われます。

update TABLE_NAME set FIELD_NAME = replace(FIELD_NAME, ‘find this string’, ‘replace found string with this string’);

したがって、あなたのものは次のようになります。

update ARTICLES set TITLE = replace(TITLE, '’', '\'');

それを試してみてください。

于 2011-03-02T06:02:02.243 に答える
0

詳細情報が必要


  1. データベースの文字エンコーディングは何ですか? それ&または;、は、典型的な ASCII 以外のものかもしれません。
  2. PHP/Joomla が文字列を二重にエンコードしている可能性があります。ブラウザーのページ ソースを見て、生成された HTML 内のテキストを見つけます。の代わりにWhat’s、次のいずれかになります。
    1. What&rsquo&59;s
    2. What&38;rsquo&59;s
    3. What&rsquo&#59;s
于 2011-06-15T16:54:20.877 に答える