6
4

5 に答える 5

3
$stdin = mb_str_replace('’', '\'', $stdin);

ここの実装mb_str_replace(): http://www.php.net/manual/en/ref.mbstring.php#107631

私はこれを意味します:

<?php
function mb_str_replace($needle, $replacement, $haystack) {
   return implode($replacement, mb_split($needle, $haystack));
}
echo mb_str_replace('’', "'", "String’s Title");

エンコーディングの問題を解決する場合があります。

于 2012-07-05T18:39:27.633 に答える
1

これを試して

$s = "String’s Title";
$h = str_replace("’","'",$s);
echo $h;

preg_replace で試すこともできます

echo preg_replace('/\’/',"'","String’s Title");
于 2012-07-05T18:42:04.340 に答える
1

私はこれをテストしました:

echo str_replace('&#8217;', "'", $cardnametitle);
//Outputs: String's Title

編集: あなたのデータベースのエントリは編集されていると思いますhtmlentities

注:これで問題が解決したとしても、これは良い解決策ではないと確信しています。もっと良い方法があるはずです。

于 2012-07-05T18:42:45.473 に答える
0

アポストロフィをアンダースコアに置き換えようとして同様の問題に遭遇しました...最終的にこれを書かなければなりませんでした(これはWordPressサイト用でした):

$replace = array(",","'","’"," ","&#8217;","&#8211;");
$downloadTitle = str_replace( $replace,"_",get_the_title($gallery_id));

私自身、PHP は初めてで、これはかなり恐ろしいコードだと認識していますが、うまくいきました。なんらかの理由で本当に考慮に入れる必要があるのは「'」であることに気付きました。

于 2014-09-12T04:47:58.843 に答える
0

なぜあなたのために働いていないのかわかりませんstr_replace()

正しい方法で試していないと思います。

ライブデモを参照

<?php
    $str = "String’s Title";
    echo str_replace('’', '\'', $str) . "\n";
    echo str_replace("’", "'", $str);
?>

出力:

String's Title
String's Title

更新 1:

ヘッダーを次のように設定する必要がある場合があります

header('Content-Type: text/html; charset=utf-8');
于 2012-07-05T18:49:55.143 に答える