小编Mar*_*rco的帖子

在PHP中,哪个更快:preg_split还是爆炸?

这可能听起来像一个愚蠢的问题,但是:当使用它来提取php中的搜索查询中的关键字时,这会更快:

$keyword = preg_split('/[\s]+/', $_GET['search']);
Run Code Online (Sandbox Code Playgroud)

要么

$keyword = explode(' ', $_GET['search']);
Run Code Online (Sandbox Code Playgroud)

php explode preg-split

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

mysqli编写语句,如何循环结果集

我正在研究有关mysqli准备好的陈述,我有两个问题.

在我阅读时,我发现准备好的语句的执行顺序如下所示:

$sql = 'SELECT image_id, filename, caption FROM images WHERE image_id = ?';

// connect to the database
$conn = ....

$stmt = $conn->stmt_init();

$stmt->prepare($sql);

$stmt->bind_param('i', $id);

$stmt->execute();

$stmt->bind_result($image_id, $filename, $caption);

// optional: get total of records in the result set
$stmt->store_result();
$numRows = $stmt->num_rows;

// loop through the result set
while ($stmt->fetch()) {
    // code goes here...
}

or 

// fetch the result for one record
$stmt->fetch()

// free & close
$stmt->free_result();
$stmt->close;

$conn->close();
Run Code Online (Sandbox Code Playgroud)

这是我的第一个问题:

在我阅读时,它还提到了以下内容:

如果未将结果绑定到变量,请使用$ row …

php mysql sql-injection prepared-statement

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

弯曲:0 0 100% 和弯曲:1 1 100% 之间的差异

我已经测试了以下内容,但我想问一下,以防万一有差异。

我有一个容器,它是一个flex容器。这些项目具有 的属性flex: 1 1 100%。只是出于好奇的目的,我也进行了测试flex: 0 0 100%,但我没有注意到任何差异(也许有)。

我的问题是:如果flex-basis是 100%,那么其他 2 个属性值是什么还重要吗?

flexbox

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

纯css垂直菜单与子菜单

我做了我的研究,并能够复制我正在寻找的东西,很好 - 我只需要一个更具体的垂直,纯CSS,菜单的帮助.

我希望我的子菜单弹出窗口显示在一个非左侧的10px,li 就像在互联网上找到的大多数示例一样.我也在寻找最简单,纯粹的CSS菜单 - 没什么特别的.

这是我到目前为止所做的:

<div id="nav">
    <ul class="top-level">
        <li><a href="#">This is a long text</a>
            <ul class="sub-level">
                <li><a href="#">Sub Menu Item 1</a></li>
                <li><a href="#">Sub Menu Item 2</a></li>
                <li><a href="#">Sub Menu Item 3</a></li>
                <li><a href="#">Sub Menu Item 3</a></li>
            </ul>
        </li>
        <li><a href="#">About</a></li>
        <li><a href="#">Contact me here</a></li>
        <li><a href="#">Help</a>
            <ul class="sub-level">
                <li><a href="#">Sub Menu Item 1</a></li>
                <li><a href="#">Sub Menu Item 2</a></li>
                <li><a href="#">Sub Menu Item 3</a></li>
            </ul>
        </li>
    </ul>
Run Code Online (Sandbox Code Playgroud)

我的css:

