很像这个问题,我想从PHP生成一个htpasswd文件条目.然而,它需要是APR1(Apache)风格,如原始答案中提到的(答案没有显示如何实现APR1样式),与mod_dav_svn一起使用.
我似乎无法找到一个可以创建密码的工作实现.
我发现了这个(我现在忘记了):
function crypt_apr1_md5($plainpasswd) {
$salt = substr(str_shuffle("abcdefghijklmnopqrstuvwxyz0123456789"), 0, 8);
$len = strlen($plainpasswd);
$text = $plainpasswd.'$apr1$'.$salt;
$bin = pack("H32", md5($plainpasswd.$salt.$plainpasswd));
for($i = $len; $i > 0; $i -= 16) { $text .= substr($bin, 0, min(16, $i)); }
for($i = $len; $i > 0; $i >>= 1) { $text .= ($i & 1) ? chr(0) : $plainpasswd{0}; }
$bin = pack("H32", md5($text));
for($i = 0; $i < 1000; $i++) {
$new = ($i & 1) ? $plainpasswd : …
Run Code Online (Sandbox Code Playgroud) 我想一个变量可用我的bash shell类似于pwd
但等于当前工作目录的一部分,而不是整个路径.
即
$PWD=/a/b/c/d/e/f
$PATH_SECT=c/d/e
Run Code Online (Sandbox Code Playgroud)
我有一个提示,显示此路径,但我想每次更改目录时将环境中的变量更新为此值.
我怎么能这样做?
我正在考虑使用PHP:SVN来管理生产网站上的svn存储库.目前,svn命令是在命令行上构建和执行的,这感觉就像一个主要的安全漏洞.
PHP:SVN的优点是不直接执行任何命令,并允许我废弃大量代码.
我的问题是该模块有多成熟,是否可以在生产网站上使用?关于它的大多数页面都有警告"这个功能是实验性的,可能会改变".但这只会升级PHP的版本.
我在 ubuntu 上使用 texlive 并且使用的一些软件包有问题,因为它们太旧了。手动从 CTAN 下载它们并安装可以修复它们,但这很耗时。
在 Windows 上,我们使用 Miktex 并更新到所有最新的软件包。
有没有办法将 texlive 中的软件包从 CTAN 更新到最新版本,而无需经过繁琐的过程?
我正在努力获取用乳胶创建的日文文档.我已经安装了最新版本的texlive-2008,其中包括CJK.
在我的文件中,我有以下内容:
\documentclass{class}
\usepackage{CJK}
\begin{document}
\begin{CJK*}{UTF8}{min}
\title{[Japanese Characters here 1]}
\maketitle
\section{[Japanese Characters here 2]}
[Japanese Characters here 3]
\end{CJK*}
\end{document}
Run Code Online (Sandbox Code Playgroud)
在上面的代码中,有3个位置使用日语字符.
1 + 3工作正常而2,其中包含\ section {}中的日文字符失败,出现以下错误.
! Argument of \@sect has an extra }.
Run Code Online (Sandbox Code Playgroud)
经过一些研究后发现,当你在一个移动的参数中放入一个脆弱的命令时,这个错误就会显现出来.移动参数因为部分可以移动到内容页面,例如.
有谁知道如何让这个工作,以及为什么乳胶认为日语字符是"脆弱的".
我试图将Unicode字符的十六进制表示转换为它们所代表的字符.以下示例正常工作:
#!/usr/bin/perl
use Encode qw( encode decode );
binmode(STDOUT, ':encoding(utf-8)');
my $encoded = encode('utf8', "\x{e382}\x{af}");
eval { $encoded = decode('utf8', $encoded, Encode::FB_CROAK); 1 }
or print("coaked\n");
print "$encoded\n";
Run Code Online (Sandbox Code Playgroud)
但是十六进制数字存储在3个变量中.
所以,如果我用这个替换编码行:
my $encoded = encode('utf8', "\x{${byte1}${byte2}}\x{${byte3}}");
Run Code Online (Sandbox Code Playgroud)
哪里
my $byte1 = "e3"; my $byte2 = "82"; my $byte3 = "af";
Run Code Online (Sandbox Code Playgroud)
它失败了,因为它试图立即评估\ x并看到$符号和{作为字符.
有谁知道怎么解决这个问题.