小编Cra*_*nio的帖子

使用可变参数在PHP中以编程方式创建动态类实例?

我有一些代码用动态类(即从变量)创建广告实例:

$instance = new $myClass();
Run Code Online (Sandbox Code Playgroud)

由于构造函数根据$myClass值具有不同的参数计数,因此如何将参数的变量列表传递给新语句?可能吗?

php oop

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

Chrome会随机插入空格

我有一个页面,其样式在Chrome中搞砸了(Safari和其他人没问题).它似乎在页面的顶部,并在其他地方毁了我的布局HTML插入是有原因的一些奇怪的空白.如果我选择查看我的PHP页面的来源,我看到的是:

<body><div id="header-outer">
<div id="header" class="container">
    <div class="row">
        <div id="site-logo" class="span5">
            <img src='logo.png' />
        </div> ... etc ...
Run Code Online (Sandbox Code Playgroud)

(我修改了PHP,在BODY和DIV之间没有任何空间).但是,当我打开开发人员工具时,我看到的是:

<body>
    "" <- why?
    <div id="header-outer> etc. etc..
Run Code Online (Sandbox Code Playgroud)

如果我手动删除"",布局就可以了.这里发生了什么?我很困惑.

编辑:你可以在http://bit.ly/ZkZxVG 编辑页面看到:我试图禁用所有扩展,但对我的问题没有影响.

提示:我正在使用bootstrap和JQuery.他们可以搞乱代码吗?

html css html5 google-chrome cross-browser

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

从指令模板调用服务方法

假设我有一个指令:

<component>
   <img ng-src='{{something}}' />
</component>
Run Code Online (Sandbox Code Playgroud)

定义为:

app.directive("component", function() {
    return {
        scope: {},
        restrict: 'E',
        transclude: true,
        template: "<a href='' ng-click='MyService.doThings()' ng-transclude></a>"
    }
});
Run Code Online (Sandbox Code Playgroud)

尽管我付出了很多努力,但我还是不明白如何完成两项任务:

  1. 如何访问内部图像源路径?
  2. 我怎样才能通过这条路径去服务MyService?(想想一个灯箱包装)

更新解决方案:

app.directive("component", function(LightboxService) {
    return {
        restrict: 'E',
        transclude: true,
        replace: true,
        template: "<a href='' ng-click='lb()' ng-transclude></a>",
        link: function (scope, element, attrs) {
            scope.lb = function () {
                var src = $(element).find("img").attr("src");
                LightboxService.show(src);
            }
        }
    }
});
Run Code Online (Sandbox Code Playgroud)

angularjs angularjs-directive angularjs-scope

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

Fontello Glyph字体在Firefox上的奇怪行为,显示unicode代码而不是图标

我有一个网页.在它的右上角我有一些社交图标.它在Chrome(本地和网络服务器)中显示正常,它在本地FF中显示正常,但在在线页面上,我看到里面有Unicode代码的方形占位符.

奇怪的是,如果我打开Firebug和纠正通过飞fontello.css 源编辑,图标显示神奇,还是如此看来,这甚至是琐碎的校正,如添加和删除,然后一个空格.

这真让我感到困惑.有什么建议?

css firefox css3 webfonts fontello

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

MySQL 数据库 I18N,一种 JSON 方法?

更新:几年后我遇到了这个问题:现在我知道这是一个非常糟糕的方法。请不要使用这个。您始终可以为 i18n 使用其他表(例如productsproducts_lang),为每个区域设置单独的条目:更适合索引,更适合搜索等。


我正在尝试在 MySQL/PHP 站点中实现 i18n。

我读过一些回答说“i18n 通常不是数据库的一部分”,我认为这是一种有点狭隘的方法。产品名称,或者,就像我的例子一样,存储在数据库中的菜单结构和内容怎么样?

我想知道您如何看待我的方法,考虑到语言应该是可扩展的,所以我试图避免“每种语言解决方案一栏”。

一种解决方案是对要翻译的字符串使用引用 (id),并且对于每个可翻译列都有一个包含主键、字符串 id、语言 id 和翻译的表。

我认为的另一个解决方案是使用 JSON。因此,我的数据库中的菜单条目如下所示:

idmenu label
------ -------------------------------------------
5      {"en":"Homepage", "it":"pagina principale"}
Run Code Online (Sandbox Code Playgroud)

您如何看待这种方法?

php mysql json localization internationalization

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

模块化站点中的上下文感知AJAX调用

编辑:我考虑过一个可能的解决方案,但我提出了另一个问题,因为它非常具体:用PHP查看AJAX代理,是否可能?


有几次我遇到过这个问题......

我创建了具有一定程度模块化的网站.因此,有可能存在"组件"(想到粗略的CMS),它们都带有自己的PHP代码,CSS和JavaScript,都是动态包含的.考虑一下这样的结构:

{siteroot}/component/datagrid/datagrid.php
{siteroot}/component/datagrid/js/datagrid.js
{siteroot}/component/datagrid/css/datagrid.css
{siteroot}/component/datagrid/ajax/getsomedata.php
Run Code Online (Sandbox Code Playgroud)

