小编Ant*_*ony的帖子

使用字符串路径设置嵌套数组数据

我有一个不寻常的用例,我正在尝试编写代码.目标是:我希望客户能够提供字符串,例如:

"cars.honda.civic = On"
Run Code Online (Sandbox Code Playgroud)

使用此字符串,我的代码将设置如下值:

$data['cars']['honda']['civic'] = 'On';
Run Code Online (Sandbox Code Playgroud)

很容易将客户输入标记为:

$token = explode("=",$input);
$value = trim($token[1]);
$path = trim($token[0]);
$exploded_path = explode(".",$path);
Run Code Online (Sandbox Code Playgroud)

但是现在,我如何使用$爆炸路径设置数组而不做像eval那样讨厌的东西?

php arrays token

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

使用可变宽度div时的CSS文本省略号

我想知道当父div和相邻div没有足够的空间时,是否有任何方法确实在浮动div增益省略号中有文本.例如:

<style>
.parent-div {
    width: 100%;
    border: 1px;
    padding: 4px;
}
.text-div {
    float: right;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;    
}
.icon-div {
    float: left;
}
</style>
<div class="parent-div">
  <div class="text-div">This is text I'd like to truncate when space doesn't permit</div>
  <div class="icon-div">X</div>
</div>
Run Code Online (Sandbox Code Playgroud)

到目前为止,如果我关闭浏览器窗口,父div将崩溃,然后text-div中的空格将消失,但是当没有更多空间时,省略号永远不会启动.

我唯一能想到的就是在窗口调整大小并在text-div上动态设置一个新的固定宽度时触发一个事件,但这只是感觉不够优雅,特别是考虑到填充和其他相邻的工件我不得不减去适当的宽度.

对这个有什么想法吗?

这是一个jsFiddle演示:http://jsfiddle.net/Blender/kXMz7/

html css ellipsis css-float

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

由于虚拟键盘导致的window.resize导致jquery mobile出现问题

我遇到了一个不寻常的问题,我正在寻找建议.基本上,我正在使用:

  • JQuery Mobile 1.1
  • JQuery 8.2
  • PhoneGap(科尔多瓦)2.1

在iPhone上我的应用程序的许多页面上,如果我将光标放入输入框,则会打开虚拟键盘.这很好,期待.

这是问题所在:在某些情况下(但不是全部),将光标放入输入框会触发window.resize事件.我通过以下代码验证了这一点:

    $(window).resize(function(e) {
        alert('The window resize occurred!  Width: ' + $(window).width() + " Height: " + $(window).height());
        debugger;
        return false;
    });
Run Code Online (Sandbox Code Playgroud)

在解析window.resize事件后,JQueryMobile立即决定将页面调整为不正确的高度.我可以告诉它是页面,因为我为每个元素添加了不同的颜色边框以查看它是什么.在许多情况下,这个调整大小的动作导致我的一半GUI在div的底部溢出,有时甚至使我的光标隐藏在div下面.

理解它的最好方法是使用屏幕截图:

window.resize()触发页面调整大小

现在,我真的不希望任何人对此有一个确切的答案.我只是在寻找调试技巧.我在window.resize()事件中添加了一个"调试器"语句,并尝试逐步执行代码.我希望能够引导一些旨在调整页面大小的其他调整大小的侦听器.如果我能找到它,那么当有人选择表单元素时,我可以暂时削弱它,然后重新启用模糊或方向更改的大小调整.问题是,我逐步完成了每行代码,调试过程在调整大小之前就停止了.

这让我想知道是否还有一些其他事件被从window.resize中解雇.所以我在下面添加了两行:

    document.addEventListener("throttledresize", function() { alert("throttledresize fired.") }, false);
    document.addEventListener("orientationchange", function() { alert("orientationchange fired.") }, false);
Run Code Online (Sandbox Code Playgroud)

然而,两者都没有被解雇.所以我有点卡住了.我很清楚我知道问题是什么,但我无法追溯到源头.关于在哪里可以找到这个在window.resize()上调整页面大小的神秘代码的任何建议?

jquery event-handling jquery-mobile cordova

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

JQuery Mobile触发器('create')命令不起作用

今晚JQuery Mobile正在哭泣.我正在尝试构建自定义控件,所以我不会通过我的应用程序重复某些元素,这给了我很多时间.具体来说,我在HTML文件中有以下内容:

<div id="custom-header" data-role="header" data-position="inline" data-theme="f">
    <a href="index.html" data-icon="back" style="margin-top:5px" data-theme="b">Back</a>
    <div style="text-align: center; padding-top: 5px; padding-bottom: 3px"><img src="../images/logo.png" ></div>
    <a href="index.html" data-icon="home" style="margin-top:5px" data-theme="b">Home</a>
</div>
Run Code Online (Sandbox Code Playgroud)

在我的主文件中,我基本上是这样做的:

<script src="http://code.jquery.com/jquery-1.6.4.min.js"></script>
<script src="http://code.jquery.com/mobile/1.0rc2/jquery.mobile-1.0rc2.min.js"></script>        
<div data-role="page" id="test-console" data-theme="m">

    <div id="me-header"></div>

    <script>

        $.get('header.html', function (retData) {
            $('me-header').html(retData).trigger('create');
        });

     </script>

