ยินดีต้อนรับคุณ, บุคคลทั่วไป กรุณา เข้าสู่ระบบ หรือ ลงทะเบียน

เข้าสู่ระบบด้วยชื่อผู้ใช้ รหัสผ่าน และระยะเวลาในเซสชั่น

ThaiSEOBoard.comพัฒนาเว็บไซต์Programmingเอา เครื่องหมาย ฿ ออกจาก string ยังไงครับ
หน้า: [1]   ลงล่าง
พิมพ์
ผู้เขียน หัวข้อ: เอา เครื่องหมาย ฿ ออกจาก string ยังไงครับ  (อ่าน 1262 ครั้ง)
0 สมาชิก และ 1 บุคคลทั่วไป กำลังดูหัวข้อนี้
O.o!!
Verified Seller
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 237
ออฟไลน์ ออฟไลน์

กระทู้: 1,429



ดูรายละเอียด
« เมื่อ: 06 กรกฎาคม 2011, 02:16:07 »

สมมุติ ผมมี 

$str="฿21.58";

ผมต้องการแค่   21.58  อ่ะครับ

ลองใช้ str_replace แล้วไม่ได้อ่ะ

ดูเหมือนจะง่าย แต่เขียนโค๊ดมานานหล่ะไม่ได้สักที   wanwan031 wanwan031
บันทึกการเข้า
hero-nana
ก๊วนเสียว
*

พลังน้ำใจ: 52
ออฟไลน์ ออฟไลน์

กระทู้: 207



ดูรายละเอียด
« ตอบ #1 เมื่อ: 06 กรกฎาคม 2011, 02:19:18 »

$str="฿21.58";

$str= str_replace("฿", "", $str);

http://php.net/manual/en/function.str-replace.php
บันทึกการเข้า

รับเขียนโปรแกรม magento module, แก้ไข theme หรืออื่นๆ สนใจ pm มาครับ
vii
Verified Seller
สมุนแก๊งเสียว
*

พลังน้ำใจ: 133
ออฟไลน์ ออฟไลน์

กระทู้: 998



ดูรายละเอียด เว็บไซต์
« ตอบ #2 เมื่อ: 06 กรกฎาคม 2011, 02:19:41 »

http://www.php.net/manual/en/function.floatval.php
บันทึกการเข้า

O.o!!
Verified Seller
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 237
ออฟไลน์ ออฟไลน์

กระทู้: 1,429



ดูรายละเอียด
« ตอบ #3 เมื่อ: 06 กรกฎาคม 2011, 02:25:54 »

$str="฿21.58";

$str= str_replace("฿", "", $str);

http://php.net/manual/en/function.str-replace.php

ไม่ เวิร์ครับ


ลองตามนี้แล้ว

โค๊ด:
<?php
$var 
= &#39;฿21.58&#39;;
$float_value_of_var floatval($var);
echo 
$float_value_of_var// 122.34343
?>


ผลออกมาเป็น 0  ครับ

 wanwan031 wanwan031
บันทึกการเข้า
hero-nana
ก๊วนเสียว
*

พลังน้ำใจ: 52
ออฟไลน์ ออฟไลน์

กระทู้: 207



ดูรายละเอียด
« ตอบ #4 เมื่อ: 06 กรกฎาคม 2011, 03:07:13 »



แสดงว่าcodeคุณไม่ใช่แบบที่ยกตัวอย่างมาแน่นอน อาจเป็นcodeที่เข้ารหัสมาเช่น &#xE3F ;
« แก้ไขครั้งสุดท้าย: 06 กรกฎาคม 2011, 03:18:19 โดย hero-nana » บันทึกการเข้า

รับเขียนโปรแกรม magento module, แก้ไข theme หรืออื่นๆ สนใจ pm มาครับ
vii
Verified Seller
สมุนแก๊งเสียว
*

พลังน้ำใจ: 133
ออฟไลน์ ออฟไลน์

กระทู้: 998



ดูรายละเอียด เว็บไซต์
« ตอบ #5 เมื่อ: 06 กรกฎาคม 2011, 03:12:42 »

$str "฿21.58";
$val1 preg_replace("/([^0-9\.,-])/"""$str);
echo 
floatval($val1);
บันทึกการเข้า

O.o!!
Verified Seller
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 237
ออฟไลน์ ออฟไลน์

กระทู้: 1,429



ดูรายละเอียด
« ตอบ #6 เมื่อ: 06 กรกฎาคม 2011, 08:44:23 »



แสดงว่าcodeคุณไม่ใช่แบบที่ยกตัวอย่างมาแน่นอน อาจเป็นcodeที่เข้ารหัสมาเช่น &#xE3F ;