现在,问题是:对于JavaScript文件,特别是AJAX调用,如何使用URL进行上下文感知? 例如,如果datagrid.js我想siteroot/component/datagrid/ajax/getsomedata.php用AJAX 调用我应该写(使用JQuery):

$("#ajax").load("siteroot/component/datagrid/ajax/getsomedata.php");
Run Code Online (Sandbox Code Playgroud)


第一个问题:siteroot不同安装的变化.我通过包括将军来管理那个

var codeBase = <? echo json_encode(Config::$siteRoot); ?>
Run Code Online (Sandbox Code Playgroud)

在每个页面上使用PHP,从每个安装都可以轻松编辑的Config文件,所以我可以使用任何类似的JavaScript:

$("#ajax").load(codeBase + "/component/Datagrid/ajax/getsomedata.php");
Run Code Online (Sandbox Code Playgroud)

您如何看待这种方法?


第二个问题:但我有PHP函数,它还返回组件文件夹,或其他组件的文件夹.将整个 URL动态化会很好.如果我愿意,这也会考虑组件结构的变化.我发现的唯一解决方案是使用.js.php动态Javascript.这非常不优雅,我必须在JavaScript文件中包含所有框架,例如:

<?php
include "../../libs/framework.php"; // get my functions...
$myUrl = Config::$siteRoot . Framework::getComponentAjaxDir("datagrid") . "/getsomedata.php";
?>
$("#ajax").load(<?=json_encode($myUrl)?>);
Run Code Online (Sandbox Code Playgroud)

另一个副作用是,我必须知道确切include的路径framework.php......我不想这样这么辛苦,我codedin".js.php"文件.有关这方面的任何智能解

javascript php ajax content-management-system

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

是否可以从HTTPS向HTTP发出JSONP请求?

我知道有一个几乎重复的问题,但答案根本不令人满意.

我需要使用在HTTP上运行的Openstreetmap服务进行地理编码.

我的网站通过HTTPS运行.

似乎不可能从https到http进行JSONP请求,浏览器(Chrome)抱怨不安全的内容.

有解决方案吗

javascript jquery jsonp web-services cross-domain

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

为什么du命令在发送h标志时显示双倍大小?

我想检查一下git存储库的总大小.有趣的是,当发送-h标志时,du给了我两个不同大小的国王.它实际上是双倍大小.

为什么是这样?什么是正确的尺寸?

MyMac:~/repositories/my-repo.git davidrod$ du -h
  0B    ./branches
 64K    ./hooks
4.0K    ./info
  0B    ./objects/info
3.3M    ./objects/pack
3.3M    ./objects
4.0K    ./refs/heads
8.0K    ./refs/tags
 12K    ./refs
3.3M    .
MyMac:~/repositories/my-repo.git davidrod$ du 
0   ./branches
128 ./hooks
8   ./info
0   ./objects/info
6672    ./objects/pack
6672    ./objects
8   ./refs/heads
16  ./refs/tags
24  ./refs
6856    .
Run Code Online (Sandbox Code Playgroud)

unix shell du

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

Backbone:触发器功能如何工作

我正在尝试通过查看我认识的人与骨干文档一起制作的应用程序来学习Backbone.该应用程序有一个Bucket模型和一个公司模型(即你把公司放在桶中).这一点有一点我不清楚,即它如何使用该trigger方法.

Backbone文档有这样的说法trigger:

触发 object.trigger(event, [*args])

触发给定事件或空格分隔的事件列表的回调.触发器的后续参数将传递给事件回调.

在我看的代码中,trigger被称为:

this.trigger("add:companies", Companies.get(companyId));
Run Code Online (Sandbox Code Playgroud)

两个问题:

  1. event我认为是add荷兰国际集团一公司,但在代码中的什么点以下不会实际发生的呢?是this.set({ "companies": arr }, { silent: true });运行时this.save();还是运行时(或其他)?

  2. 如果Companies.get(companyId)是可选参数,它实际传递给哪个函数?

摘自原始代码

window.Bucket = Backbone.Model.extend({
  defaults: function() {
    return {
      companies: []
    };
  },

  addCompany: function(companyId) {
    var arr = this.get("companies");
    arr.push(companyId);
    this.set({ "companies": arr }, { silent: true });
    this.save();
    this.trigger("add:companies", Companies.get(companyId));
  },

  // ...
Run Code Online (Sandbox Code Playgroud)

events callback backbone.js

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

当另一列具有相等的值时,对一列进行SUM

我们假设我有这个MySQL表:

id place_id area_mq n
-- -------- ------- --
1  1             50 1

2  2             90 1
3  2             20 1

4  3             10 1
5  3             10 2
6  3             10 3

7  4             20 1
8  4             20 2

9  5             15 1
10 5             25 1
Run Code Online (Sandbox Code Playgroud)

id是主键,place_id代表区域id,area_mq是mq中的表面区域.

我要做的是找到一个紧凑的查询来计算area_mq这些规则的总和:

  • 如果n相等的相同place_id,然后每计数area_mq(f.ex为place_id= 2,I计数90 20之和)
  • 如果n不同的相同place_id,再算上area_mq …

mysql

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