我如何编写一个正则表达式模式来匹配浮点数和整数的所有变体(用点或逗号分隔)与长文本中的两个字符的字母数字后缀(带空格或不带空格),如下所示:
34MB
34 MB
34.3MB
34,3MB
34.30MB
34,30MB
34,30 MB
5MB
5 MB
1.024MB
1.024 MB
1,024MB
10,67MB
10.67MB
Run Code Online (Sandbox Code Playgroud)
可能吗?我尝试过类似的东西,但没有工作
/(\d+(.|,\d+)?\s\MB|KB|GB|TB)/
Run Code Online (Sandbox Code Playgroud) 我正在使用Doctrine2 and Zf2,现在当我需要获取count行时,我有以下两种获取它的方法。但我担心的是哪种方式会更优化和更快,因为将来行数将超过 50k。任何建议或任何其他方式来获取计数?是否有任何函数可以用于获取计数findBy?
或者我应该使用普通的 Zf2 数据库库来获取计数。我刚刚发现当数据很大时,ORM 不适合获取结果。请任何帮助将不胜感激
$members = $this->getEntityManager()->getRepository('User\Entity\Members')->findBy(array('id' => $id, 'status' => '1'));
$membersCnt = sizeof($members);
Run Code Online (Sandbox Code Playgroud)
或者
$qb = $this->getEntityManager()->createQueryBuilder();
$qb->select('count(p)')
->from('User\Entity\Members', 'p')
->where('p.id = '.$id)
->andWhere('p.status = 1');
$membersCnt = $qb->getQuery()->getSingleScalarResult();
Run Code Online (Sandbox Code Playgroud) 我有一个ZF2表单,我必须禁用本机验证器,具体原因.
然后,当以编程方式向表单添加元素时,我还添加了验证器.
其中一个元素是Multiselect数组.
$form->add( array(
'type' => 'Zend\Form\Element\Select',
'options' => array(
(
'label' => 'few items',
'value_options' => Array
(
'one' => 'one',
'two' => 'two',
'three' => 'three',
'four' => 'four',
)
),
'attributes' => array
(
'multiple' => 'multiple',
'value' => array('two','three'),
'required' => 1,
'id' => 'few_items'
),
'name' => 'few_items'
));
Run Code Online (Sandbox Code Playgroud)
另外,我将添加一个InArray验证器:
if($f instanceof \Zend\Form\Element\Select){
$inputFilter->add($factory->createInput(array(
'name' => $f->getName(),
'required' => $f->getAttribute('required') == 1,
'validators' => array(
array(
'name' => 'InArray',
'options' => array(
'haystack' => …Run Code Online (Sandbox Code Playgroud) 我在C:\ wamp中安装了wamp,我想在E:\ zf2中创建DocumentRoot文件夹作为虚拟域www.skeltonapplicaiton-zf2.local的虚拟主机.
在httpd.conf文件中未提交包含conf/extra/httpd-vhosts.conf的行.
httpd-vhosts.conf代码是
<VirtualHost *:80>
ServerName www.skeltonapplicaiton-zf2.local
ServerAlias skeltonapplicaiton-zf2.local
DocumentRoot "E:\zf2"
<directory "E:\zf2">
Options Indexes FollowSymLinks
AllowOverride all
Order Deny,Allow
Deny from all
Allow from all
</directory>
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)
在hosts文件中添加了条目
127.0.0.1 www.skeltonapplicaiton-zf2.local
127.0.0.1 skeltonapplicaiton-zf2.local
Run Code Online (Sandbox Code Playgroud)
然后重新启动wamp服务器.
在浏览器中打开www.skeltonapplicaiton-zf2.local后,我收到了错误消息
Forbidden
You don't have permission to access / on this server.
Run Code Online (Sandbox Code Playgroud)
Apache错误日志是
[Fri Aug 08 11:00:41.940054 2014] [authz_core:error] [pid 7256:tid 796] [client 127.0.0.1:59500] AH01630: client denied by server configuration: E:/zf2/
Run Code Online (Sandbox Code Playgroud) 我在获取ZF2 jsonModel从教义查询返回多结果时遇到问题。仅当我尝试返回数组结果时才出现此问题,而在返回单个项目时不出现此问题,代码如下:
public function mosquesAction() {
$em = $this
->getServiceLocator()
->get('Doctrine\ORM\EntityManager');
$dql = "select m.name from \Application\Entity\Mosque m ";
$result = $em->createQuery($dql)->getResult();
return new JsonModel($result);
}
Run Code Online (Sandbox Code Playgroud)
清真寺实体是:
namespace Application\Entity;
use Doctrine\ORM\Mapping as ORM;
/** @ORM\Entity */
class Mosque {
/**
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
* @ORM\Column(type="integer")
*/
private $id;
/** @ORM\Column(type="string") */
private $name;
/** @ORM\Column(type="string") */
private $address;
/** @ORM\Column(type="string") */
private $email;
/** @ORM\Column(type="string") */
private $website;
/** @ORM\Column(type="string") */
private $phone;
/** @ORM\Column(type="string") */
private $mobile;
/** …Run Code Online (Sandbox Code Playgroud) 我的项目使用Zend 3框架和php7.2.当我在Ubuntu 17.04上构建Web时,此Web无法正常工作.
> php -S 0.0.0.0:8080 -t public public/index.php
[Thu Dec 7 23:25:59 2017] PHP Warning: Unknown: failed to open stream: No such file or directory in Unknown on line 0
[Thu Dec 7 23:25:59 2017] PHP Fatal error: Unknown: Failed opening required '/home/isling/workspace/sp/shopping/public/public/index.php' (include_path='.:/usr/share/php') in Unknown on line 0
Run Code Online (Sandbox Code Playgroud)
'.../public/public/index.php' - >公共重复???
我一直试图通过Zend Framework 3的"入门"教程.它一直很顺利,但是一旦我进入"表单和操作",事情就会停止工作.
教程如下:https://docs.zendframework.com/tutorials/getting-started/forms-and-actions/
这是我不断得到的错误:
致命错误:Zend\Form\Form :: bindValues(array $ values = Array)的声明必须与Zend\Form\Fieldset :: bindValues(array $ values = Array,?array $ validationGroup = NULL)兼容...第24行\ zendtest\vendor\zendframework\zend-form\src\Form.php
我在创建了AlbumForm.php之后得到了这个,在Album.php中实现了InputFilterAwareInterface,创建了add.phtml视图脚本并在AlbumController.php中复制了所需的逻辑.从教程中复制了所有内容.
我无法通过谷歌找到任何有同样问题的人,所以我一定做错了什么,但我看不出它是什么.
有没有人知道我可能做错了什么?
我正在尝试生成像我的应用程序中使用的youtube视频ID的短字符串哈希,但我无法弄清楚什么是最快和最简单的方法,同时使用数组或基于json的字符串提供最短的哈希.
我读了Kevin van Zonneveld 关于这个主题的优秀文章,他根据整数生成alphaID,它有两种方式.还有很好的答案,但我的情况有点不同:
对于数据库中的每个唯一记录,有很多(超过100K)但很小的数据集(数组):
$id = 1;
$set[$id] = array(533 => array('a' => 78), 460 => array('a' => 89));
$set[$id] = array(534 => array('b' => 79), 620 => array('a' => 908));
$set[$id] = array(535 => array('a' => 80), 782 => array('c' => 901));
$id = 2;
$set[$id] = array(672 => array('a' => 12), 852 => array('a' => 122));
$set[$id] = array(542 => array('a' => 67), 372 => array('a' => 831));
$set[$id] = array(573 => array('a' => …Run Code Online (Sandbox Code Playgroud)我正在开发一个小型ZF2应用程序,它为客户端提供了一些API端点.它通过JSON返回一些简单的数据.
它有一个FooController扩展BaseRestController和AbstractRestfulController:
FooController extends BaseRestController
{
// ....
public function getList()
{
$data = array('foo' => 'bar');
return $this->send($data);
}
}
Run Code Online (Sandbox Code Playgroud)
和:
BaseRestController extends AbstractRestfulController
{
// ...
public function send($data)
{
return new JsonModel($data);
}
}
Run Code Online (Sandbox Code Playgroud)
现在我想根据用户的选择通过XML返回相同的数据.我想我必须在我的send()方法中做这样的事情BaseRestController:
if ($format === 'json') {
return new JsonModel($data);
} else {
return new XmlModel($data);
}
Run Code Online (Sandbox Code Playgroud)
我查看了内置的JsonModel,它扩展Zend\View\Model\ViewModel并添加了serialize()将变量序列化为JSON的方法.
我想我必须写一个类似的XmlModel,但我无法弄清楚如何正确编写这个模型,以及告诉我的控制器这个新模型的正确方法是什么.
要实现这一目标需要哪些类/工厂/渲染器/策略?
我阅读了文档的创建和注册备用渲染和响应策略部分,但是所有现有解决方案都检查了Accept HTTP标头,我不需要与标头交互,客户端只需将所需格式作为路由参数传递到我的应用程序中,/rest/foo?format=json或者 …
我正在尝试498 - Token Invalid在 Zend Framework 2 应用程序中使用自定义 http 状态代码发送响应。这显然不起作用,因为标准 Zend Response 类不允许自定义 http 代码。
所以我创建了自己的响应类来处理这个 http 代码并在我的操作中返回它:
$response = new CustomResponse();
$response->setStatusCode(498); //basic zend response objects throws InvalidArgumentException
return $response;
Run Code Online (Sandbox Code Playgroud)
虽然没有抛出异常,但浏览器说它返回了 500 错误。
如何让这个工作?
php ×5
doctrine-orm ×2
algorithm ×1
api ×1
arrays ×1
doctrine ×1
encryption ×1
fatal-error ×1
forms ×1
hash ×1
http ×1
httpresponse ×1
json ×1
orm ×1
regex ×1
rest ×1
validation ×1
virtualhost ×1
wamp ×1
xml ×1