小编MrW*_*ite的帖子

替代PHP exec()函数

目前我正在使用:

exec("zcat $filename", $output)
Run Code Online (Sandbox Code Playgroud)

要解压缩.Z类型文件,但遗憾的是我的托管公司现已禁用此功能.

有解决方法吗?

$pathtofile = "filename.lis.Z";
exec("zcat $pathtofile", $output);
Run Code Online (Sandbox Code Playgroud)

php exec zcat

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

PHP文件编码

我最近注意到我在编辑器中创建的页面的文件编码已经到处都是.有些保存为ANSI,有些是"UTF-8无BOM".我指的是PHP,HTML,CSS,JavaScript文件.

保存文件的最佳格式是什么?

php encoding character-encoding

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

如何使用单独的PHP版本的不同的PHP文件

我有一个站点(基于ZEND框架)并托管在1and1服务器上.

1and1服务器使用PHP版本5.2.17和5.4.5.我需要将PHP版本5.4.5仅用于几个文件.这是因为如果我使用PHP 5.4.5,我的其他一些文件会显示错误,但它们使用PHP 5.2.17执行正常.

在我的.htaccess文件中,下面的行是先前编写的,以使用PHP 5.2.17

AddType x-mapp-php5 .php
Run Code Online (Sandbox Code Playgroud)

要使用PHP 5.4.5我必须使用下面的行(使用此代码的说明将在1and1常见问题页面上找到)

AddHandler x-mapp-php6 .php
Run Code Online (Sandbox Code Playgroud)

常见问题网址:

有没有办法只使用PHP 5.4.5的那些特定文件?

我尝试在.htaccess中使用下面的行,但它不起作用:

AddType x-mapp-php5 .php
AddHandler x-mapp-php6 FilenameController.php
Run Code Online (Sandbox Code Playgroud)

编辑

我试着编辑5.2代码.我正在使用PEAR包来创建Excel表格,它可以在PHP 5.2.17中正常工作,但在PHP 5.4.5上显示以下错误

致命错误:无法重新声明_PEAR_call_destructors()

附录

此更改为.htaccess文件

AddType x-mapp-php5 .php 
AddHandler x-mapp-php6 .php6 
SetEnv APPLICATION_ENV development 
Options -MultiViews 
<IfModule mod_rewrite.c> 
  RewriteEngine On 
  RewriteBase / 

  RewriteRule ^FilenameController\.php$ FilenameController.php6  [L] 

  RewriteCond %{REQUEST_FILENAME} -s [OR]
  RewriteCond %{REQUEST_FILENAME} -l [OR] 
  RewriteCond %{REQUEST_FILENAME} -d 
  RewriteRule ^.*$ - [NC,L] 

  RewriteRule ^.*$ index.php [NC,L] 
</IfModule>
Run Code Online (Sandbox Code Playgroud)

如果我将FilenameController.php的文件名更改为FilenameController.php6,并且当我尝试访问其生成的页面时,会生成404"找不到页面"错误.

php .htaccess

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

如何将十六进制ASCII字符串转换为有符号整数

输入='FFFF'#4 ASCII F'

期望的结果... -1作为整数

代码试过:

hexstring = 'FFFF'
result = (int(hexstring,16))
print result #65535
Run Code Online (Sandbox Code Playgroud)

结果:65535

我所尝试过的任何事情似乎都没有认识到'FFFF'是负数的表示.

python binary

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

我可以将MysQL时间戳与日期时间列进行比较吗?这不好吗?

所以,我有一个表格,其中"ABC"列是时间戳,"BCD"是日期时间.

如果我这样做:

SELECT * FROM myTable WHERE ABC > BCD
Run Code Online (Sandbox Code Playgroud)

这不好吗?它会影响性能吗?

他们如何在性能方面进行比较?

mysql datetime timestamp

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

$ _SERVER ['HTTP_HOST']未设置

我的php页面流量很大但没有变量$_SERVER['HTTP_HOST']集.

此流量类似于每秒1次点击.我不知道它可能是什么,但为了减少服务器负载,我在每个php页面的顶部执行此操作:

