小编dWi*_*der的帖子

简单的PHP strpos功能不起作用,为什么?

为什么这个独立代码不起作用:

$link = 'https://google.com';
$unacceptables = array('https:','.doc','.pdf', '.jpg', '.jpeg', '.gif', '.bmp', '.png');

foreach ($unacceptables as $unacceptable) {
        if (strpos($link, $unacceptable) === true) {
            echo 'Unacceptable Found<br />';
        } else {
            echo 'Acceptable!<br />';
        }
}
Run Code Online (Sandbox Code Playgroud)

即使https包含在$link变量中,每次打印都是可接受的.

php strpos

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

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

Nginx - 当缓存过期时使用 proxy_cache_lock 逻辑以避免多上行请求

Proxy_cache_lock逻辑意味着当NGINX同时接收到几个请求时,它只向上游发送一个,其余的等待第一个返回并插入缓存(等待时间如配置中所述proxy_cache_lock_timeout)。

如果缓存元素过期,并且NGINX同时接收到几个请求,它们都会被代理到上游。

问题:当缓存元素存在但已过期时,我如何将其配置NGINX为具有相同的逻辑proxy_cache_lock

我检查了proxy_cache_use_stale但这不是我要找的,因为它在更新时返回过期的缓存,我需要等到答案从上游返回......

这是我当前的NGINX配置文件:

http {
    include         /etc/nginx/mime.types;
    default_type    application/octet-stream;
    access_log          /var/log/nginx/access.log  main;

    proxy_cache_path @MY_CACHE_PATH@; # this obviously has the path in my file 
    proxy_cache_use_stale updating;
    proxy_cache_lock on;
    proxy_cache_lock_timeout 15s;
    proxy_cache_valid 404   10s;
    proxy_cache_valid 502   0s;
    proxy_cache one;

    server {
            listen 80;
            proxy_read_timeout 15s;
            proxy_connect_timeout 5s;
            include locations.conf;
    }
}
Run Code Online (Sandbox Code Playgroud)

我通过更改NGINX源代码设法实现了这种行为,但我想知道是否可以在配置中实现

caching nginx nginx-config

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

在使用PHP的循环中,赋值变量不起作用

我正在Do While loop我的项目中工作,第一次工作正常.

之前while statement,我为一个数组赋值,我能够在代码底部成功打印数组,但是当我在循环顶部检查时变为0.

码:

$looparray = array();
$loopend = 0;
$arraymer = array();
$poolafirtsid = $previous_array_values; //previous array values

