小编Naz*_*riy的帖子

如何评估在PHP中作为字符串传递的公式?

只是试图找出执行数学运算的正确和更安全的方式作为字符串传递.在我的场景中,它是从图像EXIF数据中获取的值.

经过一些研究,我发现了两种方法.

首先,使用eval:

function calculator1($str){
    eval("\$str = $str;");
    return $str;
}
Run Code Online (Sandbox Code Playgroud)

第二,使用create_function:

function calculator2($str){
    $fn = create_function("", "return ({$str});" );
    return $fn();
};
Run Code Online (Sandbox Code Playgroud)

这两个示例都需要清理字符串以避免恶意代码执行.有没有其他或更短的方式这样做?

php string math parsing eval

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

如何将HTML插入PHP DOMNode?

有没有什么方法可以在没有内容编码的情况下将HTML模板插入现有DOMNode?

我试过这样做:

$dom->createElement('div', '<h1>Hello world</h1>');
$dom->createTextNode('<h1>Hello world</h1>');
Run Code Online (Sandbox Code Playgroud)

输出几乎相同,唯一的区别是第一个代码将它包装在div中.我试图从字符串加载HTML,但我不知道如何将它的正文内容附加到另一个DOMDocument.

在javascript中,这个过程看起来非常简单明了.

html php dom domdocument

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

如何禁用谷歌地图V3上的地方?

我正在尝试将我的应用程序迁移到最新版本的Google地图API,并发现Google默认将自己的项目从Google商家信息目录附加到地图上.它与我自己的记录一起看起来不正确,因为它在地图上创建了可以正确放置的重复项目.

是否可以选择隐藏本地业务或控制显示的内容和不显示的内容?

这是示例代码:

<!DOCTYPE html>
<html>
  <head>
    <title>Google Maps JavaScript API v3 Example: Map Simple</title>
    <meta name="viewport"
        content="width=device-width, initial-scale=1.0, user-scalable=no">
    <meta charset="UTF-8">
    <style type="text/css">
      html, body, #map_canvas {
        margin: 0;
        padding: 0;
        height: 100%;
      }
    </style>
    <script type="text/javascript"
        src="http://maps.googleapis.com/maps/api/js?sensor=false"></script>
    <script type="text/javascript">
      var map;
      function initialize() {
        var myOptions = {
          zoom: 16,
          center: new google.maps.LatLng(37.422833333333,25.323166666667),
          mapTypeId: google.maps.MapTypeId.ROADMAP
        };
        map = new google.maps.Map(document.getElementById('map_canvas'),
            myOptions);
      }

      google.maps.event.addDomListener(window, 'load', initialize);
    </script>
  </head>
  <body>
    <div id="map_canvas"></div>
  </body>
</html>
Run Code Online (Sandbox Code Playgroud)

正如您在地图上看到的,有一些小图标,您可以点击它们,信息将出现在气泡中.我需要隐藏此图标或至少禁用此项目的点击事件.

javascript google-maps-api-3

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

如何将Camel Case解析为人类可读的字符串?

是否可以将camel case字符串解析为更具可读性的字符串.

例如:

  • LocalBusiness =本地商家
  • CivicStructureBuilding =公民结构建筑
  • getUserMobilePhoneNumber =获取用户手机号码
  • bandGuitar1 =乐队吉他1

UPDATE

使用simshaun正则表达式示例我设法使用此规则将数字与文本分开:

function parseCamelCase($str)
{
    return preg_replace('/(?!^)[A-Z]{2,}(?=[A-Z][a-z])|[A-Z][a-z]|[0-9]{1,}/', ' $0', $str);
}

//string(65) "customer ID With Some Other JET Words With Number 23rd Text After"
echo parseCamelCase('customerIDWithSomeOtherJETWordsWithNumber23rdTextAfter');
Run Code Online (Sandbox Code Playgroud)

php regex string parsing camelcasing

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

如何防止chrome将内容注入网页

最近我发现我的应用程序在Google Chrome中行为不端.

在带有表单的页面上,在提交之后,我的应用程序使用这样的简单方法重新加载页面:

header('Location: ' . $url);
Run Code Online (Sandbox Code Playgroud)

之后,页面呈现不正确,并将此内容注入DOM

<div id="sbi_camera_button" class="sbi_search" style="left: 0px; top: 0px; position: absolute; width: 29px; height: 27px; border: none; margin: 0px; padding: 0px; z-index: 2147483647; display: none; "></div>
Run Code Online (Sandbox Code Playgroud)

手动页面刷新后,一切都按预期工作.

我不确定是什么导致了这种行为,因为我在封闭的本地环境中工作,并且应用程序在Firefox中正常工作.