</div>
Run Code Online (Sandbox Code Playgroud)

所以这就是问题 - 标题与我将header.html的内容直接粘贴到我的JQM页面时的呈现方式不同.它几乎感觉像触发器('创建')没有做任何事情.

有任何想法吗?我已经烧了大约三个小时,像http://jquerymobiledictionary.pl/faq.html这样的教程似乎没有应用..

mobile jquery controls triggers dynamic

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

管理iOS客户端/服务器应用程序更新的最佳方式

我有一个后勤问题:我正在试图找出管理与应用程序不同步的API的最佳方法.解释它的最好方法是举个例子:

假设MyApp版本1.0发布到需要first_name,last_name和email的"submit_feedbacK"API.

然后我将MyApp版本2.0提交到App Store.该版本旨在将first_name,last_name,gender和email发布到API.所有这些都是API上的必填字段.

我遇到的问题: - 如果我在新应用程序运行之前更新API,它将破坏版本1.0 - 如果我等到版本2.0处于活动状态并远程瘫痪1.0,我必须正确计时.

我猜想"正确答案"是维护两种不同的API.但如果两个API都发布到同一个实时数据库,那会让事情变得有点尴尬.

有人有关于如何建模的建议吗?

versioning api

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

Google API返回未配置的访问权限

我认为这将是直截了当的,但由于某种原因,我正在受到这一点的打击.

我正在使用PHP + CURL来尝试检索Web字体列表.代码很简单:

        $url = "https://www.googleapis.com/webfonts/v1/webfonts?sort=popularity&key=MY_SERVER_APPS_KEY";

        $ch = curl_init();
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
        curl_setopt($ch, CURLOPT_HEADER, false);
        curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
        curl_setopt($ch, CURLOPT_URL, $url);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
        $google_response = curl_exec($ch);
        curl_close($ch);            
Run Code Online (Sandbox Code Playgroud)

该代码正在攻击Google,但$ google_response始终返回:

"error": {
    "code": 403,
    "errors": [
        {
            "domain": "usageLimits",
            "reason": "accessNotConfigured",
            "message": "Access Not Configured"
        }
    ],
    "message": "Access Not Configured"
}
Run Code Online (Sandbox Code Playgroud)

我已经设置了一个服务器访问密钥,并将我的两个Web服务器的API密钥放在上面.(为了验证我的IP,我在curlmyip.com上做了一个WGET)我还从服务选项卡启用了"Web Fonts Developer API".

有什么我可以俯瞰的吗?

google-api http-status-code-403

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

在Laravel工匠命令中使用verbose

有没有办法检测用户在创建自定义工匠命令时指定的详细级别?我在文档中没有看到任何关于它的内容.

verbosity laravel artisan

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

"找不到config.m4." 在使用pecl安装apd时运行phpize

我正在尝试使用rename_functionPHP 访问,为此我需要PECL APD.我正在运行Ubuntu 14.04 LTS.

我想跑sudo pecl install apd,但我得到:

downloading apd-1.0.1.tgz ...
Starting to download apd-1.0.1.tgz (36,643 bytes)
..........done: 36,643 bytes
15 source files, building
running: phpize
Cannot find config.m4.
Make sure that you run '/usr/bin/phpize' in the top level source directory of
the module

If the command failed with 'phpize: not found' then you need to install php5-dev package. You can do it by running 'apt-get install php5-dev' as a root userERROR: `phpize' failed

我应该从某个目录运行此命令吗? …

php pecl

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

伪造一个闭包的函数名

遗漏了一个长篇故事,我有一个这样的场景:

class Foo {

  function doSomething() {
    print "I was just called from " . debug_backtrace()[1]['function'];
  }

  function triggerDoSomething()
  {
    // This outputs "I was just called from triggerDoSomething".  
    // This output makes me happy.
    $this->doSomething();
  }

  function __call($method, $args)
  {
    // This way outputs "I was just called from __call"
    // I need it to be "I was just called from " . $method
    $this->doSomething();

    // This way outputs "I was just called from {closure}"
    // Also not what …
Run Code Online (Sandbox Code Playgroud)

php closures

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

Laravel中多个模型观察者的麻烦

我陷入了一个奇怪的问题.感觉就像在Laravel中,你不允许多个模型观察者听同一个事件.就我而言:

父模型

class MyParent extends Eloquent {
   private static function boot()
   {
      parent::boot();
      $called_class = get_called_class();
      $called_class::creating(function($model) {
         doSomethingInParent();
         return true;
      }
   }
}
Run Code Online (Sandbox Code Playgroud)

儿童模特

class MyChild extends myParent {
   private static function boot()
   {
      parent::boot();
      MyChild::creating(function($model) {
         doSomethingInChild();
         return true;
      }
   }
}
Run Code Online (Sandbox Code Playgroud)

在上面的例子中,如果我这样做:

$ instance = MyChild :: create();

...行doSomethingInChild()不会触发.doSomethingInParent(),确实如此.

但是,如果我 MyChild :: creating()之后移动子进程中的parent :: boot(),它确实有效.(我没有确认doSomethingInParent()是否触发,但我认为它没有)

Laravel可以在Model :: creating()中注册多个事件吗?

laravel eloquent

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