ПРИМЕЧАНИЕ. Я ответил на свой вопрос ниже, но все равно публикую его для того, чтобы кто-то в моей ситуации узнал...
Это сводит меня с ума.
Вот сценарий. Здесь есть миллион вопросов об удалении символов, таких как «$», из простых строк (например, $string = '$10.00'
), и я могу это сделать.
Однако... когда строка исходит из вывода шорткода (например, $string = do_shortcode($mycode), я просто не могу этого сделать. Я могу удалить 1, 0 и ., но $ не сдвинется с места.
Примечание. Я использую шорткод «Переключатель валют Wordpress» (wpcs_price). Мой новичок подсказывает мне, что проблема в том, что моя строка вовсе не строка, а живой код или какой-то странный тип массива, который я не понимаю.
Пример.
function justwork() {
$rawprice = 10.00;
$rawpriceSC = '[wpcs_price value=\''.$rawprice.'\']';
$rawpriceOUT = do_shortcode($rawpriceSC); /* This will output $10.00 */
$finalprice = str_replace('$','',$rawpriceOUT);
echo $finalprice;
}
add_shortcode('justwork', 'justwork');
Это приведет к:
'$10.00'
($ не удалено)
Использование того же кода для другого символа (например, «.») работает отлично. Например.
$finalprice = str_replace('.','',$rawpriceOUT);
И вывод будет: «1000 долларов».
$ просто не сдвинется с места. Я пробовал substr,trim,preg и множество других вещей, и вскоре понял, что все это не то, чем кажется, это несет в себе некоторый багаж. Итак, я попытался захватить выходной буфер, и все же результирующая строка вела себя странно.
Любая помощь... о боже, пожалуйста, схожу с ума от этого.
ОТВЕТ
При просмотре всех методов, которые я рассматривал, появился один, которого у меня не было.
echo htmlentities($finalprice);
И угадайте, что это за выход?
<span class="wpcs_price" id="wpcs_58c296db36aa3" data-amount=10 ><span class="wpcs_price_symbol">$</span>10.00</span>
ХОРОШО. Так что либо мне нужно использовать & # 3 6 ; вместо $, или я могу оперировать всей этой кутерьмой, чтобы получить свои 10.00
. Блин.
answer
, а не как часть вопроса. - person chris85   schedule 10.03.2017