小编SoL*_*oST的帖子

如何重新排序这个数组?

我有一个数据库表如下:

我想,不能用图像描述打扰

这将返回pic中的所有列标题,但最重要的一个是slugparent(不确定id_button).

数组由id_button ASC自动排序,这真让我烦恼.但是,无论如何,这并不重要,因为我需要将它完全不同,或者在填充数组后重新排序.

数组按id_button的顺序返回:

$new_menu_buttons = array(
    0 => array(
            'id_button' => 1,
            'parent' => 'help',
            'position' => 'child_of',
            'slug' => 'testing',
    ),
    1 => array(
            'id_button' => 2,
            'parent' => 'packages',
            'position' => 'after',
            'slug' => 'sub_test_1',
    ),
    2 => array(
            'id_button' => 3,
            'parent' => 'google.com',
            'position' => 'after',
            'slug' => 'another_test',
    ),
    3 => array(
            'id_button' => 4,
            'parent' => 'testing'
            'position' => 'child_of',
            'slug' => 'google.com',
    )
);
Run Code Online (Sandbox Code Playgroud)

我需要将其命令,这样,如果slug是内任何发现 …

php sorting multidimensional-array

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

Javascript用空字符串替换特殊字符

好吧,我有这些字符串原型可以使用,但是,我不明白他们究竟做了什么.