do {
   if (sizeof($looparray) == 0) {
       $firstsponarray = $poolafirtsid;
   } else {
       $firstsponarray = $looparray;
   }

   $firstsponarray = getUserArray($poolafirtsid);
   //get user arraylist of first

   foreach ($firstsponarray as $avalue) {
       $rooparray = membercount($avalue);
       $bsponarray = getUserArray($avalue);
       //get second users arraylist 9
       if (sizeof($bsponarray > 0)) …
Run Code Online (Sandbox Code Playgroud)

php loops while-loop do-while

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

如何从数组中删除任何包含1个字符的字符串?

所以如果你有一个数组:

$ourArray[0] = "a";
$ourArray[1] = "bb";
$ourArray[2] = "c";
$ourArray[3] = "ddd";
Run Code Online (Sandbox Code Playgroud)

是否有更短的方法从数组中删除所有单个字符值,而不是通过foreach语句运行数组并单独检查每个值?

或者这是执行此任务的最快/最好的方式?:

foreach( $ourArray as $key => $value){
    if(strlen($value) == 1){ unset($ourArray[$key]); }
}
Run Code Online (Sandbox Code Playgroud)

php arrays filtering

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

引起:java.net.BindException:地址已在使用:绑定

我正在尝试通过单击 Run as -> Spring Boot App 来运行 Spring Boot 应用程序。我收到的错误是:

引起:java.net.BindException:地址已在使用:绑定

当我使用 netstat 命令时,我看到下面没有进程 ID:

netstat -na | find "8080"

TCP    0.0.0.0:8080   0.0.0.0:0    LISTENING

TCP    [::]:8080      [::]:0       LISTENING
Run Code Online (Sandbox Code Playgroud)

注意 - 我在Windows机器上运行我的代码

我如何杀死这些进程?

windows process taskkill spring-boot

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

数组变量不会打印出while循环

我在while循环中初始化一个数组变量,问题是当这个数组变量打印出while循环时,那么数组没有显示,当这个数组变量在循环中打印时,数组就会显示出来.

<?php 
  $all_rollno="";
  //Get Current Session
  $Res_Sess = mysql_query("SELECT sessionid from tbl_session where status=1 ORDER BY sessionid desc limit 1");
  $Row_Sess = mysql_fetch_array($Res_Sess);
  $Session = $Row_Sess[0];

 //Get Batch
 $Res_Bat = mysql_query("SELECT batchid,batchname,code FROM tbl_batch where status=1 and batchid!=12 ORDER BY batchid asc");

 while($Row_Bat = mysql_fetch_array($Res_Bat)){
     $Batch = $Row_Bat['batchid'];
     $Bat_Code = $Row_Bat['code'];

     //Present - Attendance
     $Patt4 = mysql_query("select count(id),rollno from tbl_attendance where batchid = '$Batch' and sessionid = '$Session' and attend = 1 GROUP by rollno");

     $arraytpresent="";
     $array_rollno="";
     $ipresent=0;
     while($Row_P4 = …
Run Code Online (Sandbox Code Playgroud)

php arrays

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

按键组合2个数组并更改结果数组中的键名称

我将这两个数组作为输出:

Value Array
(
    [0] => 10100153
    [1] => 2007
    [2] => 350
    [3] => 804082
    [4] => WW006
    [5] => WHT/NNY/OXGM
    [6] => 35/38
    [7] => 804082         WW00635/38
    [8] => 0,00138857
    [9] => Champion 3pk Quarter Socks
)
Numbers Array
(
    [0] => 1
    [1] => 2
    [2] => 3
    [3] => 4
    [4] => 5
    [5] => 6
    [6] => 7
    [7] => 8
    [8] => 9
    [9] => 10 
)
Run Code Online (Sandbox Code Playgroud)

我想组合它们并在值中更改值数组的键值和数字中的数字数组,所以它看起来像这样:

欲望输出

['Value' => '10100153', 'Number' => …
Run Code Online (Sandbox Code Playgroud)

php arrays

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

使用 php 将数组分成块并按块在新行中显示结果

正如标题所说:我有一个数组

array(0=>"a"1=>"b"2=>"c"3=>"d"4=>"e"5=>"f")
Run Code Online (Sandbox Code Playgroud)

我想做的是循环遍历并分块结果并像这样打印它们

ab cd ef

或者

abc def

到目前为止我得到了这个:我用 array_chunk() 对数组进行了分块,如下所示

$chunks = array_chunk($my_array, 3);
Run Code Online (Sandbox Code Playgroud)

所以它给了我这样的结果:

Array(0 => array(0=>"a"1=>"b"2=>"c")1=>array(4=>"d"5=>"e"6=>"f"))
Run Code Online (Sandbox Code Playgroud)

所以我循环遍历

foreach($chunks as $key => $value){
   echo $value.'<br>';}
Run Code Online (Sandbox Code Playgroud)

电流输出:

a b c d e f

期望输出:

abc def

有任何想法吗?

我也在 Laravel 上,以防万一有人知道具体的方法

php arrays laravel

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

如何通过前缀分隔php数组项

当 PHP 数组有共同前缀时,我想将它们分开。

$data = ['status.1', 'status.2', 'status.3',
         'country.244', 'country.24', 'country.845',
         'pm.4', 'pm.9', 'pm.6'];
Run Code Online (Sandbox Code Playgroud)

我希望它们每个都在单独的变量中,例如$status, $countries, $pms将包含:

$status = [1,2,3];
$country = [244, 24, 845]
$pms = [4,9,6]
Run Code Online (Sandbox Code Playgroud)

我当前的代码需要 1.5 秒才能对它们进行分组:

$statuses = [];
$countries = [];
$pms = [];
$start = microtime(true);
foreach($data as $item){
    if(strpos($item, 'status.') !== false){
        $statuses[]= substr($item,7);
    }

    if(strpos($item, 'country.') !== false){
        $countries[]= substr($item,8);
    }

    if(strpos($item, 'pm.') !== false){
        $pms[]= substr($item,3);
    }
}
$time_elapsed_secs = microtime(true) - $start;
print_r($time_elapsed_secs);
Run Code Online (Sandbox Code Playgroud)

我想知道是否有更快的方法来做到这一点

php arrays

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