小编mah*_*n3d的帖子

PHP添加2个小数点数(金钱)会导致总金额错误

我的MySQL数据库中有一个客户发票表,其中有一个名为price的DECIMAL(10,2)字段.

在php中获取这些值并计算总和时,

例如:在剧本中

$totalAmount = 0; // initialised them to 

   while(records){              

       $amount = $inv_amount - ($pay_amount + $onamount); //float i guess. 2.22, 14.22
       $totalAmount = $totalAmount + $amount; //float i guess. 2.22, 14.22 ..etc

    }
Run Code Online (Sandbox Code Playgroud)

echo $totalAmount;它在最终数量0.01中有轻微错误时,但是当处理大约20,000的大数据集时,这个错误变得非常可观,例如200+

在使用PHP中的这些数字处理价格时,最安全的方法是什么?或者我最终会遇到潜在的舍入错误以及使用浮点数据类型时常见的问题?

正在使用

round 
number_format
Run Code Online (Sandbox Code Playgroud)

对于此类金融应用程序,最合适的解决方案是什么?

php

5
推荐指数
1
解决办法
1万
查看次数

PHP克隆关键字

可能重复:
什么是PHP中的对象克隆?

我正在研究一个使用"克隆"关键字的现有框架,不确定这是否是一个好主意?我真的不明白需要使用'clone'关键字.

例如,看看这个编码

  public function getStartDate ()
  {
    return clone $this->startDate;
  }
Run Code Online (Sandbox Code Playgroud)

对我来说这个功能应该如下,我没有看到克隆的需要.

  public function getStartDate ()
  {
    return $this->startDate;
  }
Run Code Online (Sandbox Code Playgroud)

php

5
推荐指数
1
解决办法
3445
查看次数

PHP公共根目录下的php.ini文件?它够安全吗?

当你无法访问根级别的php.ini,你可以将php.ini上传到web-root时,我听说你想要更改php.ini设置,这是正确的吗?

自定义PHP设置的另一种方法是创建一个名为的文件php.ini并将其上传到您的Web服务器.这类似于.htaccess文件的工作方式,除了您不必在行的开头添加"php_value"

如果这是正确的意味着任何人打字

www.xx.com/php.ini 
Run Code Online (Sandbox Code Playgroud)

应该看看设置?这不是一个安全隐患吗?

php

5
推荐指数
2
解决办法
5323
查看次数

如何在Doctrine 2 DQL中使用DATE()?

在Symfony中,当我在mysql中使用以下查询和DATE函数时,我得到一个错误

    SELECT employer.companyName AS employerName, jobs.jobId, jobs.industryId, 
jobs.focusId, jobs.companyName, jobs.employerId, jobs.jobTitle, DATE(jobs.createdDate) AS 
createdDate , DATE(jobs.endDate) AS endDate , jobs.replyTo, jobs.featured , jobs.jobType, 
jobs.status  FROM Acme\\AppsBundle\\Entity\\Jobs jobs , Acme\\AppsBundle\\Entity\\Employer 
employer  WHERE  jobs.employerId = employer.employerId  GROUP BY  jobs.jobId  ORDER BY 
jobs.jobId DESC 
Run Code Online (Sandbox Code Playgroud)

为什么这有什么样的解决方法可以克服这种情况,在数据库中这些字段即end_date被存储为mysql类型'date'

    [2014-09-17 05:52:42] request.CRITICAL: Uncaught PHP Exception Doctrine\ORM\Query