if (!isset($_SERVER['HTTP_HOST']))
    exit;
Run Code Online (Sandbox Code Playgroud)

你知道是什么原因引起的吗?HTTP_HOST没有设置时退出是否安全?

普通用户可以不设置访问我的页面HTTP_HOST吗?

  • PHP版本:5.2.0-8
  • Apache:2.2.3

php apache

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

如何更改PCRE正则表达式认为多线模式的换行符?

使用PHP中的PCRE正则表达式,多行模式(/m)启用^$匹配源文本中行的开始和结束(由换行符分隔),以及源文本的开头和结尾.

这似乎在Linux上运行良好,其中\n(LF)是换行符分隔符,但在Windows上使用\r\n(CRLF)失败.

有没有办法改变PCRE认为的新行?或者也许允许它以匹配$行尾/字符串的相同方式匹配CRLF或LF ?

例:

$EOL = "\n";    // Linux LF
$SOURCE_TEXT = "one{$EOL}two{$EOL}three{$EOL}four";
if (preg_match('/^two$/m',$SOURCE_TEXT)) {
    echo 'Found match.';    // <<< RESULT
} else {
    echo 'Did not find match!';
}
Run Code Online (Sandbox Code Playgroud)

结果:成功

$EOL = "\r\n";    // Windows CR+LF
$SOURCE_TEXT = "one{$EOL}two{$EOL}three{$EOL}four";
if (preg_match('/^two$/m',$SOURCE_TEXT)) {
    echo 'Found match.';
} else {
    echo 'Did not find match!';    // <<< RESULT
}
Run Code Online (Sandbox Code Playgroud)

结果:失败

php regex pcre preg-match

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

是否始终定义HTTP_HOST服务器变量?

服务器变量是否HTTP_HOST始终为所有服务器定义,或者例如在IIS中使用其他名称定义,甚至根本没有定义?

此外,该值始终定义?或者某些主持人他们没有定义这个价值?有没有其他方法来检索该值?

php apache iis

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

Blogger/Blogspot 重定向到自己的域?

如何创建 301-Google 友好重定向,将访问者从 Blogger/Blogspot 网站重定向到我自己的域?

旧域帖子的访问者:

http://example.blogspot.com/2014/03/blogpost-title.html
Run Code Online (Sandbox Code Playgroud)

应该重定向到新域:

http://example.com/blogpost-title/
Run Code Online (Sandbox Code Playgroud)

我如何使用 Blogger/Blogspot 做到这一点?

编辑:在新域中,我不想使用 blogspot - 我使用自己托管的 WordPress。

redirect blogger blogspot

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

下载名称中带有空格的文件 - 通过htaccess限制

我偶然发现了保护文件的奇怪方法.

基本上,受保护文件夹中有空的download.php文件和两个导致文件下载的文件(来自同一文件夹):.htpwd,其中存储密码和.htaccess:

RewriteEngine On
##RewriteBase /
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?example.com [NC]
RewriteRule \.(.*)$ - [NC,F,L]

RewriteCond %{QUERY_STRING} ^filename=(.*)$
RewriteRule ^download\.php$ %1
RewriteRule (.*) - [E=file:$1]
Header set Content-type "octet-stream"
Header set Content-disposition "attachment; filename=%{file}e" env=file

##AuthName "Restricted Access" 
##AuthType Basic
##AuthUserFile /local/home/example/example.com/downloads/.htpwd
##AuthGroupFile /dev/null 
##require valid-user
Run Code Online (Sandbox Code Playgroud)

下载链接示例:
http://www.example.com/downloads/download.php?filename=dog%20cat%20cow.zip

如果filename是dog-cat-cow.zip - 一切正常.当文件名为:"dog cat cow.zip"时会出现问题,然后下载文件,但下载后的文件名将是"dog"而不是"dog cat cow.zip".所以问题是人们在没有扩展的情况下获得文件,并且不知道如何处理它.

考虑到我根本无法重命名这些文件并删除空格,如何解决这个问题?我不是如何阅读.htaccess的专家,没有我能想到的短语给出任何类似的问题解决方案.有任何想法吗?

php apache .htaccess .htpasswd

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