質問する
20335 次
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('’', "'", $cardnametitle);
//Outputs: String's Title
編集: あなたのデータベースのエントリは編集されていると思いますhtmlentities
。
注:これで問題が解決したとしても、これは良い解決策ではないと確信しています。もっと良い方法があるはずです。
于 2012-07-05T18:42:45.473 に答える
0
アポストロフィをアンダースコアに置き換えようとして同様の問題に遭遇しました...最終的にこれを書かなければなりませんでした(これはWordPressサイト用でした):
$replace = array(",","'","’"," ","’","–");
$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 に答える