Heim > Backend-Entwicklung > PHP-Tutorial > 怎么百分比指定字符间的数字

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

WBOY
Freigeben: 2016-06-23 13:07:20
Original
1020 Leute haben es durchsucht

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);
Nach dem Login kopieren
<value>51.92</value>你好<price>32.18</price>我好<value>64.72</value>他好<price>32.18</price>哈哈<value>32.72</value>呵呵<price>32.18</price>噢噢
Nach dem Login kopieren

楼上的大哥你给的代码报错啊
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;
Nach dem Login kopieren

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage