小编GGi*_*Gio的帖子

选择元素时,将数组视为圆形数组 - PHP

我有一个数组,我循环.我有另一个数组,我需要逐个选择它,但它需要继续循环,以防它到达数组的末尾.这里要说清楚一些代码:

$mainArray = array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
$size      = count($mainArray);
$circular  = array('A', 'B', 'C');

for($i = 0; $i < $size; $i++) {
   echo $mainArray[$i] . ' = ' . $circular[$i] . ', ';
}
Run Code Online (Sandbox Code Playgroud)

现在上面的代码打印出来:

1 = A, 2 = B, 3 = C, UNDEFINED INDEX ERROR
Run Code Online (Sandbox Code Playgroud)

我需要打印的是这样的:

1 = A, 2 = B, 3 = C, 4 = A, 5 = B, 6 = C, 7 = A, 8 = B, 9 …
Run Code Online (Sandbox Code Playgroud)

php arrays

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

MySQL ENUM VS INT

我有几个表可以是ENUM类型或INT类型的列.我倾向于总是使用整数类型,假设基于它执行搜索会更快.

例如我的表中的一个具有列:StatusType其可具有仅4个可能的值:Completed,In Progress,Failed,Todo.

而不是将上面存储为ENUM字符串,我将它们存储为:

1,2,3,4分别.然后在我的PHP代码中,我有常量变量来定义这些值,如下所示:

define('COMPLETED', 1);
define('IN_PROGRESS', 2);
define('FAILED', 3);
define('TODO', 4);
Run Code Online (Sandbox Code Playgroud)

现在我的问题是,我是以正确的方式做的还是我应该将其更改为ENUM类型并使用字符串来比较查询?我有许多其他列只能有一组最大4-5可能值.

php mysql

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

使用标题("Set-cookie")与setcookie()函数设置cookie

我正在重构一些代码,发现了一些我从未见过的东西.该功能用于用户在用户登录时设置cookie:

  function setUserCookie($name, $value) {
     $date = date("D, d M Y H:i:s",strtotime('1 January 2015')) . 'GMT';
     header("Set-Cookie: {$name}={$value}; EXPIRES{$date};");
  }
Run Code Online (Sandbox Code Playgroud)

既然我已被分配到重构代码我计划使用的setcookie功能基本上根据php.net做同样的事情.

我的问题是:两者之间有什么区别,我应该使用哪一个?

注意:这段代码是很久以前编写的,所以我假设那时候setcookie不存在?

php cookies

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

jquery蒙面输入只有第一个数字可选的rest必须

我使用jquery蒙面输入插件,需要一个具有以下格式的手机字段:

1 (222) - 000 - 1114
Run Code Online (Sandbox Code Playgroud)

我的代码看起来像这样:

$("#myPhone").mask("9 (999) - 999 - 9999");
Run Code Online (Sandbox Code Playgroud)

现在我似乎无法让它工作,使第一个数字可选,但其余的强制性.所以以下数字是有效的:

1 (222) - 000 - 1114
  (222) - 000 - 1114
Run Code Online (Sandbox Code Playgroud)

以下数字无效

1 (222) - 000 - 11
  (222) - 00  - 0011
Run Code Online (Sandbox Code Playgroud)

使用"?9(999) - 999- 9999"将不起作用,因为它使整个事物成为可选的

如果这不能在蒙面中完成,有人可以通过正则表达式来帮助我实现这一目标吗?

javascript jquery maskedinput jquery-mask

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

MySQL BETWEEN两个日期时间不使用INDEX

explain
SELECT COUNT(*) AS Count, CreatedBy
FROM `Notes`
INNER JOIN Users ON UserID = CreatedBy
INNER JOIN UserRoles ON URoleID = RoleID AND RoleID = 1
WHERE NoteVisible = 1 AND NoteText NOT LIKE '%SOME KEYWORD%' 
      AND Created BETWEEN '2014-02-24 00:00:00' AND '2014-02-24 23:59:59' 
GROUP BY CreatedBy
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

如您所见,ref为NULL并且经过23行而不是仅通过1行.现在对于这个例子来说这很快但是当我做1-2个月的范围时,行变为> 10000并且它减慢了页面的速度并且锁定了表格.

注意如果我删除00:00:00和23:59:59然后它使用索引它只通过1行但我需要选择从00:00开始到23:59结束的整天的所有数据.

请帮我重构此查询以解决此问题或建议任何可能的解决方案.谢谢.

编辑

用<或>或<=或>替换BETWEEN不能解决问题

mysql between

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

如何使用.htaccess而不是VHost将文档根目录设置为子目录