我的应用程序使用以下库(本地托管):

  • jQuery v1.7.1
  • jQuery UI 1.8.16
  • Bootstrap.js v 2.1.1

有人可以告诉我什么可能导致这个问题吗?

php google-chrome code-injection

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

如果与Prototype JS一起使用,Popover会隐藏父元素

更新到bootstrap 2.3.0后,我注意到popover工具提示的奇怪行为.

如果您输入该字段并尝试离开,工具提示将消失并隐藏输入字段.此问题仅发生在最新版本的bootstrap,不确定究竟是什么改变,但2.2.2适用于Prototype.

jQuery.noConflict();
jQuery('input[data-content]').popover({
    trigger: 'focus'
});
Run Code Online (Sandbox Code Playgroud)

这是工作示例:http://jsfiddle.net/U6EDs/4/

jquery popover prototypejs twitter-bootstrap

11
推荐指数
3
解决办法
8214
查看次数

如何使用外键禁用InnoDB的MySQL注释?

有一段时间我注意到MySQL会将注释附加到已定义外键的InnoDB表中.它看起来像这样:

InnoDB free: 0 kB; (event_id) REFER events(event_id) ON U...

为了正确显示我的表描述,我必须解析字符串并用分号分割它.一般来说这不是什么大问题,但是在Database GUI中一直看到这些消息是非常烦人的.

我经历了stackoverflow,并发现这个问题在我的情况下不是很方便,所以我徘徊是否有可能禁用此行为/错误?

更新:托管提供商服务器上安装的MySQL版本是5.0.77

mysql comments innodb foreign-keys

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

jQuery DatePicker如何在浏览日历时禁用自动日选择?

在jQuery DatePicker中,如果您将其用作日历并依赖于所选日期,则会有一件烦人的事情.在每月导航时,它会保持所选月份的所有月份.我知道这个问题存在超过6个月,我已经向jQuery团队报告了.但是我想知道是否有任何变通方法或如何禁用此行为?

可以在此处找到日历示例

jquery jquery-ui datepicker

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

我可以在我的网站上使用Google搜索结果中的图片吗?

我打算为我的目录创建一个模块,该模块将通过以下场景使用Google Image Search从用户的网站获取图像:

  1. 用户登录到他的帐户
  2. 输入他的网站网址
  3. 应用程序请求来自谷歌缓存的域的图像
  4. 应用程序显示来自网站提供的N个图像,以将它们链接到他的个人资料
  5. 确认后,应用程序会将图像复制到我的服务器

我被允许这样做,是否会侵犯任何版权?

UPDATE

我认为在我的商业目录中创建帐户的人是该网站的所有者(在条款和条件中说明),并且作为所有者他正在访问他的网站.应用程序将显示缩略图并使用Google搜索结果中的链接从其网站上获取原始图像.它有什么不同吗?

parsing

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

如果页面请求太快,则Zend会话被破坏

我的应用程序不是基于MVC模式构建的,而是部分使用Zend Framework组件,如Config,Loader,Session,Auth,Service和XmlRpc.

最近我发现,在某些情况下,如果用户浏览页面太快或按下F5太快,他的会话将被销毁,他将被退出系统.有一个类似的问题,但他的解决方案没有帮助我解决这个问题.

应用程序如何工作

会话配置:

cookie_domain = ".mydomain.com"
name = "myApplicationName"
remember_me_seconds = 864000
save_path = "/path/to/my/session/storage/"
save_handler = "files"
strict = true
use_only_cookies = true
Run Code Online (Sandbox Code Playgroud)

在页面初始化:

$config = new Zend_Config_Ini(CONFIG_DIR . 'session.ini');

Zend_Session::setOptions($config->toArray());

Zend_Session::start();
Run Code Online (Sandbox Code Playgroud)

账户管理员:

function __construct(...)
{
    /**
     * @var $session Zend_Session_Namespace
     */
    $session = Zend_Registry::get('Zend_Auth');

    if(isset($session->identity))
    {
        Zend_Session::rememberMe();
    }
}
Run Code Online (Sandbox Code Playgroud)

注销过程:

if(isset($_GET['logout']))
{
    Zend_Session::destroy(TRUE);
}
Run Code Online (Sandbox Code Playgroud)

是否有其他人遇到过这个问题并且有一些线索可能有什么问题以及如何修复它?

更新

我已经残疾Zend_Session::rememberMe(),现在一切似乎都很好.据我所知,在每次请求时,此方法刷新session_id并重命名会话文件,并且由于读/写性能问题,它无法找到新创建的会话,并且由于该会话处理程序丢失.
只是想知道,将会话存储更改为数据库是否可以解决此问题?

php session zend-framework

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