PHP初心者です。詳しい方、何卒お助け下さい。
文字列をダブルクオーテーション内に書いたときは「"」を、シングル
クオーテーション内に書いた時は「'」をエスケープしなくてはなりませんが、
ダブル、シングルの両方エスケープする必要がある場合はどうしたら
よいのでしょうか?

例えば下記のようにJavaScriptのファンクションをコールするHTMLタグを
PHPで書き出して、このファンクションにPHPの変数を渡したい場合、
シングルとダブルクオーテーションの両方を使わざるを得ないと
思うのですが、このファンクションに渡される変数に例の$details1
〜3のようにシングル、ダブルクオーテーションの両方が含まれて
いると、いずれもエラーになってしまいます。

<?php
$details1 = "My friend's name is \"John\""; //ダブルクオーテーション内 ダブルのみをエスケープ
$details2 = ' My friend\'s name is "John"'; //シングルクオーテーション内 シングルのみをエスケープ
$details3 = "My friend\'s name is \"John\""; //ダブルクオーテーション内 両方エスケープ

echo "<input type='button' value='Show Details1' onClick='showDetails(\" $details1 \")' >";
echo "<input type='button' value='Show Details1' onClick='showDetails(\" $details2 \")' >";
echo "<input type='button' value='Show Details1' onClick='showDetails(\" $details3 \")' >";

?>

変数に' や"が含まれるのが避けられないケース(ユーザによる
フォーム入力値など)があると思うのですが、この場合皆さんはどう
処理されているのでしょうか?
ご教授よろしくお願いいたします。