在我的本地机器上,以下工作完美:

 <VirtualHost *:80>
       ##ServerAdmin postmaster@dummy-host2.localhost
       DocumentRoot "C:/xampp/htdocs/website_1"
       ServerName testpage.com/website_1
       ##ServerAlias www.recruitement.localhost
       ##ErrorLog "logs/dummy-host2.localhost-error.log"
       ##CustomLog "logs/dummy-host2.localhost-access.log" combined
 </VirtualHost>
Run Code Online (Sandbox Code Playgroud)

Howerver Im将我的网站托管给托管公司justhost.com,他们不允许我修改httpd-vhosts.conf或httpd.conf.现在我的整个网站都经过编码,以便website_1下的文件引用website_1下的其他文件,使用简单的斜杠"/"表示website_1被视为文档根目录.这在本地机器上运行得很好但是当上传到主机时它给我服务器错误,因为它无法找到文件,因为它试图在public_html中找到这些文件

例如:

  public_html
      - website_1
         - script.php
         - style.css
Run Code Online (Sandbox Code Playgroud)

在我的script.php里面:

<a href="/style.css">See My Style</a>
Run Code Online (Sandbox Code Playgroud)

这在本地机器上运行良好,但在主机上它失败,因为它试图在public_html下找到style.css 而不是public_html/website_1

有没有办法在不使用VHost的情况下拥有多个文档根?喜欢使用.htaccess或其他东西.我想尽量避免重写代码,因为它大约有10万行代码.

php apache .htaccess vhosts

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

MySQL COUNT(CASE WHEN ...那么DISTINCT列)

我的查询:

COUNT(
    CASE WHEN YEAR(FieldValue) = YEAR(CURDATE()) 
    AND MONTH(FieldValue) = MONTH(CURDATE())
    THEN 1
    END
) AS mtd
Run Code Online (Sandbox Code Playgroud)

我想要的东西:

COUNT(
    CASE WHEN YEAR(FieldValue) = YEAR(CURDATE()) 
    AND MONTH(FieldValue) = MONTH(CURDATE())
    THEN DISTINCT ColumnID
    END
) AS mtd
Run Code Online (Sandbox Code Playgroud)

这给出了一个错误.我不能使用GROUP BY.如果我在CASE之前添加DISTINCT它不起作用,它将FieldValue列视为DISTINCT,但我希望它将ColumnID计为不同.

请帮忙

mysql sql case count distinct

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

仅侦听localStorage.removeItem()事件

我正在使用pnotify插件向用户显示通知.但是,如果用户通过单击X图标关闭1选项卡中的通知,我想删除所有选项卡上的通知.

我为此使用localstorage,每次向用户显示新通知时,都会将其添加到localStorage.当用户按下X图标时,我这样做localStorage.removeItem(key).如何收听此事件以关闭所有标签中的通知?

我的听众如下:

$(window).bind('storage', function(e) {
    // if it was removed
    if (e.originalEvent.newValue == null) {
        var notificationObject = e.originalEvent.oldValue;

        // call remove function on pnotify object
        notificationObject.remove();
    }
});
Run Code Online (Sandbox Code Playgroud)

我注意到newValue如果被删除就变成null,理论上它可以工作(尚未测试),但是如果在该项目上调用removeItem,它是否总是会返回null?如果项目值更改为什么null,那么它将触发该事件,因为值已更改为正确?

jquery local-storage pnotify

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

显示用户上传的html内容 - 安全问题

我有一个功能,用户可以上传html文件,然后我通过PHP读取其内容,并将其作为字符串发送到第三方API.在我将其发送到API之前,我想生成他们上传到用户的HTML的预览,以便他们可以按"确认"按钮发送它.

HTML文件应该主要是字母模板,但是用户可以在显示预览时修改html并添加一些脚本标签或注入可能损害我网站的其他恶意代码.有没有办法可以避免这种情况?

我考虑过剥离标签,但是如果他们在html元素中有onclick事件呢?

html javascript php

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

在点击的事件正下方定位jquery对话框

我试图在单击按钮的正下方放置一个对话框.下列:

$(document).on('click', '.my_buttons', function(e){
    $('#my_dialog').dialog("option", "position", [e.pageX, e.pageY]);
    $('#my_dialog').dialog('open');
});
Run Code Online (Sandbox Code Playgroud)

当页面上出现具有该类名称的多个按钮时,它无法正常工作.它显示最后一个按钮下方的对话框,而不是单击的按钮.没有我必须在每个按钮上添加ID属性的任何方法来解决这个问题?

此外,只有一个按钮,上面的工作正常,它显示在该按钮下方,但它取决于我点击的按钮的哪个部分.如果我点击按钮的顶角,对话框会略微重叠该按钮.如何使它不与点击的按钮重叠?

谢谢你的帮助

javascript jquery jquery-ui jquery-ui-dialog

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