みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

PHP からのファイル書き出しで、 HTMLタグがうまく書き出されない問題について。

phpを使っていろんな拡張子のファイル(php html txt画代表的)
を書き出すソフトを作ったのですが、
目的としては、携帯電話からアクセスしていつでも本を見ながらスクリプトを実験できるということです。
でも、なぜか「<a href="http://*****">クリック</a>」
というようなスクリプトで書き出すと「<a href=\"http://*****\">クリック</a>」
になってしまって困っています。
これは、文字コードが原因なのでしょうか。
どなたか教えてください。
<?php

$data = $_POST["data"];
$extension = $_POST["extension"];

$name = "data";
if($data){
$fp = fopen($name. ".". $extension,"w+");
fwrite($fp,$data);
fclose($fp);
print "書き出し完了";
}
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html lang="ja">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=Shift_Jis">

<style type="text/css">
<!--
textarea {
width: 600px;
height: 10em;
}
-->
</style>
</head>

<form method="post" action="write.php">
拡張子<br>
<input type="text" name="extension" value="txt"><br/>
内容<br/>
<textarea name="data"></textarea><br/><br/>
<input type="submit" name="submit" value="送信">
</form>

投稿日時 - 2008-10-21 07:53:37

QNo.4417578

すぐに回答ほしいです

質問者が選んだベストアンサー

確認してみないとわかりませんが、おそらくお使いの環境ではmagic_quotesが有効になっているのでは無いでしょうか?
get_magic_quotes_gpc()関数で確認してみてください。
magic_quotesが有効になっている場合、$_POST[]の値は勝手に上記のような加工がされます。
stripslashes()関数を通すことで、元の状態に戻せます。

$dataの受取をこのように書くとよいでしょう。

if ( get_magic_quotes_gpc() ) {
$data = stripslashes( $_POST["data"] );
} else {
$data = $_POST["data"];
}

投稿日時 - 2008-10-21 09:20:31

お礼

いやーーーーっ!!!
本当にありがとうございます。
おかげで携帯からもphpなどの勉強ができます!!!
本当に感謝しています。
ありがとうございました(^O^)

投稿日時 - 2008-10-21 18:16:12

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)

あなたにオススメの質問