Maison > développement back-end > tutoriel php > 怎么百分比指定字符间的数字

怎么百分比指定字符间的数字

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
Libérer: 2016-06-23 13:07:20
original
1030 Les gens l'ont consulté

64.90你好
53.64我好
80.90他好
53.64哈哈
40.90呵呵
53.64噢噢

比如$num是获取上面页面的内容




怎么把之间的数字等于原数字的80%保留小数点两位
之间的数字等于原数字的60%保留小数点两位



保留原页面的其它内容包括中文字


回复讨论(解决方案)

$s =<<< TXT<value>64.90</value>你好<price>53.64</price>我好<value>80.90</value>他好<price>53.64</price>哈哈<value>40.90</value>呵呵<price>53.64</price>噢噢TXT;echo preg_replace_callback('/(<value>|<price>)([\d.]+)/',  function($m) {return sprintf('%s%.2f', $m[1], $m[2] * ($m[1] == '<value>' ? 0.8 : 0.6));},  $s);
Copier après la connexion
<value>51.92</value>你好<price>32.18</price>我好<value>64.72</value>他好<price>32.18</price>哈哈<value>32.72</value>呵呵<price>32.18</price>噢噢
Copier après la connexion

楼上的大哥你给的代码报错啊
Parse error: syntax error, unexpected T_FUNCTION in C:\111.php on line 10
能不能把得到的值再等于变量,具体怎么写
$p = preg_replace_callback('/(|)([\d.]+)/', function($m) {return sprintf('%s%.2f', $m[1], $m[2] * ($m[1] == '' ? 0.8 : 0.6));}, $s);

你的php版本低于5.3 不支持匿名函数,改成这样

function foo($m){     return sprintf('%s%.2f', $m[1], $m[2] * ($m[1] == '<value>' ? 0.8 : 0.6));}$p = preg_replace_callback('/(<value>|<price>)([\d.]+)/',  "foo", $s); echo $p;
Copier après la connexion

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal