まず、関連する質問を確認しました。答えが見つかりませんでした。このコードを使用してメッセージを表示しています。
echo 'Here goes your message with an apostrophe S like thi's ';
このエコー内の引用符はステートメントを壊すので、どうすればこれを機能させることができますか...
引用符を円記号でエスケープするか、二重引用符を使用して文字列を指定します。
echo 'Here goes your message with an apostrophe S like thi\'s';
echo "Here goes your message with an apostrophe S like thi's";
バックスラッシュを使用して引用符をエスケープします。
'hello\'s'
バックスラッシュの後に表示される一重引用符が画面に表示されます。
関数addslashes()を試しましたか?それもあなたの例を使用しています。
私は個人的に、同じことをするがその振る舞いを指定できるフラグを持っている関数htmlspecialchars()を好みます。
そのようです:
echo htmlspecialchars( "O'Rielly"、ENT_QUOTES);
これにより、HTMLWebページに文字列が正しく表示されます。
PHPでは、エスケープシーケンス文字は円記号(\
)です。特殊文字の前にこれを追加して、それらの文字がリテラルとして表示されるようにすることができます。例えば:
echo 'Here goes your message with an apostrophe S like thi\'s ';
または、次のように書くこともできます。
echo "Here goes your message with an apostrophe S like thi's ";
echo <<<EOT
You can put what ever you want here.. HTML, " ' ` anyting will go
Here goes your message with an apostrophe S like thi's
EOT;
このような文字列を使用する前に、必ずこれを読んでください。
回答のメソッドが私の状況では機能しなかったため、コードで引用符のタイプが変更され、引用符のタイプを交換してエコーを開始するたびに、新しいエコーを呼び出すことになりました。今は2019年で、わかりません。私はプログラミングに本当に慣れていないので、他の解決策については、これは私にとってはうまくいきました、例:
else {
echo '<a onclick="document.getElementById(';
echo "'open_login').style.display='block'";
echo '" class="branding w3-bar-item w3-button w3-mobile w3-light-blue w3-hover-white w3-right"href="#login"><span class="fa fa-user"></span> Login do Aluno</a>';
}
問題は、HTMLを介して一重引用符''で変数を渡していることである可能性があります。その場合は、二重引用符「」を使用してみてください。