我有一个用PHP编写的脚本和用Javascript编写的相同脚本.
它迭代一百万次,每次将一个字符串剥离成一个数组,并将第一个数组项分配给一个新变量.
PHP是:
class First
{
public function Iterate()
{
$count = 1000000;
$test_string = '';
$test_array = '';
$first_word = '';
for($i=1; $i <= $count; $i++){
$test_string = 'This is a test string';
//could use explode but no explode in js
$test_array = split(" ", $test_string);
$first_word = $test_array[0];
}
}
}
$first = new First();
$first->Iterate();
Run Code Online (Sandbox Code Playgroud)
而Javascript是:
function First() {
this.Iterate = function() {
count = 1000000;
test_string = '';
test_array = '';
first_word = '';
for(var i=1;i …Run Code Online (Sandbox Code Playgroud) 使用GitX,如何查看单个文件的修订历史记录?(最好使用命令行界面)
例如,使用GitK这很简单;
$ gitk app/models/activity.rb
Run Code Online (Sandbox Code Playgroud) 我在Windows Server上运行Xampp; Apache作为具有本地帐户的服务运行.在此服务器上,网络共享作为X:安装,具有特定凭据.
我想访问位于X上的文件:并运行以下代码
<?php
echo shell_exec("whoami");
fopen('X:\\text.txt',"r");
?>
Run Code Online (Sandbox Code Playgroud)
得到
theservername\thelocaluser
Warning: fopen(X:\text.txt) [function.fopen]: failed to open stream: No such file or directory
Run Code Online (Sandbox Code Playgroud)
我试图运行Apache,而不是作为服务,但直接通过启动httpd.exe ...并且代码工作.
我无法看到导致服务和应用程序之间的差异以及如何使其工作的原因.
假设我们有这个代码$test = 'text';.echo $test[0]和之间有什么区别echo $test{0}?结果是一样的.
处理包含类似字符数组的字符串的变量是一个好习惯吗?
我的项目要求我在保留数据库结构的同时重建大型系统的功能(出于历史记帐的原因).我从Symfony 2.0.x开始,已经开始升级到Symfony 2.1.2.
以前,我能够使用点表示法直接访问Twig中的广播组(multiple = false,expanded = true)个别选项.例如,在我的表单中,我定义了类似于此的元素:
$builder->add('settings_group', 'choice', array(
'choices' => array(
'existing' => 'A pre-existing setting group',
'override' => 'Specify an override instead'
),
'multiple' => false, 'expanded' => true,
'property_path' => false
)
);
Run Code Online (Sandbox Code Playgroud)
在我的Twig模板中,我的标记是这样的:
<ul>
<li>
{{ form_widget(form.settings_group.existing) }}
[ .. dropdown ..]
</li>
<li>
{{ form_widget(form.settings_group.override) }}
[ .. text input .. ]
</li>
</ul>
Run Code Online (Sandbox Code Playgroud)
它完美地适用于我需要做的事情,因为单选按钮"现有"或"覆盖"将确定哪些字段被保留以及哪些字段在保存实体时被重置.具体来说,我的问题出现了,因为我想在下一个单选按钮之前手动分离单选按钮并输出各种其他表单字段.基于现有功能和数据库,它是该系统中多种形式的重复模式.
升级到Symfony 2.1后,这不再可能,我收到一个错误:
对象"Symfony\Component\Form\FormView"的方法"existing"不存在
我已经尝试了各种可能性,包括.get()和迭代.choices()[最终给我的ChoiceView对象,然后我不能使用form_widget()]输出.我已经尝试制作一个自定义类型封装一个单选按钮加上相关的设置字段,但是由于元素名称的创建方式,我不能让它们互相排斥.我还尝试创建一个更复杂的Type来表示选项和相关字段,但是再次无法访问并在类型模板中呈现特定选项.
理想情况下,我希望API中的某些东西我只是忽略了,可以找到/替换并使其正常工作.否则,我们将非常感谢有关Symfony友好方法的建议(或链接).
我有以下代码:
$packed = pack('i',PHP_INT_MAX);
echo unpack('i', $packed)[1];
Run Code Online (Sandbox Code Playgroud)
结果我得到了 -1
我正在使用PHP 5.4.6-1ubuntu1.1 (cli) (built: Nov 15 2012 01:18:34)
,我PHP_INT_MAx的等于9223372036854775807
有没有办法处理pack函数和64位整数?
我遇到了麻烦scandir().我正在尝试snaps在我的云中的子域下的页面上显示我的目录中的文件.
这是我用过的PHP.
$files = scandir('./snaps');
print_r($files);
Run Code Online (Sandbox Code Playgroud)
这是错误.
Warning: scandir(./snaps) [function.scandir]: failed to open dir: No such file or directory in /home/u703778423/public_html/cloud/index.php on line 39
Warning: scandir() [function.scandir]: (errno 2): No such file or directory in /home/u703778423/public_html/cloud/index.php on line 39
Run Code Online (Sandbox Code Playgroud)
我不知道还能做什么.
我有一个数据库,其中包含表"团队"和属性"工作日".我生成了我的学说实体,现在我正在构建一个Symfony2表单.
我想将工作日的数组保存到团队表中的工作日属性中.weekdays属性是VARCHAR(255),因此它应该能够包含字符串数组.我使用选择类型,但在提交表单时我得到一个数组到字符串转换错误.
我使用了Symfony2选择formtype(带有多个选项),因为团队可以在工作日选择几个工作日.我首先检索了我的团队对象数据.然后我做这样的表格:
$builder = $this->createFormBuilder($team);
$form = $builder->add('weekday', 'choice', array(
'choices' => array(
'mon' => 'Monday',
'tue' => 'Tuesday',
'wed' => 'Wednesday',
'thu' => 'Thursday',
'fri' => 'Friday',
'sat' => 'Saturday',
'sun' => 'Sunday',
),
'multiple' => true,
'expanded' => true,
'label' => 'Day of the week',
'label_attr' => array('class' => 'control-label'),
'attr' => array('placeholder' => 'Day of the week', 'size' => '7')
))->getForm();
Run Code Online (Sandbox Code Playgroud)
提交表单时,我使用实体管理器将更改保存到数据库:
if ($request->isMethod('POST')) {
$form->bind($request);
if ($form->isValid()) {
// Save changes …Run Code Online (Sandbox Code Playgroud) 我在python中编写了一个语言词法分析器/解析器/编译器,它应该llvm-py稍后在LLVM JIT-VM(使用)中运行.前两个步骤现在非常简单,但是(即使我还没有启动编译任务)我看到一个问题,当我的代码想调用Python-Code(一般),或者与Python lexer交互时/ parser/compiler(特殊)分别.我主要担心的是,代码应该能够在运行时动态地将其他代码加载到VM中,因此它必须从VM中触发Python中的整个词法分析器/解析器/编译器链.
首先:这是否可能,或者VM一旦启动就"不可改变"?
如果是,我目前看到3种可能的解决方案(我愿意接受其他建议)
HipHop/HHVM可以作为守护进程运行(因此它在重新启动后会自动启动)
sudo /usr/bin/hhvm --mode daemon --config /etc/hhvm/server.hdf
Run Code Online (Sandbox Code Playgroud)
运行时,它完美地工作(这表明配置是可以的).但重新启动机器后,HHVM消失了,需要手动重启.以上行包括 这些配置已从HHVM创建者的官方教程中删除.经典服务语法sudo service hhvm start也可以很好地工作,但不会超过机器重启.
/var/log/hhvm/error.log中的HHVM错误日志在每次重新启动时记录此行:Unable to open pid file /var/run/hhvm/pid for write./etc/hhvm/server.hdf有PidFile = /var/run/hhvm/pid在第一线.由于默认情况下它附带HHVM,我不想更改它.我认为sudo就是问题所在.没有sudo HHVM将无法运行.Chmod 777'的pid文件并指向另一个空文件并没有解决问题.
将HHVM安装为守护进程的正确方法是什么?