我有一个不寻常的用例,我正在尝试编写代码.目标是:我希望客户能够提供字符串,例如:
"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那样讨厌的东西?
我想知道当父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/
我遇到了一个不寻常的问题,我正在寻找建议.基本上,我正在使用:
在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中解雇.所以我在下面添加了两行:
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 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这样的教程似乎没有应用..
我有一个后勤问题:我正在试图找出管理与应用程序不同步的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都发布到同一个实时数据库,那会让事情变得有点尴尬.
有人有关于如何建模的建议吗?
我认为这将是直截了当的,但由于某种原因,我正在受到这一点的打击.
我正在使用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".
有什么我可以俯瞰的吗?
有没有办法检测用户在创建自定义工匠命令时指定的详细级别?我在文档中没有看到任何关于它的内容.
我正在尝试使用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
我应该从某个目录运行此命令吗? …
遗漏了一个长篇故事,我有一个这样的场景:
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) 我陷入了一个奇怪的问题.感觉就像在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()中注册多个事件吗?