小编Bra*_*ayn的帖子

你可以在PHP中动态创建实例属性吗?

有没有办法动态创建所有实例属性?例如,我想能够产生在构造函数中的所有属性,仍然能够访问它们的类实例化这样的后:$object->property.请注意,我想单独访问属性,而不是使用数组; 这是我想要的一个例子:

class Thing {
    public $properties;
    function __construct(array $props=array()) {
        $this->properties = $props;
    }
}
$foo = new Thing(array('bar' => 'baz');
# I don't want to have to do this:
$foo->properties['bar'];
# I want to do this:
//$foo->bar;
Run Code Online (Sandbox Code Playgroud)

更具体地讲,当我处理那些有大量的属性类别,我希望能够选择数据库中的所有列(代表属性),并从中创建实例属性.每个列值应存储在单独的实例属性中.

php oop design-patterns class

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

什么是PHP的最佳IDE?

我是一名PHP开发人员,现在我使用Notepad ++进行代码编辑,但最近我一直在寻找一个IDE来简化我的工作.

我看过Eclipse,Aptana Studio和其他几个人,但我并没有真正决定,它们看起来都不错,但有点复杂.我相信一旦我习惯它会变得容易,但我不想浪费我的时间.

这就是我要找的东西:

  • FTP支持
  • 代码亮点
  • SVN支持很棒
  • Ruby和JavaScript会很棒

php ide

48
推荐指数
10
解决办法
144万
查看次数

通过PHP插入HTML的最佳方法是什么?

从"最佳实践"的角度来看,您认为使用PHP插入HTML的最佳方式是什么?目前我使用以下方法之一(主要是后者),但我很想知道你认为哪种方法最好.

<?php
  if($a){
?>
[SOME MARKUP]
<?php
  }
  else{
?>
[SOME OTHER MARKUP]
<?php
  }
?>
Run Code Online (Sandbox Code Playgroud)

反对:

<?php
  unset($out);
  if($a) $out = '[SOME MARKUP]';
  else $out = '[OTHER MARKUP]';
  print $out;
?>
Run Code Online (Sandbox Code Playgroud)

html php template-engine

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

如何在JavaScript中JSON解码数组元素?

我有一个JavaScript数组,其中包含一个URL.如果我尝试简单地将URL放在页面中(该数组位于涉及Yahoo! Maps API的项目中),则会显示应该显示的URL.

但是,如果我尝试重定向或只是对链接数组元素执行"警报",我得到:

function(){return JSON.encode(this);}

据我所知,这是因为浏览器在呈现页面时会执行JSON.encode,因此链接显示正常.我已经尝试了几种方法使其重定向(这是我想要对链接做的)正确(包括'eval'的使用),但没有运气.

遵循一些建议我已经运行eval('(' + jsonObject + ')')但它仍然返回相同的输出.

那怎么回事?

javascript json

21
推荐指数
4
解决办法
20万
查看次数

如何在文件根目录外包含文件?

我想做的是将'domain1'中的'file1.php'包含在'domain2'上的'file2.php'中.所以我认为我应该做的是这样的:

file2.php
require_once '/var/www/vhosts/domain1/httpdocs/file1.php';
Run Code Online (Sandbox Code Playgroud)

但这不能用于我无法真正掌握的原因.所以我做的是将我的路径添加到包含路径.就像是:

file2.php
set_include_path(get_include_path() . PATH_SEPARATOR . "/var/www/vhosts/domain1/httpdocs");
require_once 'file1.php';
Run Code Online (Sandbox Code Playgroud)

那么请你给我一些提示,说明我做错了什么?

谢谢

更新 - 无论哪种方式,我收到以下错误消息:

Fatal error: require() [function.require]: Failed opening required '/var/www/vhosts/domain1/httpdocs/file1.php' (include_path='.:/php/includes:/usr/share/pear/') in /var/www/vhosts/domain2/httpdocs/file2.php on line 4
Run Code Online (Sandbox Code Playgroud)

我也尝试过使用safe_mode On和Off.

UPDATE2:我还在我的测试文件上将权限更改为777,并且我已经在bash中仔细检查了包含文件的路径.

解决方案:我设法解开了这个谜!我的托管公司使用Plesk来管理域名等.php.ini中的错误报告级别也不是E_ALL.当我向E_ALL设置错误报告时,我收到一条警告:

Warning: require() [function.require]: open_basedir restriction in effect.
Run Code Online (Sandbox Code Playgroud)

所以我进入/var/www/vhosts/domain2/conf/httpd.include并编辑了open_basedir路径.请注意,这不是一个持久的解决方案,因为每次更改域配置时,此配置文件都会被plesk重写.您应该做的是在同一目录中编辑(或创建)'vhost.conf'文件,然后运行:

 /usr/local/psa/admin/sbin/websrvmng --reconfigure-vhost --vhost-name=DOMAIN.TLD
Run Code Online (Sandbox Code Playgroud)

这应该重新配置您的域的设置,但由于一些奇怪的原因,它不适用于open_basedir.我可以修改其他东西,比如document_root,但它不会改变open_basedir,但这是另一个问题:D

解决方案最终:对于那些有同样问题的人来说,最终的代码是有效的.我刚刚在/var/www/vhosts/domain2/conf/vhost.conf中添加了这个(您可以将'/ var/www/vhosts'更改为'/'或任何您喜欢的内容):

    <Directory /var/www/vhosts/DOMAIN.TLD/httpdocs>
    <IfModule mod_php5.c>
            php_admin_flag engine on
            php_admin_flag safe_mode off
            php_admin_value open_basedir "/var/www/vhosts"
    </IfModule>
            Options -Includes -ExecCGI
    </Directory>
Run Code Online (Sandbox Code Playgroud)

谢谢大家!

php include include-path

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

如何使用动态内容生成实现不显眼的javascript?

我编写了很多动态生成的内容(在PHP下开发),我使用jQuery为我的项目增加了额外的灵活性和功能.

事情是,以一种不引人注目的方式添加JavaScript是相当困难的.这是一个例子:

您必须生成随机数量的div元素,每个元素都触发不同的功能onClick.我可以使用onclick我的div元素上的属性来调用带有参数的JS函数,但这只是一个糟糕的解决方案.此外,我可以在我的PHP for循环中生成一些jQuery代码以及每个div ,但是再次这不会完全不引人注目.

那么这种情况下的解决方案是什么?

javascript jquery

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

jQuery队列事件

所以我想要做的是使用jQuery为我正在使用的一些AJAX调用协调一些效果.我的问题是第二个div的fadeIn与第一个div的fadeOut同时触发.

这也适用于其他事件,所以我很好奇,有没有办法在fadeOut完成后才能启动fadeId?

jQuery("#div1").fadeOut("slow"); 
jQuery("#div2").fadeIn("slow");
Run Code Online (Sandbox Code Playgroud)

谢谢

javascript jquery

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

Aptana 1.5"svn:错误解决案件"

我今天安装了Aptana 1.5但安装完成后,当我尝试提交,更新,修复等时,所有我的SVN项目都给出了这样的错误:

Access is denied.  
svn: Error resolving case of 'C:\Users\Brayn\My Documents\Aptana Studio Workspace\PentruConstrucii'
Run Code Online (Sandbox Code Playgroud)

我已经卸载了我以前的aptana版本,重新安装了aptana 1.5,改变了我的工作区,它仍然给了我这个错误.

你知道它会是什么吗?

aptana eclipse svn

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

存储PHP类属性的最佳方法是什么?

重复: 在PHP中存储类变量的最佳方法是什么?

有一段时间以来,我一直在与同事讨论如何在PHP类中存储属性.

那么你认为应该使用哪一个.像这样的东西:

Class test{
    public $attr1;
    public $attr2;
    .............. 
    public function __construct(){
        $this->attr1 = val;  
        $this->attr1 = val;
        ...................   
    }
}
Run Code Online (Sandbox Code Playgroud)

与:

Class test{
    public $data;

    public function __construct(){
        $this->data['attr1'] = val;
        $this->data['attr2'] = val;
        ..........................       
    }
}
Run Code Online (Sandbox Code Playgroud)

当您拥有必须经常存储和检索的许多属性的对象时,这一点很重要.

在处理具有许多属性的对象时,同样重要的是,您是为每个属性使用getter和setter,还是使用一个方法来设置all和one方法来获取所有属性?

php oop design-patterns class

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

如何使Ruby读取.cer public ssl key?

我正在开发一个需要电子支付模块的RoR网站.电子支付实现要求使用由它们提供的公共ssl密钥对xml数据进行编码.

我在Ruby中尝试做的事情:

public_key = OpenSSL::PKey::RSA.new(File.read(public_key_file))
Run Code Online (Sandbox Code Playgroud)

如果我只是尝试单独打开文件,它工作正常.但RSA.new()方法返回以下错误:

OpenSSL::PKey::RSAError: Neither PUB key nor PRIV key:: nested asn1 error
    from (irb):5:in `initialize'
    from (irb):5:in `new'
    from (irb):5
Run Code Online (Sandbox Code Playgroud)

从我在在线文档中看到的,使用.pem文件但我的公钥类似于public.cer.这可能是问题吗?在e-payment公司提供的PHP示例中,密钥本身似乎没问题,同样的public.cer文件工作正常.

我究竟做错了什么?

谢谢,

encryption openssl ruby-on-rails

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

如何使用setTimeout()调用jQuery(document).ready之外的函数?

我的代码看起来像:

$(document).ready(function(){
    var cont = 0;

    function func1(cont)
    {
        //Some code here
        search.setSearchCompleteCallback(this, searchComplete, null);
        //Some other code
    }
    func1(cont);

    function searchComplete()
    {
        //Some code
        cont += 1;
    if (cont < length ) {
    func1(cont);
    } else {
            // Other code
    }
    }
});
Run Code Online (Sandbox Code Playgroud)

所以我想做的是延迟执行func1(续); 在searchComplete()函数内部.这样做的原因是所有代码都是使用Google搜索API和PageRank检查,我需要放慢脚本速度,这样我才不会被禁止.(特别是关于公关检查的要求).如果我只是在func1(cont)上使用setTimeout(); 它说没有定义func1(),如果我试图在$(document).ready()之外获取该函数,它会看到该函数,但Google代码不会因为它需要完全加载的页面.

如何修复setTimeout或如何暂停脚本几秒钟?

谢谢!

javascript jquery settimeout

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