アプリ版:「スタンプのみでお礼する」機能のリリースについて

メールからきりだしたデータで
$From="あいうえお"
という変数に
$From=str_replace("<","[",$From);//誤動作コード置換え
という処理をしたら
$From="あいうえお[****@i.softbank.jp>"
という風にかわってしまいます。
なぜでしょう?

A 回答 (3件)

どこかでそういう処理が入っているからでしょうね。


今見た範囲にはそのような処理はありません
    • good
    • 0
この回答へのお礼

回答頂きありがとうございます。
そう思って下記のようなデバックでチェックしたのですが・・

$ID="123";
$Date="1019";
$From="あいうえ"

$datavalue="[id]".$ID."[date]".$Date."[from]".$From;

echo "(1)".$datavalue;

$datavalue=str_replace("\n","",$datavalue);//改行コード削除
$datavalue=str_replace("<","[",$datavalue);//誤動作コード置換え
//$datavalue=str_replace(">",">",$datavalue);//誤動作コード置換え

echo "<br>";
echo "(2)".$datavalue;

結果
(1)[id]123[date]1019[from]あいうえ
(2)[id]123[date]1019[from]あいうえ[****@i.softbank.jp>

となるのです。何か考えられる原因はありますか?

お礼日時:2010/11/19 15:46

<?php


$from="ああああ <test@test.test>";
print($from);
?>

コレを実際に動かしてみてください。
ブラウザには「ああああ」とでると思います。
ソースを開いてみてください。
「ああああ <test@test.test>」となってると思います。
ブラウザが<test@test.test>はタグだと思って表示してないのでしょう。

回答番号:No.1さんへの回答でコードをかかれてますけど
たぶんそのままで動かしてないですよね?
「$From="あいうえ"」のあとにセミコロンないですし。
切り出したデータで動かしたのではないでしょうか?

で、$fromが置換された際に<が[に変わったのでタグとみなされなくなり
ブラウザじょうで出力された、ということだと思います。
    • good
    • 0
この回答へのお礼

その通りでした、ありがとうございます。

お礼日時:2010/11/19 19:13

#2さんの言うとおりそうですね。


ブラウザ上でデータを確認する場合はhtmlspecialchars()しないといけません。

<?php
$from="ああああ <test@test.test>";
echo "(1)".htmlspecialchars($from),"<br>\n";
$from=str_replace("<","[",$from);
echo "(2)".htmlspecialchars($from),"<br>\n";
?>
    • good
    • 0
この回答へのお礼

勉強になりました、ありがとうございます。

お礼日時:2010/11/19 19:14

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!