2016-04-23 4 views
0

У меня есть значение цены, которое имеет знак фунта перед ним. Мне нужно удалить этот знак.PHP Удалить знак фунта (£) от цены

$price = '£3.76' (This comes from database and is stored as a string within the database) 

1) preg_replace('/[\£]/', '', $price); 
2) ltrim($price, '£'); 
3) str_replace(utf8_decode("£"),"",utf8_decode($price)); 
4) str_replace('£', '', $price); 

Я пытался использовать все, но ничего не работало. 1 и 4 заменяет Â, а 2 и 3 добавляет Â влево от значения. Может кто-то, пожалуйста, помогите мне.

+0

Какая из приведенных выше команд дает результат, который вы видите? Пожалуйста, разместите полную строку, содержащую значение цены в качестве примера, чтобы у нас появился пример реального мира, чтобы помочь вам. – nvisser

+0

Я отредактировал этот вопрос сейчас, пожалуйста, дайте мне знать, если это более ясно. – user4676307

+2

Если вы видите 'Â', в браузере это происходит потому, что некорректная кодировка символов контента, отправляемая сервером. Вы можете добавить 'header ('Content-type: text/html; charset = utf-8');' к вашему скрипту, чтобы правильно увидеть знак фунта. Но '$ price = str_replace ('£', '', $ price),' отлично подходит для меня, чтобы удалить его. – drew010

ответ

0

У меня была подобная ситуация. Попробуйте следующий код:

$amount = "$500"; 

echo substr($amount,1,strlen($amount)); // returns "500" 
+0

Поскольку знак фунта не является ASCII, он использует 2 байта, поэтому нужно использовать mb_substr. – drew010

+0

@ drew010 Я использовал mb_substr для замены первого символа. Однако я все еще не думаю, что это правильное решение, поскольку возможно, что знак фунта отсутствует в строке – user4676307

Смежные вопросы