#nav {border:1px solid cyan;}
    /* top level menu …
Run Code Online (Sandbox Code Playgroud)

html css menu

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

CSS 网格,当区域可选时去除间隙

我开始使用 CSS 网格(非常棒!)。我从最基本的布局开始:移动布局。此外,随着网页的增长,我正在使用媒体查询来更改布局。

现在,我的布局由 3 个区域组成。确切的顺序是内容区、侧边栏区和评论区。该评论区是可选的,甚至有可能不会显示。区域之间有40px间隙

这是移动布局css

.grid {
  display: grid;
  grid-template-columns: 1fr;
  grid-auto-rows: auto;
  grid-gap: 40px;
}
Run Code Online (Sandbox Code Playgroud)

如果评论区不存在,评论区的间隙也不存在,这就是我想要的。

https://jsfiddle.net/p54od8ho/

当页面增长时,我正在更改布局,如下所示:

@media screen and (min-width: 768px) {
  .content {
    grid-area: content;
  }
  .sidebar {
    grid-area: sidebar;
  }
  .comments {
    grid-area: comment;
  }
  .grid {
        grid-template-columns: 1fr 300px;
        grid-template-rows: auto;
        grid-template-areas:
            "content sidebar"
            "comment sidebar";
  }
}
Run Code Online (Sandbox Code Playgroud)

https://jsfiddle.net/g20gtd4z/

40px的差距是因为评论区存在。

但是,当评论区不存在时会发生这种情况:

https://jsfiddle.net/6Lfg55my/1/

如果您注意到,即使评论区不存在,40px 的差距也存在。

我相信一个解决方案是创建一个类,只是为了删除评论区。

.grid.no_comment {
            grid-template-areas:
                "content sidebar"
                ". sidebar";
      }
Run Code Online (Sandbox Code Playgroud)

必须有更好更简单的方法(或者可能没有)。有没有办法,只使用网格选项,当评论区不存在时,差距也消失了?

html css grid-layout css-grid

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

如何从ul中选择第一级孩子(li)

给定以下结构,我想从列表 (ul) 中选择第一级子级 (li),而不是嵌套列表。

ul.list > li {
  background-color: red;
}
Run Code Online (Sandbox Code Playgroud)
<ul id="list" class="list">
   <li>first level</li>
   <li>first level</li>
   <li>
      <h1></h1>       
      <div>
         <ul>
            <li>second level</li>
            <li>second level</li>
         </ul>
      </div>
   </li>
   <li></li>
</ul>
Run Code Online (Sandbox Code Playgroud)

( JSFiddle )

但这也会选择 div 中的项目 (li)。

我想仅使用ONE css RULE选择第一级儿童 (li) 。如何?

html css

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

PHP脚本中的最大执行时间错误,这是绕过它的一个很好的解决方案吗?

我是数据库的唯一管理员.我想运行一次性脚本,基本上需要大约3800个扫描图像(它将增长到10万)并使用PHP exec()函数为每个图像创建几个缩略图来执行外部程序imagemagick来创建那些缩略图.

我创建了脚本,启动它,一切都完美无缺!一切都在我的本地开发服务器上完成.该脚本大约需要11分钟来创建数千个缩略图.这是每隔一年运行一次的操作,因此后果很少.

到现在为止还挺好.这是我遇到问题的时候.

我在本地开发服务器上所做的一切,我在实时服务器上进行测试.我有hostgator的共享主机帐户.在共享主机上运行我的11分钟长脚本会给出错误"超过30秒的最大执行时间...".我做了我的研究,尝试了这篇文章中的许多解决方案(增加php的最大执行时间),只是为了意识到我无法改变共享主机上脚本的最大执行时间.

我被卡住了.所以,我的问题是这里显而易见的解决方案是什么.

我正在考虑为每200张图像启动脚本,自动刷新页面并为接下来的200张图像再次运行脚本,依此类推,直到没有更多图像为止.这样我就可以确定我的共享主机上允许的最长执行时间是30秒.它看起来像是一个解决方案,但我不确定这是否是否定,如果我将遇到更大的问题,太多的负面影响..

这是明显的解决方案吗?有人遇到同样的问题吗?你们有什么建议的?

谢谢

php max command-line-interface execution-time

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

move_uploaded_file和is_uploaded_file之间的区别

使用时从php表单上传文件

<input name="xxx" type="file">
Run Code Online (Sandbox Code Playgroud)

是否有必要使用php函数is_uploaded_file来检查它是否是通过PHP的HTTP POST上传机制上传的?

我已经阅读了有关该功能的所有内容,我看不到它的用途?我错了吗?

在它说的PHP文档中

如果通过HTTP POST上传由filename命名的文件,则返回TRUE.这有助于确保恶意用户没有试图欺骗脚本处理不应该工作的文件

但是,上传文件的主要功能move_uploaded_file也会检查它是否是有效文件

此函数检查以确保filename指定的文件是有效的上载文件(意味着它是通过PHP的HTTP POST上载机制上传的).如果文件有效,它将被移动到目标给出的文件名.

所以,我的问题如下:

是否真的有必要使用is_upload_file,如果推测,move_uploaded_file已经检查了恶意内容?

// if artwork file upload correctly, continue!
if ($_FILES['artwork']['error'][0] == 0) {

    // check if the artwork file was uploaded via HTTP POST to prevent a malicious attack
    if (is_uploaded_file($_FILES['artwork']['tmp_name'][0])) {

       // move files
    }
}
Run Code Online (Sandbox Code Playgroud)

php

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

如何处理循环外键插入?

我有一个表'release_group'和另一个表'release',如下所示:

release_group 
------------------------
release_group_id (PRIMARY KEY)
name
main_release_id (FOREIGN KEY)

release
------------------------
release_id (PRIMARY KEY)
release_group_id (FOREIGN KEY)
name
Run Code Online (Sandbox Code Playgroud)

如果我创建了一个发布行,则release_group_id不可用,只是因为尚未创建它.但是我不能在没有main_release_id的情况下创建release_group行.所以这是一种不可能的情况.

编辑:release_group中的main_release_id是说该版本是该组的主要版本,我将使用一个引用.

处理此案件的专业方式是什么?

1.删​​除表release_group中的外键索引 main_release_id,并赋予属性ALLOW NULL.创建release_group行,以便我可以在发布行中应用它的id.

2.将'main_release_id'外键索引保留在表'release_group'中,并为其分配一个临时整数值0.创建发布行并相应更新release_group中的外键?请记住,如果这是要走的路,我可能最终无意中拥有值为0的外键,我不知道数据库中是否存在这种道德规范?

处理此案件的专业方式是什么?

谢谢

php mysql

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

如何从php文件中的FormData获取数据

我有以下表格:

<form id="f-comment" class="form" method="post" action="submit_img_comment.php">
    <textarea name="comment"></textarea>
    <input type="submit" value="Publish" data-params='{"imageid":<?php echo $imageid; ?>}'>
</form>
Run Code Online (Sandbox Code Playgroud)

和以下javascript:

$(document).on("submit", ".form", function(e) {
    e.preventDefault();

    // what form are you submitting?
    var form = $("#" + e.target.id);

    var data = new FormData(this);
    var params = $("input[type=submit]", this).data("params"); // parameters to send along with data
    data.append("params", params);

    // data is ok
    console.log(params)

    $.ajax({
        type: form.attr("method"),
        url: "include/" + form.attr("action"),
        data: data,
        dataType: "json",
        contentType: false,
        processData: false,
        cache: false
    }).done(function(data) {
        alert(data['msg']);
    }).fail(function(data) { …
Run Code Online (Sandbox Code Playgroud)

php jquery

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