假设您有一个缩略图生成器脚本,它接受URL形式的源图像.有没有办法检测源URL是否"损坏" - 是否不存在或导致非图像文件?
只是暴力使用getimagesize()或其他PHP GD功能不是解决方案,因为可能输入可能根本不是图像(http://example.com/malicious.exe或相同文件,但重命名为http://example.com/malicious.jpg)的欺骗性杂散URL - 这样的情况很容易被PHP检测到之前必须调用GD.我正在寻找GD预先消毒,然后GD尝试解析文件的营.
作为第一步,以下正则表达式检查URL是否是图像扩展名:
preg_match('@(https?://([-\w\.]+)+(:\d+)?(/([\w/_\.]*(\?\S+)?)?)?)([^\s]+(\.(?i)(jpg|png|gif|bmp))$)@', $txt,$url);
我有以下代码用于提取tar.gz文件,同时密切关注进度:
from __future__ import division
import tarfile
import os
theArchive = "/Users/Dennis/Instances/atlassian-jira-enterprise-4.1.2-standalone.tar.gz"
a = tarfile.open(theArchive)
tarsize = 0
print "Computing total size"
for tarinfo in a:
tarsize = tarsize + tarinfo.size
realz = tarsize
print "compressed size: " + str(a.fileobj.size)
print "uncompressed size: " + str(tarsize)
tarsize = 0
for tarinfo in a:
print tarinfo.name, "is", tarinfo.size, "bytes in size and is",
if tarinfo.isreg():
print "a regular file."
elif tarinfo.isdir():
print "a directory."
else:
print "something else."
a.extract(tarinfo)
tarsize = …Run Code Online (Sandbox Code Playgroud) 我遇到一些问题,让我的网站在会话结束时(用户关闭浏览器)自动注销经过身份验证的用户.
这是我在web.config中的内容:
<authentication mode="Forms">
<forms name="AuthCookie" protection="All" loginUrl="~/default.aspx" path="/" cookieless="UseCookies" timeout="2592000"/>
</authentication>
<authorization>
<allow users="?" />
</authorization>
<membership defaultProvider="ASPPGSqlMembershipProvider" userIsOnlineTimeWindow="20">
<providers>
<clear />
<add name="AspNetSqlMemberShipProvider" applicationName="umbraco4" type="System.Web.Security.SqlMembershipProvider" connectionStringName="UmbracoDb" requiresUniqueEmail="true" enablePasswordReset="true" enablePasswordRetrieval="false"/>
<add name="UsersMembershipProvider" applicationName="umbraco4" type="umbraco.providers.UsersMembershipProvider" enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="false" />
<add name="ASPPGSqlMembershipProvider" applicationName="umbraco4"
passwordStrengthRegularExpression="" minRequiredPasswordLength="4" minRequiredNonalphanumericCharacters="0"
enablePasswordRetrieval="false"
enablePasswordReset="true"
requiresQuestionAndAnswer="false"
requiresUniqueEmail="true"
forumUpfileFolderPath="D:\www\files"
type="ASPPG.MembershipProviders.ASPPGSqlMembershipProvider, ASPPGSiteIntegrationPackage"/>
</providers>
</membership>
Run Code Online (Sandbox Code Playgroud)
这是我登录用户的方式:
if (Membership.ValidateUser(txtUserName.Text, txtPasssword.Text)) {
HttpCookie cookie = FormsAuthentication.GetAuthCookie(txtUserName.Text, false);
cookie.Expires = DateTime.Now.AddDays(1);
cookie.Domain = ConfigurationManager.AppSettings["Level2DomainName"];
HttpContext.Current.Response.Cookies.Add(cookie);
Response.Redirect(Request.Url.ToString());
}
Run Code Online (Sandbox Code Playgroud)
当我关闭浏览器时,用户仍然登录.如何通过选项让网站忘记用户,以便用户自己决定网站是否应该记住?
提前致谢 :)
中号
我有一个Double值xx.yyy,如果值为负,我想转换为字符串"xxyyy"或"-xxyy".
我怎么能这样做?
问候.
我的应用程序中的夏令时(DST)有一个非常奇怪的问题.出于某种原因,每当我从表中收到时间时,它都不会为DST调整自己.例如,如果我在控制台中创建一个新的Time,在适当的时区,将其写入数据库,然后尝试从数据库中检索它,它会在一小时前返回.
这是一个例子:
在这里,我们可以看到使用控制台,在美国东部时间15:00创建一个新的时间等于19:00 UTC(因为调整为DST,这使得-0400而不是通常的-0500):
ruby-1.8.6-p114 > Time.zone
=> #<ActiveSupport::TimeZone:0x12b1b68 @name="UTC", @tzinfo=nil, @utc_offset=0>
ruby-1.8.6-p114 > Time.zone = "Eastern Time (US & Canada)"
=> "Eastern Time (US & Canada)"
ruby-1.8.6-p114 > Time.zone.parse("15:00")
=> Thu, 09 Sep 2010 15:00:00 EDT -04:00
ruby-1.8.6-p114 > Time.zone.parse("15:00").utc
=> Thu Sep 09 19:00:00 UTC 2010
ruby-1.8.6-p114 > Time.zone.parse("15:00").dst?
=> true
Run Code Online (Sandbox Code Playgroud)
现在,我尝试将同一时间写入数据库,并将其检索回来:
ruby-1.8.6-p114 > b = Book.new
=> #<Book id: nil, return_time: nil, created_at: nil, updated_at: nil>
ruby-1.8.6-p114 > b.return_time = Time.zone.parse("15:00")
=> Thu, 09 Sep 2010 15:00:00 …Run Code Online (Sandbox Code Playgroud) 我希望将目录从一个位置复制到另一个位置.但是,在查看"copy"和"copyDir"(不推荐使用)之后,默认情况下,Ant似乎只将一个位置的内容复制到另一个位置,而不是实际目录(以及其中的所有内容).
所以,作为一个例子,我有以下内容:
./Foo/test.txt
Run Code Online (Sandbox Code Playgroud)
我应用以下Ant:
<copy todir="./build">
<fileset dir="./Foo"/>
</copy>
Run Code Online (Sandbox Code Playgroud)
结果如下:
./build/test.txt
Run Code Online (Sandbox Code Playgroud)
而我希望它是:
./build/Foo/test.txt
Run Code Online (Sandbox Code Playgroud)
希望有道理.我怎样才能做到这一点?
我正在开发一个Java应用程序,它应该允许用户优化他们的日程安排.为此,我需要一个框架来帮助计算"任务"的最佳时间,注意:
一些澄清:我既不是在寻找一个框架来绘制这些甘特,也不是在寻找一个处理一个特定问题领域的框架(如教室),而且绝对不是一个处理线程调度的框架.
谢谢!
我的ASP.NET网站有一个奇怪的减速,我似乎无法追查.我怀疑GC可能会开始并停止我的线程.要确定每次GC确实发生时都要记录它会很好.
我可以制作一个虚拟对象并在其终结器中进行记录,但那将是一次性解决方案,而在我的情况下,有几个这样无法解释的暂停.
有任何想法吗?
补充:环境是VS2008/.NET 3.5 SP1.不,垃圾收集通知不会这样做,因为它们是一种轮询方法,并不适用于并发GC.
我想通过开放的wifi连接提供网站,但我不希望这个wifi连接可以访问互联网.这是可能的,我将如何去做.
我已在本地设置网站,并通过localhost或IP地址在浏览器中访问,但我不知道如何设置网络服务器并通过wifi服务网站.
对此有何见解?
是否有更好/更简单的方法\w+从现有字符串创建字符串?
char *FixName(char *name)
{
char *ptr, tmp;
char *new = malloc(strlen(name)+1);
sprintf(new, "str_");
for (ptr = name + 4; *ptr; ptr++)
{
if ((*ptr >= '0' && *ptr <= '9') ||
(*ptr >= 'A' && *ptr <= 'Z') ||
(*ptr >= 'a' && *ptr <= 'z') ||
*ptr == '_')
{
tmp = *(ptr+1);
*(ptr+1) = '\0';
strcat(new, ptr);
*(ptr+1) = tmp;
}
}
free(name);
return new;
}
// USAGE:
//char *j = strdup("str_[](1.00)");
//printf("J: %s\n", j); …Run Code Online (Sandbox Code Playgroud) java ×2
string ×2
.net ×1
ant ×1
asp.net ×1
c ×1
dst ×1
events ×1
formatting ×1
gantt-chart ×1
gd ×1
ip-address ×1
numbers ×1
php ×1
python ×1
remember-me ×1
scheduling ×1
tar ×1
time ×1
timezone ×1
tkinter ×1
webserver ×1
wifi ×1