小编art*_*bot的帖子

使用PHP的电子邮件标头的UTF-8字符编码

我正在尝试将→(右箭头→或unicode 2192 hex)编码为电子邮件主题行.

当我使用php时,当我使用mb_encode_mimeheader()Thunderbird或Gmail做同样的事情时,我会得到不同的价值.但是当php生成的电子邮件到达时,角色没有正确显示.此外,PHP mb_decode_mimeheader()可以处理PHP的输出,但不能解码来自其他电子邮件源的内容.

通过十六进制转储,我已经确定了箭头的UTF-8表示

<?php
$rarr = "\xe2\x86\x92";

mb_encode_mimeheader($rarr, 'UTF-8'); //     =?UTF-8?B?w6LChsKS?=
// whereas Tbird and Gmail produce:          =?UTF-8?B?4oaS?=
// and more manually:
'=?UTF-8?B?' . base64_encode($rarr).'?='; // =?UTF-8?B?4oaS?=
Run Code Online (Sandbox Code Playgroud)

PHP的编码在Thunderbird和Gmail中出现为:â

我对PHP的行为感到困惑,因为它似乎没有产生标准结果.

如何让PHP编码UTF-8电子邮件头值,以便邮件客户端正确解码?

php mime character-encoding

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

十进制和百分比行高之间有什么区别

(这个问题最初引用了w3c学校,我已经更正了这个参考)

根据w3c,CSS line-height值可以设置如下:

<number> 属性的使用值是此数字乘以元素的字体大小.负值是非法的.计算的值与指定的值相同.

<percentage> 属性的计算值是此百分比乘以元素的计算字体大小

所以,line height = font-size × number或者line height = font-size × percentage ÷ 100%,应该是相同的.

并且继承了行高.

但是,我注意到增加字体大小的嵌套元素会产生完全不同的行高,如下所示:

截图

C列(蓝色)是我所期望的.

见jsfiddle.

A列是,如果为了简洁而赦免这个css语法的混搭:

 div {line-height:140%;} > div > div «content»
Run Code Online (Sandbox Code Playgroud)

B栏是:

 div {line-height:140%;} > div > div {line-height:140%} «content»
Run Code Online (Sandbox Code Playgroud)

C栏是:

 div {line-height:140%;} > div > div {line-height:1.40} «content»
Run Code Online (Sandbox Code Playgroud)

理解的一半

因此它看起来像A列,行高被计算为长度(例如像素)并设置在外部div上font-size.然后继承这个计算的长度值,这就是当字体大小随后增加时它看起来被压扁的原因.

两者的规格都是指将值乘以字体大小.因此,这是指设置行高的元素的字体大小,而不是继承行高的元素的字体大小.

所以这只是解释的一半.但是列B,C仅在指定1.4或140%时不同,它们是相同的.一定?!

我希望蓝色C列的行为至少是B列和C列.(虽然我认为它不是A列也很奇怪,但至少我理解这一点.)

我已经检查过,Firefox和Chromium做同样的事情.

你可以解释吗?

css

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

Laravel查询构建器与原始ON表达式连接

我正在尝试在Laravel 5.5 Query构建器中实现类似以下简化示例:

SELECT *
FROM t
INNER JOIN access
  ON (t.field1 = access.field1 OR t.field2 = access.field2)
     AND access.user_id = :user_id
Run Code Online (Sandbox Code Playgroud)

请注意,ON在多个字段上具有复合表达式,并且还使用参数.

我真的很难让ON声明工作.我试过的每个组合join()DB:raw()我能想到的.

如何通过Laravel的查询构建器实现这一目标?

sql laravel laravel-5.5

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

如何在 Laravel Mix 中使用纱线

当尝试安装 Laravel Mix时,它决定使用 引入依赖项npm

是否可以告诉它使用纱线代替?

具体来说,正是这个命令引入了依赖项。

node_modules/.bin/webpack --config=node_modules/laravel-mix/setup/webpack.config.js
Run Code Online (Sandbox Code Playgroud)

yarnpkg laravel-mix

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

如何更换一组搜索/替换对?

我有一个翻译字典作为哈希:

my %dict = { hello => 'hola', goodbye => 'adios' , ... }
Run Code Online (Sandbox Code Playgroud)

(实际用例不是人类语言翻译!我正在用一些其他值替换一堆令牌.这仅仅是例如.)

如何将每个应用于字符串?显然我可以循环它们并传递给每个s/$key/$value/但是然后我必须引用它们以便在搜索或替换(例如)/中它不会中断.

在PHP中有strtr($subject, $replacement_pairs_array)- 在Perl中有类似的东西吗?

perl

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

d3 如何在现有其他元素之前插入新的 SVG 元素?

感谢这个问题,我想我学会了如何做到这一点,但我不太相信我已经做对了,因为它像你喜欢的那样丑陋。

假设有一个元素#foo,我想在它之前SVG创建一个元素。我真的必须这样做吗:

var svg = d3.select(d3.select('#foo').node().parentNode)
  .insert('svg', '#foo')
Run Code Online (Sandbox Code Playgroud)

我错过了什么吗?(编辑:要明确的是,上面的示例代码确实有效,但它非常不透明并且包含选择器的重复。)

javascript svg d3.js

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

为什么 PHP 的 sprintf 不能可靠地循环 5s?

我一直在依赖,sprintf('%0.1f', 2.25) === '2.3'但事实证明它进来了2.2

事实上,这似乎是随机的:

php > for ($j=0;$j<=10;$j++) { printf( "%s -> %0.1f\n",$j+ 0.05, $j+0.05); } 
0.05 -> 0.1 // Up, as expected
1.05 -> 1.1 // Up, as expected
2.05 -> 2.0 // Down!
3.05 -> 3.0 // Down!
4.05 -> 4.0 // Down!
5.05 -> 5.0 // Down!
6.05 -> 6.0 // Down!
7.05 -> 7.0 // Down!
8.05 -> 8.1 // Up, as expected
9.05 -> 9.1 // Up, as expected
Run Code Online (Sandbox Code Playgroud)

我完全没有抓住重点吗?我觉得我脚下的地毯被拉开了,我在学校学到的一切都是错误的......!当然,一个对数字进行四舍五入的函数应该始终如一地做到这一点吗?(我注意到它 …

php printf rounding

0
推荐指数
2
解决办法
1925
查看次数