2016-05-08 12 views
-3

一引用符(')を別の引用符()に置き換えようとしていますが、何もできないようです。 また、複数の文字列でこの作業を行うにはどうすればいいですか?($text, $title, $notice)一引用符( ')を別の引用符(')に置き換えます。str_replace

入力:ない

出力を行います。私はこれをしようとしていない

の操作を行います。この

$text = str_replace(array("'",'"'), array('’'), $text);  
$text = htmlentities(str_replace(array('"', "'"), '’', $text); 
$text = htmlentities(str_replace(array('"', "'"), '’', $_POST['text'])); 
$text = str_replace("'" ,"’",$text); 
$text = str_replace("'" ,"’",$text); 
$text = str_replace(array("'"), "’", $text); 
$text = str_replace(array("\'", "'", """), "’", htmlspecialchars($text)); 
$text = str_replace(array('\'', '"'), '’', $text); 
$text = str_replace(chr(39), chr(146), $text); 
$text = str_replace("'", "&ampquot;", $text); 

なしに動作しません。

+1

1)なぜこれをやりたいのですか? 2)そして、 'highlight_string($ text)'の正確な出力は何ですか? – Rizier123

+0

@ Quasimodoscloneの答えがうまくいかない場合は、再現可能な例を提供できますか?私はあなたの最初の方法を 'don't 'で試してみました。明らかに二重引用符では機能しませんが、一重引用符では機能します。 – Chris

+1

[引用符をstr \ _replace()に置き換えることができません。また、PHP文字列内の空白を削除する方法はありますか?](http://stackoverflow.com/questions/37094014/replacing-quotes-with-str- – splash58

答えて

5

置換えとして配列を使用する場合は、針を入れたときの数だけ置換えます。それ以外の場合は単純な文字列を使用します。

<?php 
$text = 'Peter\'s cat\'s name is "Tom".'; 
$text = str_replace(array("'",'"'), '’', $text); 
echo $text; 

$text = 'Peter\'s cat\'s name is "Tom".'; 
$text = str_replace(array("'",'"'), array('’', '`'), $text); 
echo $text; 
?> 

複数の変数にそのタスクを実行するには、あなたが

<?php 
$text = 'Peter\'s cat\'s name is "Tom".'; 
$title = 'Peter\'s cat\'s name is "Tom".'; 
$notice = 'Peter\'s cat\'s name is "Tom".'; 

foreach([&$text, &$title, &$notice] as &$item) 
    $item = str_replace(array("'",'"'), '’', $item); 

echo "text: $text<br>title: $title<br>notice: $notice"; 
?> 
+0

交換以外のニードルがあることに間違いがないことに注意してください。しかし針よりも多くの置換えが間違っています。 – chiliNUT

+0

@chiliNUT - エラーがスローされないことを意味する「間違った」ものはありません。ただし、質問所有者が期待どおりに機能しません。この動作は、置換配列に空の文字列を埋め込むことと同じです。 –

1

を行うことができ、私はpreg_replace()を使用してみましたし、それは完全に最初の時間働いた:

$text = "Someone told me about a 'bacon and cheese sandwich'"; 
$text = preg_replace("#\'#", '’', $text); 
echo $text; 

出力
Someone told me about a ’bacon and cheese sandwich’

これを行ってください。

関連する問題