小编Kin*_*nch的帖子

迭代脚本上的内存消耗

我有一个用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)

javascript php memory node.js

9
推荐指数
1
解决办法
220
查看次数

GitX - 如何查看单个文件的提交历史记录?

使用GitX,如何查看单个文件的修订历史记录?(最好使用命令行界面)

例如,使用GitK这很简单;

$ gitk app/models/activity.rb
Run Code Online (Sandbox Code Playgroud)

git gitx

8
推荐指数
2
解决办法
2554
查看次数

读取网络驱动器上的文件

我在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 ...并且代码工作.

我无法看到导致服务和应用程序之间的差异以及如何使其工作的原因.

php networking

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

使用数组语法访问字符串中的字符

假设我们有这个代码$test = 'text';.echo $test[0]和之间有什么区别echo $test{0}?结果是一样的.

处理包含类似字符数组的字符串的变量是一个好习惯吗?

php string

8
推荐指数
1
解决办法
6646
查看次数

直接从Twig中的ChoiceType元素访问特定选项

我的项目要求我在保留数据库结构的同时重建大型系统的功能(出于历史记帐的原因).我从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友好方法的建议(或链接).

php symfony

7
推荐指数
1
解决办法
2882
查看次数

打包64位整数

我有以下代码:

$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位整数?

php

7
推荐指数
1
解决办法
5126
查看次数

scandir无法打开目录

我遇到了麻烦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)

我不知道还能做什么.

php

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

使用选择表单类型的数组到字符串转换错误

我正在做的事情:

我有一个数据库,其中包含表"团队"和属性"工作日".我生成了我的学说实体,现在我正在构建一个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)

php doctrine symfony

6
推荐指数
1
解决办法
8863
查看次数

从LLVM JIT调用Python代码

我在python中编写了一个语言词法分析器/解析器/编译器,它应该llvm-py稍后在LLVM JIT-VM(使用)中运行.前两个步骤现在非常简单,但是(即使我还没有启动编译任务)我看到一个问题,当我的代码想调用Python-Code(一般),或者与Python lexer交互时/ parser/compiler(特殊)分别.我主要担心的是,代码应该能够在运行时动态地将其他代码加载到VM中,因此它必须从VM中触发Python中的整个词法分析器/解析器/编译器链.

首先:这是否可能,或者VM一旦启动就"不可改变"?

如果是,我目前看到3种可能的解决方案(我愿意接受其他建议)

  • "突破"虚拟机,可以直接调用主进程的Python函数(可能通过将其注册为LLVM函数,以某种方式重定向到主进程).我没有发现任何关于这一点,无论如何我不确定,如果这是一个好主意(安全等).
  • 将运行时(在运行时静态或动态)编译为LLVM-Assembly/-IR.这要求IR代码能够修改它运行的VM
  • 将运行时(静态)编译到库中并将其直接加载到VM中.同样,它必须能够将函数(等)添加到它运行的VM中.

python llvm llvm-py

6
推荐指数
2
解决办法
684
查看次数

为什么在服务器重启后,守护进程模式下的HHVM无法自动启动?

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.hdfPidFile = /var/run/hhvm/pid在第一线.由于默认情况下它附带HHVM,我不想更改它.我认为sudo就是问题所在.没有sudo HHVM将无法运行.Chmod 777'的pid文件并指向另一个空文件并没有解决问题.

题:

将HHVM安装为守护进程的正确方法是什么?

php daemon hiphop hhvm

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

标签 统计

php ×8

symfony ×2

daemon ×1

doctrine ×1

git ×1

gitx ×1

hhvm ×1

hiphop ×1

javascript ×1

llvm ×1

llvm-py ×1

memory ×1

networking ×1

node.js ×1

python ×1

string ×1