String.prototype.php_htmlspecialchars = function()
{
 return this.replace(/&/g, '&amp;').replace(/</g, '&lt;').replace(/>/g, '&gt;').replace(/"/g, '&quot;');
}

String.prototype.php_unhtmlspecialchars = function()
{
 return this.replace(/&quot;/g, '"').replace(/&gt;/g, '>').replace(/&lt;/g, '<').replace(/&amp;/g, '&');
}

String.prototype.php_addslashes = function()
{
 return this.replace(/\\/g, '\\\\').replace(/'/g, '\\\'');
}

String.prototype._replaceEntities = function(sInput, sDummy, sNum)
{
 return String.fromCharCode(parseInt(sNum));
}

String.prototype.removeEntities = function()
{
 return this.replace(/&(amp;)?#(\d+);/g, this._replaceEntities);
}

String.prototype.easyReplace = function (oReplacements)
{
 var sResult = this;
 for (var sSearch in oReplacements)
  sResult = sResult.replace(new RegExp('%' + sSearch + '%', 'g'), oReplacements[sSearch]);

 return sResult;
}
Run Code Online (Sandbox Code Playgroud)

基本上,我需要做的是替换双引号("),>,<,单引号(')等所有实例.基本上与php中的htmlentities()改变相同的东西,但我需要更换它们带有空字符串,以便从文本中删除它们.

我可以使用上面的任何功能吗?如果没有,我如何在Javascript中完成此操作?我可以在字符串上使用替换吗?

请有人在这里帮助我.我将此文本放入选择框中,并在提交表格后输入数据库.虽然,我使用PHP来删除所有这些字符,但是,我很难找到一种方法在Javascript中执行此操作.

谢谢 …

javascript regex replace

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

对多维数组进行排序

我需要对一个看起来像这样的数组进行排序:

$array[4][0] = array('id' => 1, 'value' => 2);
$array[3][2] = array('id' => 0, 'value' => 3);
$array[4][1] = array('id' => 1, 'value' => 0);
$array[1][3] = array('id' => 2, 'value' => 1);
$array[1][1] = array('id' => 3, 'value' => 0);
$array[3][0] = array('id' => 2, 'value' => 1);
$array[3][1] = array('id' => 1, 'value' => 0);
$array[1][2] = array('id' => 3, 'value' => 2);
$array[1][0] = array('id' => 2, 'value' => 1);
$array[2][1] = array('id' => 0, 'value' => …
Run Code Online (Sandbox Code Playgroud)

php arrays indexing key multidimensional-array

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

替代array_shift函数

好的,我需要将键保留在该数组中,而我只想从该数组中移出第一个元素。实际上,我知道执行此操作时,此数组的第一个键将始终为1:

// Sort it by 1st group and 1st layout.
ksort($disabled_sections);
    foreach($disabled_sections as &$grouplayout)
        ksort($grouplayout);
Run Code Online (Sandbox Code Playgroud)

基本上,我宁可不必对它进行ksort来获取键= 1的数组。老实说,我不是array_shift的忠实拥护者,它只需要很长时间的IMO。还有另一种方法。也许是一种提取找到$ disabled_sections [1]的整个数组的方法,而无需执行foreach并对其进行排序和array_shift。我只想将$ disabled [1]添加到另一个数组中,然后将其从该数组中完全删除。在保持两个数组键不变的情况下,它们保持原样。从技术上讲,这样做甚至可以:

$array = array();
$array = $disabled_sections[1];
Run Code Online (Sandbox Code Playgroud)

但是它需要将其从$ disabled_sections中删除。我可以使用这种方法吗?

$array = array();
$array = $disabled_sections[1];
$disabled_sections -= $disabled_sections[1];
Run Code Online (Sandbox Code Playgroud)

像上面的东西甚至可能吗?

谢谢。

php arrays split

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

如何从文件中获取整个函数

好的,我现在正在逐行阅读文件。我知道文件中的每个函数名称,因为它是在 XML 文档中的其他地方定义的。那应该是这样的:

function function_name
Run Code Online (Sandbox Code Playgroud)

其中 function_name 是函数的名称。

我从一个 XML 文档中获取了所有函数定义,我已经将它放入了一个函数名数组中,我只需要从 php 文件中获取这些函数。并重建该 php 文件,使其中仅包含这些功能。也就是说,如果一个 php 文件的函数比 XML 标签中定义的函数多,那么我需要去掉这些函数,只用用户在 XML 文件中指定的函数重写 .php 文件。

因此,我面临的困境是如何确定逐行读取函数的 END,并且我知道函数中可以包含函数。所以我不想删除其中的功能。只是独立的且未在随附的 XML 文件中定义的函数。关于如何做到这一点的任何想法?

好的,我现在正在使用以下功能:

//!!! - Used to grab the contents of all functions within a file with the functions array.
function get_functions($source, $functions = array()) 
{
    global $txt;

    if (!file_exists($source) || !is_readable($source))
        return '';

    $tokens = token_get_all(file_get_contents($source));

    foreach($functions as $funcName)
    {
        for($i=0,$z=count($tokens); $i<$z; $i++)
        {
            if (is_array($tokens[$i]) && $tokens[$i][0] == T_FUNCTION && is_array($tokens[$i+1]) && $tokens[$i+1][0] …
Run Code Online (Sandbox Code Playgroud)

php file-io function

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

PHP需要以递归方式反转数组

我需要递归地反转一个有多级子数组的HUGE数组,我需要保留所有的键(有些是int键,有些是字符串键),有人可以帮助我吗?也许是一个以某种方式使用array_reverse的例子?另外,使用array_reverse是唯一/最好的方法吗?

谢谢 :)

php arrays array-reverse

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

PHP - 正则表达式删除引号并添加大括号?

好吧,我讨厌承认它,但我很难用REGEX,我找不到一个关于如何设置表达式的体面教程.

所以说我有这样的事情

context['something']
Run Code Online (Sandbox Code Playgroud)

我想将所有事件都更改为

context[something] 
Run Code Online (Sandbox Code Playgroud)

然后我有

' . $var . ' 
Run Code Online (Sandbox Code Playgroud)

我想将所有事件都更改为

{var} 
Run Code Online (Sandbox Code Playgroud)

这是当前的概念,但我遇到了正则表达式部分的问题.我正在使用str_replace但是随着语言的改变,我认为它不会那么稳定.

这是我的尝试.

$codes = array (
         '/(\' \. \$)(.+)( \. \')/',
        '/(\[\')(.+)(\'\])/'
);
$html = array (
        '{\\2}',
        '[\\2]',
);
$data = preg_replace($codes, $html, $data); 
Run Code Online (Sandbox Code Playgroud)

它一直有效,直到你把它们分配到一个文件然后它变坏了.

这是当前的设置

// these are temp need a better replace system
$data = str_replace("' . $", "{", $data);
$data = str_replace(" . '", "}", $data);
$data = str_replace("<?php", "", $data);
$data = str_replace("?>", "", $data);
$data = str_replace('context[\'forum_name\']', 'context[forum_name]', $data); 
Run Code Online (Sandbox Code Playgroud)

只需要一个正确的方法来评论它们,以便稍后在保存期间将它们转换回来.

有人可以帮忙吗? …

php regex replace preg-replace

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

PHP - 仅在没有文件夹/文件的情况下才删除文件夹/文件

$valuecan =语言文件的文件夹结构.示例:languages/english.php

$value也可以=文件名.示例:english.php

因此,如果该目录$value中没有其他文件/文件夹(删除实际文件,因为我已经在,当然),我需要获取当前文件夹并删除该文件夹.

foreach($module['languages'] as $lang => $langFile)
{
        foreach ($langFile as $type => $value)
        {
            @unlink($module_path . '/' . $value);
            // Now I need to delete the folder ONLY if there are no other directories inside the folder where it is currently at.
            // And ONLY if there are NO OTHER files within that folder also.
        }
}
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点??并且想知道这是否可以在不使用while循环的情况下完成,因为while循环中的foreach循环可能需要一些时间,并且需要尽可能快.

仅仅是FYI,永远不应该删除$ module_path.所以,如果$value = english.php,它永远不应该删除$ module_path.当然,那里总会有另一个文件,所以检查这个是没有必要的,但不会受到任何影响.

多谢你们 :)

编辑

好的,现在我在这里使用这个代码,它不工作,它不是删除文件夹或文件,我也没有得到任何错误...所以不知道这里的问题是什么: …

php file unlink

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

递归搜索目录中的所有文件夹路径

我试图以递归方式在目录中搜索子目录的任何目录中的所有子目录.基本上所有文件夹都从根目录开始,我需要将文件复制到找到的所有文件夹以及主根文件夹中.我怎样才能做到这一点?

这是我到目前为止所拥有的,但它需要完全递归,以便它获取该根目录中的所有文件夹,以及sub中的文件夹,以及其中的内容,无休止的搜索,直到没有更多的文件夹...

@copy($extendVars['dir'] . '/index.php', $real_extendpath . '/index.php');

$dh = @opendir($real_extendpath);
while (false !== ($obj = readdir($dh)))
{
    if ($obj == '.' || $obj == '..')
        continue;

    if (is_dir($real_extendpath . '/' . $obj))
        @copy($extendVars['dir'] . '/index.php', $real_extendpath . '/' . $obj . '/index.php');
}

closedir($dh);
Run Code Online (Sandbox Code Playgroud)

php directory-structure

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

从所有用户全局删除$ _SESSION ['layout'] ['action']!

好吧,我正在存储一个像这样的会话变量,如果设置而不是调用数据库,则可以更快地加载用户布局.但由于布局可以通过管理员进行更改,因此我希望能够全局删除为所有用户设置$ _SESSION ['layout'] ['action']的所有会话.

$_SESSION['layout']['action'] = array(a ton of indexes and mulit-dimensional arrays);
Run Code Online (Sandbox Code Playgroud)

现在,我知道它存储在我的数据库会话表中,有一个session_id,last_update和data列.所以,问题是如何从所有用户中删除该会话数组键['action'].

运用

$_SESSION = array();
session_destroy();
Run Code Online (Sandbox Code Playgroud)

不行.基本上,session_start()正在加载每个页面,所以我只想从['layout']中删除所有['action']键.

这可能吗?谢谢

php session session-variables sessionid

0
推荐指数
1
解决办法
122
查看次数

PHP - 对从来不能由用户定义的字符进行爆炸......如何?

好吧,我试图找到可以使用的,我可以从爆炸,因为文字是用户定义的,我需要能够从我有可能永远是一个值爆炸的字符或字符组,或者什么在文中.

我怎样才能做到这一点?

我正在尝试做的一个例子......

$value = 'text|0||#fd9||right';
Run Code Online (Sandbox Code Playgroud)

好,

文字是永远不会改变的东西.0,同样不可更改的 #fd9是用户定义的字符串,可以是用户输入的任何内容...并且右侧设置方向(左侧或右侧).

所以,我面临的问题是:如何explode("||", $value)有一个|| 在用户定义的部分内...示例:

$value = 'text|0||Just some || text in here||right';
Run Code Online (Sandbox Code Playgroud)

所以,如果用户放置|| 在字符串的用户定义部分,比这更混乱了.无论用户输入什么字符串,如何做到这一点?所以它应该返回以下数组:

array('text|0', 'Just some || text in here', 'right');
Run Code Online (Sandbox Code Playgroud)

我应该使用不同的角色来爆发吗?如果是这样,我可以使用什么,用户将无法输入到字符串,或者我如何检查并修复它?我可能不应该使用|| 在这种情况下,但我可以用什么来解决这个问题?

此外,该值最初将来自字符串,之后将来自数据库(一旦保存).

有任何想法吗?

php string explode

-1
推荐指数
1
解决办法
268
查看次数