\QueryException: "[Syntax Error] line 0, col 138: Error: Expected known function, got 
'DATE'" at /.../Doctrine/ORM/Query/QueryException.php line 52 {"exception":"[object] 
(Doctrine\\ORM\\Query\\QueryException: [Syntax Error] line 0, col 138: Error: Expected known function, got 'DATE' …
Run Code Online (Sandbox Code Playgroud)

php mysql doctrine symfony doctrine-orm

5
推荐指数
3
解决办法
1万
查看次数

phpStorm-出现错误时突出显示行号?

在phpstorm IDE中,有一种方法可以将IDE的设置设置为

1. Show the whole coding line in red when there is a error, including the line number on the left ?

2. Like in Dreamweaver to when pressed shit+enter it to insert a <br /> ?
Run Code Online (Sandbox Code Playgroud)

在phpstorm IDE 7.1中可以做这些事情吗?

ide phpstorm

5
推荐指数
1
解决办法
1327
查看次数

Strophe MUC的例子

有没有人在Strophe muc扩展中有一个连接,changenick,...等函数调用的示例代码?

我试图这样做,我不知道如何调用扩展函数,并将插件添加到js,是否添加

xmpp strophe

4
推荐指数
2
解决办法
7658
查看次数

PHP - 有没有一种简单的方法可以从 Smarty 更改为 TWIG 模板系统?

我只是想知道是否有一种简单的方法可以从 smarty 切换到 Twig 模板系统,没有风险,并且无需一个一个手动编辑(因为我的网站有 1000 多个模板文件,我无法一个一个重写) 另一方面 ,

我想改变的原因是

  1. Twig 在内存和 CPU 时间方面表现更好(参见http://fabien.potencier.org/article/34/templating-engines-in-php

  2. smarty 现在变得非常不活跃,而不是最好的模板系统......

  3. 在 smarty 中无法使用现代框架,如 symfony ...等

我找到了一个转换器

https://github.com/freshrichard/smartytotwig
Run Code Online (Sandbox Code Playgroud)

但是我不知道这个模板转换的准确性..

关于我该怎么做的任何其他想法?

php smarty twig

4
推荐指数
1
解决办法
2650
查看次数

没有引用或无法找到引用引起的不确定错误 - java.lang.IndexOutOfBoundsException

我的崩溃列表中出现以下错误,我不知道如何将其与我的代码链接,因为它看起来很通用且不确定

java.lang.IndexOutOfBoundsException: 

  at java.util.ArrayList.throwIndexOutOfBoundsException (ArrayList.java:255)

  at java.util.ArrayList.get (ArrayList.java:308)

  at android.widget.ArrayAdapter.getItem (ArrayAdapter.java:337)

  at android.widget.ArrayAdapter.createViewFromResource (ArrayAdapter.java:390)

  at android.widget.ArrayAdapter.getView (ArrayAdapter.java:362)

  at android.widget.Spinner.makeView (Spinner.java:661)

  at android.widget.Spinner.layout (Spinner.java:609)

  at android.widget.Spinner.onLayout (Spinner.java:568)

  at android.view.View.layout (View.java:16075)

  at android.view.ViewGroup.layout (ViewGroup.java:5300)

  at android.widget.LinearLayout.setChildFrame (LinearLayout.java:1703)

  at android.widget.LinearLayout.layoutHorizontal (LinearLayout.java:1692)

  at android.widget.LinearLayout.onLayout (LinearLayout.java:1468)

  at android.view.View.layout (View.java:16075)

  at android.view.ViewGroup.layout (ViewGroup.java:5300)

  at android.widget.LinearLayout.setChildFrame (LinearLayout.java:1703)

  at android.widget.LinearLayout.layoutVertical (LinearLayout.java:1557)

  at android.widget.LinearLayout.onLayout (LinearLayout.java:1466)

  at android.view.View.layout (View.java:16075)

  at android.view.ViewGroup.layout (ViewGroup.java:5300)

  at android.widget.FrameLayout.layoutChildren (FrameLayout.java:579)

  at android.widget.FrameLayout.onLayout (FrameLayout.java:514)

  at android.widget.ScrollView.onLayout (ScrollView.java:1511)

  at android.view.View.layout (View.java:16075)

  at android.view.ViewGroup.layout (ViewGroup.java:5300)

  at android.support.v4.view.ViewPager.onLayout (ViewPager.java:1795) …
Run Code Online (Sandbox Code Playgroud)

java layout android android-layout

4
推荐指数
2
解决办法
254
查看次数

Docker - 安装php-memcached扩展无法正常工作?

我一直在尝试在我的php-5.6容器中安装memcached,但是我无法让它工作,因为我没有在phpinfo()中看到memcached扩展,并且由于某种原因它正在抱怨它无法找到memcache.so在代码中.

我的docker文件用于php构建

FROM php:5.6-fpm
RUN apt-get update && apt-get install -y \
        libfreetype6-dev \
        libjpeg62-turbo-dev \
        libmcrypt-dev \
        libpng12-dev \
    && docker-php-ext-install -j$(nproc) iconv mcrypt \
    && docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/ \
    && docker-php-ext-install -j$(nproc) gd     

RUN docker-php-ext-install mysqli mbstring pdo_mysql 

# Download and Installing php libraries 
RUN apt-get install -y memcached
RUN apt-get -y install php-pear php5-dev php5-memcached geoip-bin geoip-database libgeoip-dev php5-geoip

# Download and Installing php libraries 
RUN pecl install geoip

# Download and Installing git and vim …
Run Code Online (Sandbox Code Playgroud)

php nginx docker dockerfile docker-compose

3
推荐指数
1
解决办法
2770
查看次数

Php将日期时间如"2017-01-10T18:00:00.000Z"转换为标准时间

我收到来自其他服务器的响应,日期时间如下,

"2017-01-10T18:00:00.000Z"

我想将此转换为标准日期时间,我该怎么做?

"2017-01-10 18:00:00"

有这样做的标准方法吗?还是我依靠正则表达式进行解码呢?

注意:

大多数人建议我使用以下功能

echo date("Y-m-d H:i:s", strtotime("2017-01-10T18:00:00.000Z")) . "\n";**
Run Code Online (Sandbox Code Playgroud)

但输出我得到的错误是这个功能是"2017-01-11 05:00:00"而不是"2017-01-11 18:00:00"为什么?我想像我说的那样"2017-01-10 18:00:00"

php date

3
推荐指数
2
解决办法
2万
查看次数

保护服务器中的文件存储

我有一个工作网站,所以有很多cv上传到服务器并存储在公共的文件夹位置.我只是想知道我可以在Apache,php级别做什么安全措施来阻止未经授权的人访问其他人的cv's

我有

  1. 禁用目录浏览
  2. 在html中创建了虚假链接,然后将.htaccess映射到另一个位置

..等等

只是想知道有没有办法我们可以完全隐藏文件名出现在浏览器网址中(可能有像application/pdf ..etc这样的标题,并且可以随时读取文件的内容)这是可能还是有更好的方法将它们存储在MySQL DB中的方式?

php file-upload file

2
推荐指数
1
解决办法
1674
查看次数

Docker使用Memcache扩展安装PHP-7-fpm?失败,无法找到config.m4

我正在尝试使用支持memcache的PHP版本7.0安装Docker,我的docker文件如下所示,但是它失败@STEP 10有错误

Step 10 : RUN /usr/bin/phpize
 ---> Running in 450678a59cd4
Cannot find config.m4.
Make sure that you run '/usr/bin/phpize' in the top level source directory of the module

[31mERROR[0m: Service 'php' failed to build: The command '/bin/sh -c /usr/bin/phpize' returned a non-zero code: 1 
Run Code Online (Sandbox Code Playgroud)

Docker文件如下

FROM php:7.0-fpm
#FROM php:5.6-fpm
RUN apt-get update && apt-get install -y \
        libfreetype6-dev \
        libjpeg62-turbo-dev \
        libmcrypt-dev \
        libpng12-dev \
    && docker-php-ext-install -j$(nproc) iconv mcrypt \
    && docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/ \
    && docker-php-ext-install …
Run Code Online (Sandbox Code Playgroud)

php git memcached docker

2
推荐指数
1
解决办法
3778
查看次数