jalil_gh
دوشنبه 04 آذر 1392, 22:38 عصر
با سلاخ خدمت اساتید.
من یه فایل xml دارم حاوی کلمات انکلیسی و فارسی که میخام اونارو بریزم تو mysql. فایل xml به این صورته.
<TR><TD>a</TD>
<TD>ÍÑÝ Çæá ÇáÝÈÇí ÇäáíÓí¡ ÍÑÝ ÇÖÇÝå ãËÈÊ .</TD>
</TR>
<TR><TD>a bomb</TD>
<TD>ÈãÈ ÇÊãí .</TD>
</TR>
<TR><TD>a la carte</TD>
<TD>(ÏÑ ãæÑÏ ÇÛÐ) ÌÏÇÌÏÇ ÓÝÇÑÔ ÏÇÏå ÔÏå .</TD>
</TR>
<TR><TD>aardwolf</TD>
<TD>(Ì.Ô.) ÝÊÇÑ (Proteles cristata)Èæãí ÌäæÈ æ ãÔÑÞ ÂÝÑíÞÇ .</TD>
</TR>
<TR><TD>aaron</TD>
<TD>åÇÑæä ÈÑÇÏÑ ãæÓí .</TD>
</TR>
<TR><TD>aaronic</TD>
<TD>(.Ô.) íÇåí ÇÒ ÎÇäæÇÏå åæÝÇÑíÞæä ÈäÇã|. hypericum calycinumåÇÑæäí¡ ÇÒ äÓá åÇÑæä¡ ÌÒæ Ñæå ÔíÔÇä ÇÆíä ÏÑÌå ãæÑãä . (mormon)</TD>
</TR>
<TR><TD>ab</TD>
<TD>íÔæäÏ áÇÊíä ÈãÚäí <ÏæÑÇÒ> æ <ÇÒ> æ <ÌÏÇÆí> æ <ÛíÑ> ãÇääÏABuseæ . ABaxial</TD>
</TR>
من اومدم اینو با استفاده از simplXML خوندم و به database اضافه کردم به این صورت:
<?php
try {
$conn = new PDO("mysql: host=localhost; dbname=dic; charset=utf8", 'root', '');
//$conn->exec("set names utf8");
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$stmt = $conn->prepare("INSERT INTO dic (word, meaning) VALUES (:word, :meaning)");
$xml = simplexml_load_file("data.xml");
foreach($xml->children() as $child)
{
$stmt->execute(array(
":word" => $child->TD[0],
":meaning" => $child->TD[1]
));
}
} catch(Exception $e) {
echo $e->getMessage();
}
?>
در ضمن باید بگم که collation دیتابیس هم برابر utf8-general-ci قرار دادم (persion و bin) رو هم امتحان کردم.
حالا وقتی میخام اطلاعات رو به این صورت نمایش بدم درست نمایش نمیده.
<!doctype html>
<html>
<head>
<meta charset="utf-8">
</head>
<body>
<table>
<?php
try {
$conn = new PDO("mysql: host=localhost; dbname=dic; charset=utf8", 'root', '');
//$conn->exec("set names utf8");
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$stmt = $conn->prepare("SELECT word, meaning FROM dic");
$stmt->execute();
$result = $stmt->fetchAll(PDO::FETCH_ASSOC);
foreach($result as $item){
echo "<tr>";
echo "<td>".$item['word']."</td>";
echo "<td>".$item['meaning']."</td>";
echo "</tr>";
}
} catch(Exception $e) {
echo $e->getMessage();
}
?>
</table>
</body>
</html>
چطور میشه این مشکل رو حل کنم؟:متفکر:
پ.ن: در ضمن من تاپیک پرسشهای تکراری رو خوندم و سایت رو هم جستجو کردم.
من یه فایل xml دارم حاوی کلمات انکلیسی و فارسی که میخام اونارو بریزم تو mysql. فایل xml به این صورته.
<TR><TD>a</TD>
<TD>ÍÑÝ Çæá ÇáÝÈÇí ÇäáíÓí¡ ÍÑÝ ÇÖÇÝå ãËÈÊ .</TD>
</TR>
<TR><TD>a bomb</TD>
<TD>ÈãÈ ÇÊãí .</TD>
</TR>
<TR><TD>a la carte</TD>
<TD>(ÏÑ ãæÑÏ ÇÛÐ) ÌÏÇÌÏÇ ÓÝÇÑÔ ÏÇÏå ÔÏå .</TD>
</TR>
<TR><TD>aardwolf</TD>
<TD>(Ì.Ô.) ÝÊÇÑ (Proteles cristata)Èæãí ÌäæÈ æ ãÔÑÞ ÂÝÑíÞÇ .</TD>
</TR>
<TR><TD>aaron</TD>
<TD>åÇÑæä ÈÑÇÏÑ ãæÓí .</TD>
</TR>
<TR><TD>aaronic</TD>
<TD>(.Ô.) íÇåí ÇÒ ÎÇäæÇÏå åæÝÇÑíÞæä ÈäÇã|. hypericum calycinumåÇÑæäí¡ ÇÒ äÓá åÇÑæä¡ ÌÒæ Ñæå ÔíÔÇä ÇÆíä ÏÑÌå ãæÑãä . (mormon)</TD>
</TR>
<TR><TD>ab</TD>
<TD>íÔæäÏ áÇÊíä ÈãÚäí <ÏæÑÇÒ> æ <ÇÒ> æ <ÌÏÇÆí> æ <ÛíÑ> ãÇääÏABuseæ . ABaxial</TD>
</TR>
من اومدم اینو با استفاده از simplXML خوندم و به database اضافه کردم به این صورت:
<?php
try {
$conn = new PDO("mysql: host=localhost; dbname=dic; charset=utf8", 'root', '');
//$conn->exec("set names utf8");
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$stmt = $conn->prepare("INSERT INTO dic (word, meaning) VALUES (:word, :meaning)");
$xml = simplexml_load_file("data.xml");
foreach($xml->children() as $child)
{
$stmt->execute(array(
":word" => $child->TD[0],
":meaning" => $child->TD[1]
));
}
} catch(Exception $e) {
echo $e->getMessage();
}
?>
در ضمن باید بگم که collation دیتابیس هم برابر utf8-general-ci قرار دادم (persion و bin) رو هم امتحان کردم.
حالا وقتی میخام اطلاعات رو به این صورت نمایش بدم درست نمایش نمیده.
<!doctype html>
<html>
<head>
<meta charset="utf-8">
</head>
<body>
<table>
<?php
try {
$conn = new PDO("mysql: host=localhost; dbname=dic; charset=utf8", 'root', '');
//$conn->exec("set names utf8");
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$stmt = $conn->prepare("SELECT word, meaning FROM dic");
$stmt->execute();
$result = $stmt->fetchAll(PDO::FETCH_ASSOC);
foreach($result as $item){
echo "<tr>";
echo "<td>".$item['word']."</td>";
echo "<td>".$item['meaning']."</td>";
echo "</tr>";
}
} catch(Exception $e) {
echo $e->getMessage();
}
?>
</table>
</body>
</html>
چطور میشه این مشکل رو حل کنم؟:متفکر:
پ.ن: در ضمن من تاپیک پرسشهای تکراری رو خوندم و سایت رو هم جستجو کردم.