小编Pet*_*ter的帖子

无法重新声明类 - 检查类是否已存在

我正在使用一个两次调用同一个类并抛出错误的脚本:

Fatal: Cannot redeclare class urlConverter (/var/www/core/cache/includes/elements/modsnippet/23.include.cache.php:14)
Run Code Online (Sandbox Code Playgroud)

我尝试将以下代码放入:

if( !class_exists( 'urlConverter', false ) )
{
    $urlConverter = new urlConverter( $modx );
}
Run Code Online (Sandbox Code Playgroud)

但是,我正在使用的CMS正在报告错误500并且无法在日志中看到它为什么会抛出该错误.

有谁知道如何检查该类是否已被正确声明?

编辑:

我正在使用CMS,因此Class被放在一个Snippet而不是实际文件中.这就是他们称之为片段的方式:

$data['viewonlinelink'] = $this->modx->runSnippet( 'urlConverter', array(
                                            'action' => 'encrypt',
                                            'string' => http_build_query( $string ) ) );
Run Code Online (Sandbox Code Playgroud)

我需要第二次打电话来获得不同的结果.

EDIT2:

这是urlConverter:

<?php
class urlConverter {

public $modx;

public function __construct( modX &$modx )
{
    $this->modx =& $modx;
}


public function action( $scriptProperties )
{
    return $this->$scriptProperties['action']( $scriptProperties['string'] );
}

private function encrypt( $str )
{
    return $str; …
Run Code Online (Sandbox Code Playgroud)

php oop class

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

MySQL在多个键上更换INTO?

我正在使用MySQL中的伪会话表.该表目前看起来像这样:

id   |   key   |   value   |   metadata
Run Code Online (Sandbox Code Playgroud)

id是会话所属的用户,元数据是用户的IP地址.这背后的想法是每个用户可以从不同的IP地址多次登录.我想知道是否REPLACE INTO可以只替换id = userid,key = key,AND metadata = ip_address的值,所以理想情况下我们最终会得到这样的结果:

id   |   key   |   value   |   metadata
 1       test      avalue       127001
 1       test      bvalue       19216801
 1       test      cvalue       19215810
Run Code Online (Sandbox Code Playgroud)

有可能吗?

mysql

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

正确使用map [string] interface {}?

我有两个相关的问题,我不想为这两个问题打开一个新的主题:

给出以下代码:

1    type Request struct {
2       Values map[string]interface{}
3    }
4
5    func (r Request) Send() {
6       client := &http.Client{}
7       resp, _ := http.Post("http://example.com", "text/json", &r.Values)
8    }
Run Code Online (Sandbox Code Playgroud)

我们的想法是能够未知量的一个块发送key => value,key => key => value等我们的API端点.

问题1:

我该如何分配Request.Values?我们可能需要使用的示例用例如下(请原谅PHP代码,我们正在转换):

'name' => [ $first, $last ],
'address' => [ 'city' => 'city', 'state' => 'state' ],
'country' => 'US'
Run Code Online (Sandbox Code Playgroud)

在这个例子中,我们有key => value,key => [ values ]key => [ …

google-app-engine go

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

将Magento安装移至新服务器

我现在已经尝试了几个小时将我们的Magento安装从dev转移到live.我发现网上有多个链接,说要移动Magento安装,你需要/app/etc/local.xml用新的MySQL凭据编辑和更新它,然后删除内容/var/cache/(有些甚至建议删除整个/var文件夹.我也删除了内容/var/session/.我们的服务器没有缓存(没有memcached,varnish等).我甚至重新启动了apache,看看我是否可以刷新任何可能正在运行的缓存.

所以问题是我们的Magento安装仍然试图以某种方式连接到旧数据库.我们收到此错误:

SQLSTATE[28000] [1045] Access denied for user 'oldDBUsername'@'localhost' (using password: YES)
Run Code Online (Sandbox Code Playgroud)

如果有人对如何解决这个问题有任何想法,我还没有提到过,我将不胜感激.

编辑:

这是Magento还报告的堆栈跟踪:

Trace:
#0 fileroot/lib/Zend/Db/Adapter/Pdo/Mysql.php(96): Zend_Db_Adapter_Pdo_Abstract->_connect()
#1 fileroot/lib/Varien/Db/Adapter/Pdo/Mysql.php(300): Zend_Db_Adapter_Pdo_Mysql->_connect()
#2 fileroot/lib/Zend/Db/Adapter/Abstract.php(459): Varien_Db_Adapter_Pdo_Mysql->_connect()
#3 fileroot/lib/Zend/Db/Adapter/Pdo/Abstract.php(238): Zend_Db_Adapter_Abstract->query('SET NAMES utf8', Array)
#4 fileroot/lib/Varien/Db/Adapter/Pdo/Mysql.php(389): Zend_Db_Adapter_Pdo_Abstract->query('SET NAMES utf8', Array)
#5 fileroot/app/code/core/Mage/Core/Model/Resource.php(169): Varien_Db_Adapter_Pdo_Mysql->query('SET NAMES utf8')
#6 fileroot/app/code/core/Mage/Core/Model/Resource.php(110): Mage_Core_Model_Resource->_newConnection('pdo_mysql', Object(Mage_Core_Model_Config_Element))
#7 fileroot/app/code/core/Mage/Core/Model/Resource/Db/Abstract.php(320): Mage_Core_Model_Resource->getConnection('core_read')
#8 fileroot/app/code/core/Mage/Core/Model/Resource/Db/Abstract.php(335): Mage_Core_Model_Resource_Db_Abstract->_getConnection('read')
#9 fileroot/app/code/core/Mage/Core/Model/Resource/Cache.php(53): Mage_Core_Model_Resource_Db_Abstract->_getReadAdapter()
#10 fileroot/app/code/core/Mage/Core/Model/Cache.php(449): Mage_Core_Model_Resource_Cache->getAllOptions()
#11 fileroot/app/code/core/Mage/Core/Model/Cache.php(491): Mage_Core_Model_Cache->_initOptions()
#12 fileroot/app/code/core/Mage/Core/Model/App.php(1175): Mage_Core_Model_Cache->canUse('config')
#13 fileroot/app/code/core/Mage/Core/Model/Config.php(414): Mage_Core_Model_App->useCache('config')
#14 fileroot/app/code/core/Mage/Core/Model/Config.php(294): Mage_Core_Model_Config->_canUseCacheForInit()
#15 fileroot/app/code/core/Mage/Core/Model/App.php(408): …
Run Code Online (Sandbox Code Playgroud)

php mysql magento amazon-web-services

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

PHP验证有效的UUID

我在另一个答案中找到了以下Javascript函数:

function createUUID() {
    var s = [];
    var hexDigits = "0123456789abcdef";

    for (var i = 0; i < 36; i++) {
        s[i] = hexDigits.substr(Math.floor(Math.random() * 0x10), 1);
    }

    s[14] = "4";
    s[19] = hexDigits.substr((s[19] & 0x3) | 0x8, 1);
    s[8] = s[13] = s[18] = s[23] = "-";

    var uuid = s.join("");
    return uuid;
}
Run Code Online (Sandbox Code Playgroud)

这在javascript中创建了一个RFC有效的UUID/GUID.我想知道的是,如果有一种方法在它到达PHP端时验证字符串.我发现了一个正则表达式可能会将所有大致格式化为真的:

/^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/

但只要你指定一个长度和格式相同的字符串就可以使用它,它会通过验证.

有没有办法在javascript函数中添加某种种子,然后在PHP中验证或者PHP是否有办法验证传递的数字是否与正确的格式匹配?

任何帮助是极大的赞赏.

php regex uuid

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

YUI压缩器错误 - jQuery Autotype

我正在尝试使用YUI Compressor将所有javascripts缩小并放入单个文件中.

我正在使用这个javascript文件:https://github.com/mmonteleone/jquery.autotype/blob/master/jquery.autotype.js

我显然有本地副本.但是当我通过YUI Compressor运行该特定文件时,我收到以下错误:

[INFO] Using charset UTF-8
[ERROR] 20:32:missing formal parameter
[ERROR] 21:32:missing formal parameter
[ERROR] 21:71:syntax error
[ERROR] 22:30:syntax error
[ERROR] 25:13:syntax error
[ERROR] 26:22:syntax error
[ERROR] 27:36:identifier is a reserved word
[ERROR] 28:13:syntax error
[ERROR] 29:21:syntax error
[ERROR] 53:29:invalid property id
[ERROR] 53:30:syntax error
[ERROR] 54:30:syntax error
[ERROR] 55:22:syntax error
[ERROR] 62:29:invalid property id
[ERROR] 62:30:syntax error
[ERROR] 63:30:syntax error
[ERROR] 64:22:syntax error
[ERROR] 106:33:invalid property id
[ERROR] 106:34:syntax error
[ERROR] 107:34:syntax error …
Run Code Online (Sandbox Code Playgroud)

javascript jquery yui minify

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

在未知的其他子域名下重定向www子域名?

基本上我的问题就是这样:将www.subdomain.example.com重定向到subdomain.example.com

我们为所有用户提供了一个myusername.ourdomain.com链接,问题是当有人试图访问www.myusername.ourdomain.com我们的通配符ssl时会被破坏,并且服务器通常会抛出错误.

所以我提供的链接中的答案显示了如何重定向单个www.apachedefined.mydomain.com我想知道如何使用相同的逻辑www.thiscanbeanything.mydomain.com.

任何帮助是极大的赞赏.

apache .htaccess

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

Bash sed实现用分号替换

我正在尝试为New Relic自动化安装脚本,在我的bash文件中,我有以下内容:

_APPNAME="Test Application"

_OLD=";newrelic.appname = \"PHP Application\""
_NEW="newrelic.appname = \"${_APPNAME}\""

sed -i 's/$_OLD/$_NEW/g' /etc/php.d/newrelic.ini
Run Code Online (Sandbox Code Playgroud)

由于某种原因,sed命令根本没有触发,任何人都可以看到这个逻辑有什么问题吗?

注意我也曾尝试${_OLD}${_NEW}无济于事.

bash shell

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

如何将结构传递给另一个包?

这是我正在尝试做的一个非常淡化的版本,但请帮助我以下场景:

PackageA.go

package A

import "B"

type TestStruct struct {
  Atest string
}

func Test() {
  test := TestStruct{"Hello World"}
  B.Test(test)
}
Run Code Online (Sandbox Code Playgroud)

PackageB.go

package B

import "fmt"

func Test(test TestStruct) {
  fmt.Println(test.Atest)
}
Run Code Online (Sandbox Code Playgroud)

undefined: test当它击中包B时失败

基本上我遇到的问题是将结构从一个包传递到另一个包,或者甚至传递作为指向其他结构或函数的指针的变量.

任何指针都会非常有用.

go

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

在Go中执行vbscript

我试图让Go程序执行一个添加几个注册表值的vbscript.处理此问题的Go代码如下:

err = exec.Command("cmd.exe", "/c", "registry.vbs").Run()
if err != nil {
    fmt.Printf("Error: %s\n", err.Error())
}
Run Code Online (Sandbox Code Playgroud)

当我运行我的Go程序并且它到达执行此vbscript的部分时,绝对没有任何反应.注册表值不会更改,也不会出现错误.如果我尝试运行以下命令它可以正常工作:

cmd.exe /c C:\path\to\file\registry.vbs
Run Code Online (Sandbox Code Playgroud)

我尝试过的事情:

  • 在Go程序中添加文件路径
  • 以管理员身份运行Go程序
  • 我尝试使用.Output()而不是,.Run()这导致输出等于[ ]

有人知道为什么会这样吗?

任何方向将不胜感激.

windows vbscript go

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

Silverlight只运行一次DispatchTimer

我试图在Silverlight/C#中找到一种让DispatchTimer只运行一次的方法.

我有一个用户表单,当提交时我想显示一条消息10秒然后消失并杀死DispatchTimer线程.

我知道如何制作一个重复的DispatchTimer:

clock.Interval = TimeSpan.FromSeconds(10);
clock.Tick += clockTick;

clock.Start();
Run Code Online (Sandbox Code Playgroud)

但我希望该线程一完成就结束.

c# silverlight silverlight-4.0

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

使用jQuery将视频加载到JW Player中

所以在JW Player之后我可以加载一个视频(很明显)它看起来像这样:

<script type="text/javascript" src="/scripts/jwplayer.js"></script>
<div id="myElement">Loading the player ...</div>
<script type="text/javascript">
    jwplayer("myElement").setup({
        file: "/uploads/example.mp4",
        height: 360,
        image: "/uploads/example.jpg",
        width: 640
    });
</script>
Run Code Online (Sandbox Code Playgroud)

我试图完成这样的事情,一旦模态被触发(使用jQuery),在视频内加载一个视频:

$("body").on('click', '[data-toggle=modal]', function(e){
   var vid = $(this).attr('data-video');
   jwplayer("videoElement").setup({ file: vid, width: 540 });
   jwplayer("videoElement").play();
});
Run Code Online (Sandbox Code Playgroud)

但是我收到错误: Uncaught TypeError: Cannot call method 'setup' of null

我尝试了以下其他(可能是可怕的)想法:

$("#videoElement").jwplayer.setup({ file: vid, width: 540 });
Run Code Online (Sandbox Code Playgroud)

var $jwplayer = jwplayer();
$("body").on('click', '[data-toggle=modal]', function(e){
  $jwplayer("videoElement").setup({ file: vid, width: 540 });
}
Run Code Online (Sandbox Code Playgroud)

然而,所有产生相同的结果 Cannot call method 'setup' of null

任何指针都将非常感激.

javascript jquery jwplayer

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