這是很奇怪的解釋str_replace函數單引號,所以這裏去...PHP將不會從數據庫
我取出由包含轉義單引號phpMyAdmin的數據。我想通過一個PHP頭使用Content-Type: text/html;
到'
轉換爲'
。
在數據庫中的一列,這是值:This year's...
我的內容類型設置爲<?php header('Content-Type: text/html; charset=UTF-8'); ?>
我與mysql_fetch_assoc()
取出的數據,所以它應輸出,This year's
。但是,它輸出This year�s...
。
然後我從數據庫中手動刪除This year's...
,並用相同的This year's...
(直接在數據庫中)替換它。我再次設置內容類型text/html
並得到這個:
This year's...
就是這樣......這幾乎是imossible解釋。單引號通過表單提交給數據庫。我把它拿來和內容類型設置爲text/html,並將其輸出作爲'
�
。如果我去到數據庫中,手動刪除'
,並用相同的'
取代它,它然後輸出'
。
有沒有人遇到過這種奇怪的怪癖或識別可能是什麼?
UPDATE:
在數據庫中的值是This year's
其通過一個形式上傳。報價在數據庫中未轉義。以下是我如何獲取數據。我想將'
轉換爲'
。
<?php
header('Content-Type: text/html; charset=UTF-8');
include('init.inc.php');
function get_feeds() {
$query = mysql_query("SELECT * FROM test ORDER BY id DESC LIMIT 1");
while($fetch = mysql_fetch_assoc($query)) {
$text = $fetch['text'];
echo $text;
}
}
?>
<?php get_feeds(); ?>
它輸出This year�s
。
我然後從數據庫中刪除This year's
和手動寫在它的地方This year's
。它輸出這個This year's
。
這將是更好的共享代碼太 – Yogus
我添加一些代碼。代碼很自我解釋。數據庫中的單引號全部未轉義,並通過表單上傳。 – Graham
使用'$文字= html_entity_decode($取[ '文本']);' – Amir