ใช่ครับ จริงๆแล้วมันเป็น form ครับ ถูก submit มาเก็บไว้ใน variable แล้วคราวนี้จะเอาเครื่องหมายนั่นออก แต่เรื่องถูกเข้ารหัสผมก็ไม่แน่ใจว่าทำไมมันจะอยู่ดีๆเข้ารหัส ( ไม่มีความรู้ ) แต่ที่แปลกคือ ถ้าผม โค๊ดของท่านนี้

โค๊ด:
$str = "฿21.58";
$val1 = preg_replace("/([^0-9\.,-])/", "", $str);
echo floatval($val1);

แทนที่มันจะ echo  21.58  แต่เป็น  364721.58   ไม่รู้ว่า   ไอเลข 3647 มาจากใหน  ก็เลยต้อง str_replace เอา 3647 ออกอีกที 
*ถ้าผ่านมาอีกทีก็ช่วยอธิบายหน่อยครับว่า เลย 3647 มาจากใหน  wanwan008

+1 ทั้ง 2 ท่านครับ  wanwan020
บันทึกการเข้า
vii
Verified Seller
สมุนแก๊งเสียว
*

พลังน้ำใจ: 133
ออฟไลน์ ออฟไลน์

กระทู้: 998



ดูรายละเอียด เว็บไซต์
« ตอบ #7 เมื่อ: 06 กรกฎาคม 2011, 13:15:29 »



แสดงว่าcodeคุณไม่ใช่แบบที่ยกตัวอย่างมาแน่นอน อาจเป็นcodeที่เข้ารหัสมาเช่น &#xE3F ;

ใช่ครับ จริงๆแล้วมันเป็น form ครับ ถูก submit มาเก็บไว้ใน variable แล้วคราวนี้จะเอาเครื่องหมายนั่นออก แต่เรื่องถูกเข้ารหัสผมก็ไม่แน่ใจว่าทำไมมันจะอยู่ดีๆเข้ารหัส ( ไม่มีความรู้ ) แต่ที่แปลกคือ ถ้าผม โค๊ดของท่านนี้

โค๊ด:
$str = "฿21.58";
$val1 = preg_replace("/([^0-9\.,-])/", "", $str);
echo floatval($val1);

แทนที่มันจะ echo  21.58  แต่เป็น  364721.58   ไม่รู้ว่า   ไอเลข 3647 มาจากใหน  ก็เลยต้อง str_replace เอา 3647 ออกอีกที  
*ถ้าผ่านมาอีกทีก็ช่วยอธิบายหน่อยครับว่า เลย 3647 มาจากใหน  wanwan008

+1 ทั้ง 2 ท่านครับ  wanwan020

เป็นเพราะว่า ฿ ของคุณไม่ได้มาจากตัว ฿ จริงๆ แต่มันมีการไปเข้ารหัสมัน (คงใช้ htmlentities()) ทำให้มันกลายเป็น ฿ ซึ่งไอ้ตัว ฿ นี่เองที่เมื่อเรนเดอร์ผ่านเบราเซอร์แล้วจะเป็นตัว ฿
ทางแก้ คุณอาจต้องหาทางทำให้มันกลับมาเป็นตัวอักษรของมันเองก่อน แล้วทำการ preg_replace หรืออาจทำการ preg_replace พวกคำที่ขึ้นต้นด้วย & และจบด้วย ; ให้มันว่างเปล่าก่อน.

echo html_entity_decode("฿"ENT_QUOTES"UTF-8")."<br />\n";
« แก้ไขครั้งสุดท้าย: 06 กรกฎาคม 2011, 13:22:17 โดย vii » บันทึกการเข้า

O.o!!
Verified Seller
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 237
ออฟไลน์ ออฟไลน์

กระทู้: 1,429



ดูรายละเอียด
« ตอบ #8 เมื่อ: 06 กรกฎาคม 2011, 21:59:17 »

ขอบคุณครับคุณ vii ที่กลับมาอธิบายเพื่อเป็นความรู้ครับ

  wanwan017
บันทึกการเข้า
mistera
คนรักเสียว
*

พลังน้ำใจ: 10
ออฟไลน์ ออฟไลน์

กระทู้: 156



ดูรายละเอียด เว็บไซต์
« ตอบ #9 เมื่อ: 06 กรกฎาคม 2011, 22:07:06 »

ลอง echo ตัว ฿ แล้ว วิวซอส ดูครับ แล้วใช้ str_replace ครับ
บันทึกการเข้า

O.o!!
Verified Seller
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 237
ออฟไลน์ ออฟไลน์

กระทู้: 1,429



ดูรายละเอียด
« ตอบ #10 เมื่อ: 06 กรกฎาคม 2011, 22:20:37 »

ลอง echo ตัว ฿ แล้ว วิวซอส ดูครับ แล้วใช้ str_replace ครับ

ขอบคุณครับ คราวนี้เข้าใจแจ่มแจ้งเลย ว่ามันอย่างนี้นี่เอง   Shocked Shocked
บันทึกการเข้า
หน้า: [1]   ขึ้นบน
พิมพ์