小编Jim*_*myJ的帖子

MySQL:计算不同值的出现次数

我试图找到一个MySQL查询,它将在特定字段中查找不同的值,计算该值的出现次数,然后按计数对结果进行排序.

示例db

id         name
-----      ------
1          Mark
2          Mike
3          Paul
4          Mike
5          Mike
6          John
7          Mark
Run Code Online (Sandbox Code Playgroud)

预期结果

name       count
-----      -----
Mike       3
Mark       2
Paul       1
John       1
Run Code Online (Sandbox Code Playgroud)

谢谢

mysql sql database distinct

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

apache mod_rewrite适用于任何可能性的规则

我正在建立一个相当大的网站,我的.htaccess开始感觉有点膨胀,有没有办法取代我现有的系统 - 每个可能通过的可能数量的变量的一个规则,一个捕获所有可以解释不同数量输入的表达式?

例如,我目前有:

RewriteRule ^([a-z]+)/([^/]*)/([^/]*)/([^/]*)/([^/]*)/([^/]*)$ /index.php?mode=$1&id=$2&$3=$4&$5=$6
RewriteRule ^([a-z]+)/([^/]*)/([^/]*)/([^/]*)$ /index.php?mode=$1&id=$2&$3=$4
RewriteRule ^([a-z]+)/([^/]*)$ /index.php?mode=$1&id=$2
RewriteRule ^([a-z]+)$ /index.php?mode=$1
Run Code Online (Sandbox Code Playgroud)

第一个反向引用始终是模式,并且(如果存在的话)第二个反向引用总是id,此后任何进一步的反向引用在输入的名称和它的值之间交替

http://www.example.com/search
http://www.example.com/search/3039/sort_by/name_asc/page/23
Run Code Online (Sandbox Code Playgroud)

我希望能够有一个表达式来优雅地处理所有输入.

regex apache mod-rewrite

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

使用php发送邮件并转发hotmails垃圾文件夹

我一直试图让PEAR :: mail成功地向hotmail用户发送电子邮件而不被标记为垃圾邮件并最终进入垃圾邮件文件夹,我只使用hotmail与yahoo/gmail没有问题.

谷歌建议这是hotmail的常见问题,可能的原因可能包括

  • 服务器主IP的反向DNS不正确
  • 缺少SenderId/SPF记录
  • 被列入黑名单

检查了以上所有我只能想到另一个原因 - 格式不正确的标题?

为了测试这个理论,我设置outlook通过PEAR :: mail使用的相同地址发送电子邮件并发送快速测试 - 它直接发送到我的收件箱

所以我将PEAR :: mail发送的电子邮件中的标题与Outlook发送的标题进行了比较,并且只有一些差异 - 我只列出了差异以节省空间(以及人们的眼睛)

PEAR ::邮件头(不在outlook头文件中)

X-PHP-Script: www.example.com/register.php for [users ip address]
Run Code Online (Sandbox Code Playgroud)

Outlook标头(不在PEAR ::邮件头中)

X-Mailer: Microsoft Office Outlook 11
Thread-Index: Ack6CWSQlgV8s6+6SWyifka2NNpB7g==
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.3350
Run Code Online (Sandbox Code Playgroud)

我能看到的唯一其他差异是

  • From:和To:标题的顺序相反
  • 并在标题的Received:部分

外表

Received: from myhomehostname.com ([ip address] helo=simber) 
by mywebhostname.com with local (Exim 4.67)
Run Code Online (Sandbox Code Playgroud)

PEAR ::邮件

Received: from apache by mywebhostname.com with local (Exim 4.67)
Run Code Online (Sandbox Code Playgroud)

标题中的这些小差异可能是原因还是我在错误的地方?我知道这可能有问题因此为什么我选择使用PEAR :: mail类而不是自己滚动但现在我真的不知道该去哪里,任何帮助都将非常感激.

更新:根据changelog的建议,我已经尝试将MS标头添加到PEAR :: mail类,我尝试用PHPMailer替换PEAR :: mail(有和没有额外的标头) - …

php email pear spam

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

奇怪的ob_start()行为 - 双输出

ob_start()似乎没有停止任何输出,所以当我刷新缓冲区时它会加倍

<?php
ob_start();
echo "Text..... <br />";
echo ob_get_flush();
?>
Run Code Online (Sandbox Code Playgroud)

输出

Text..... 
Text..... 
Run Code Online (Sandbox Code Playgroud)

但我在期待

Text..... 
Run Code Online (Sandbox Code Playgroud)

有任何想法吗 ?

谢谢

php output-buffering

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

if语句条件优化

我有一个带有两个条件的if语句(由OR运算符分隔),其中一个条件覆盖了+ 70%的情况,并且处理/执行的时间远远少于第二个条件,所以为了速度,我只想要如果第一个条件的计算结果为false,则处理第二个条件.

如果我订购条件,以便第一个条件(更快的条件)首先出现在if语句中 - 在满足此条件的情况下并且评估为真是第二个条件甚至处理?

if ( (condition1) | (condition2) ){
  // do this
}
Run Code Online (Sandbox Code Playgroud)

或者我是否需要嵌套两个if语句来仅检查第二个条件,如果第一个条件评估为false?

if (condition1){
  // do this
}else if (condition2){
  // do this
}
Run Code Online (Sandbox Code Playgroud)

我在PHP工作,但是,我认为这可能与语言无关.

php language-agnostic conditional

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

正则表达式替换为小数

我正在尝试构建一个正则表达式来替换任何不符合格式的字符:

任意数量的数字,然后是可选的(单个小数点,任意位数)

i.e.
123            // 123
123.123        // 123.123
123.123.123a   // 123.123123
123a.123       // 123.123
Run Code Online (Sandbox Code Playgroud)

我在php中使用ereg_replace,并且最接近我管理的工作正则表达式

ereg_replace("[^.0-9]+", "", $data);
Run Code Online (Sandbox Code Playgroud)

这几乎是我需要的(除了它将允许任意数量的小数点)

i.e.
123.123.123a    // 123.123.123
Run Code Online (Sandbox Code Playgroud)

我的下一次尝试是

ereg_replace("[^0-9]+([^.]?[^0-9]+)?", "", $data);

which was meant to translate as
[^0-9]+        // any number of digits, followed by
(              // start of optional segment
  [^.]?        // decimal point (0 or 1 times) followed by
  [^0-9]+      // any number of digits
)              // end of optional segment
?              // optional segment to occur 0 or 1 times …
Run Code Online (Sandbox Code Playgroud)

php regex

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

如何显示文件夹中的文件名

我正在使用此脚本显示文件夹中的所有图像,但我无法弄清楚如何让每个图像的文件名显示在它下面.有什么建议?

<?php

$dirname = "images";
$images = scandir($dirname);
$ignore = Array(".", "..", "otherfiletoignore");

foreach($images as $curimg){
    if (!in_array($curimg, $ignore)) {
        echo "<img src='images/$curimg' /><br />\n";
    }
} 
?>
Run Code Online (Sandbox Code Playgroud)

php file

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