我有一个PHP项目,我需要在URL的路径中发送一个哈希字符(#).(http://www.example.com/parameter#23/parameter#67/index.php)我认为urlencode允许这样做,将哈希值转换为%23
但是现在我看到,即使是urlencoded哈希也会强制浏览器将所有内容都视为URL片段(或查询).
有没有办法传递哈希值,还是我需要在urlencode之前进行字符替换?
编辑添加(2017年9月19日):
原来我问的是错误的问题.我的问题不是在路径中使用哈希字符(编码它确实有效),而是使用mod_rewrite将其转换为查询字符串.我没能在RewriteRule中重新编码它.我将编辑标题以匹配.
这是我使用的重写规则:
RewriteEngine On
# convert path strings into query strings
RewriteRule "^(.*)/(.*)/hashtags.php" /hashtags.php?parameter_1=$1&parameter_2=$2 [QSA,L]
Run Code Online (Sandbox Code Playgroud)
一旦我添加了B标签,它就能正常工作:
RewriteEngine On
# convert path strings into query strings
RewriteRule "^(.*)/(.*)/hashtags.php" /hashtags.php?parameter_1=$1&parameter_2=$2 [QSA,L,B]
Run Code Online (Sandbox Code Playgroud) 我开始怀疑这是否可能,因为在SO,Google,Bing和linuxquestions.org上的多次搜索都没有发现.
我有兴趣扩展位于/usr/share/magic(由file(1)实用程序使用)的魔术模式,以根据文件末尾或附近的数据识别文件.我已经能够在文件的开头执行此操作,以及从一开始就对文件进行任意偏移.
该手册页非常好地说明了一些标准用例; 不幸的是,似乎没有一种方法可以从最终开始而不是从开头开始.我能想到的唯一解决方法是使用tac和/或采用脚本方法,lreverse但感觉这些可能对二进制数据不友好.
此外,我想避免任何其他脚本处理 - 我觉得这应该是正确的文件魔术可行.有任何想法吗?
我在php类中有这个:
$this->ID = $user_id;
public function getUserFiles($id = $this->ID) { } // error here
Run Code Online (Sandbox Code Playgroud)
但显然我不允许以这种方式使用房产.那么我该如何声明方法参数的默认值应该是ID属性的值?
必须有一个比这更好的方法:
$this->ID = $user_id;
public function getUserFiles($id = '') {
$id = ($id == '') ? $this->ID : $id;
}
Run Code Online (Sandbox Code Playgroud) 任何人都可以指出我如何在MVC应用程序中使用Facebook C#SDK的表单帖子?这是一个基于iframe的Canvas应用程序.
我有以下代码
[HttpPost, CanvasAuthorize(Permissions = "publish_stream")]
public ActionResult Enter(FormCollection col)
{
var fbApp = new FacebookClient(this.CurrentSession.AccessToken);
JsonObject result = (JsonObject)fbApp.Get("me");
long FacebookId = long.Parse(result["id"].ToString());
//CODE TO INSERT GOES HERE
return View();
}
Run Code Online (Sandbox Code Playgroud)
形式就是这样
<form action="/EnterComp/Enter" enctype="multipart/form-data" method="post">
<fieldset>
<legend>Fields</legend>
<div class="editor-label">
<label for="Text">Text</label>
</div>
<div class="editor-field">
<input id="Text" name="Text" type="text" value="" />
</div>
<div class="editor-label">
<label for="ImagePath">ImagePath</label>
</div>
<div class="editor-field">
<input type="file" name="ImagePath" id="ImagePath">
</div>
<div class="editor-label">
<label for="VideoPath">VideoPath</label>
</div>
<div class="editor-field">
<input type="file" name="VideoPath" id="VideoPath">
</div>
<p>
<input …Run Code Online (Sandbox Code Playgroud) 我的应用程序必须发送一个文本文件,它首先必须生成一个String.该文本包含非ASCII符号,所以我希望它是UTF-8.我已经尝试了很多变种,但我收到的所有附件都是一些问号.并且,当我发送与邮件正文相同的文本时,它可以正常工作.
以下是生成带附件的MimeBodyPart的代码行:
String attachment = "??????";
messageBodyPart.setContent(new String(attachment.getBytes("UTF-8"),
"UTF-8"),"text/plain; charset=UTF-8");
Run Code Online (Sandbox Code Playgroud)
我也尝试使用没有任何转换的字符串,只使用字节,现在,如你所见,我试图从字节生成一个字符串...
我究竟做错了什么?(我确实记得在另一个项目中这样做,但是我不再能够访问它的源代码).
先感谢您.提莫菲.
UPDATE
阅读完回复后,经过一些不成功的试验后,我认为最好发布我的邮件代码.我有一个Mailer类,它负责邮件发送,其他类可以调用它的静态sendMessage()方法来发送消息.这一切都在Google App Engine上运行.
public static void sendMessage(String to, String subject, String msgBody,
String attachment) throws AddressException, MessagingException {
Properties props = new Properties();
Session mailSession = Session.getDefaultInstance(props, null);
Message msg = new MimeMessage(mailSession);
String email = "bla-bla-bla"; // userService.getCurrentUser().getEmail();
msg.setFrom(new InternetAddress(email));
msg.addRecipient(Message.RecipientType.TO, new InternetAddress(to));
InternetAddress[] addresses = { new InternetAddress("bla-bla-bla") };
msg.setReplyTo(addresses);
msg.setSubject(subject);
Calendar cal = Calendar.getInstance();
String fileName = cal.get(Calendar.YEAR) + …Run Code Online (Sandbox Code Playgroud) 我对位于文件夹中的sharepoint'init.js'进行了一些更改:
C:\ Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\TEMPLATE\LAYOUTS\1033\init.js
我需要创建可以替换现有init.js的部署包.我怎样才能做到这一点?
我刚开始在我的网站上提供用户帐户(大型PR6网站,声誉良好),我注意到注册电子邮件几乎总是发送到收件人垃圾邮箱.
到目前为止,我们只发了几封电子邮件,所以它不像我们一直在抨击成千上万.
我通过PHP发送电子邮件和mail()函数.您可以在下面找到我使用mail()函数发送的标题.
$headers = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
$headers .= 'From: Domain.com <noreply@mydomain.com>' . "\r\n";
Run Code Online (Sandbox Code Playgroud)
是否有办法或技巧来绕过这些垃圾邮件过滤器?它显然不是我发送的垃圾邮件.注册邮箱包含3个链接.
有没有where-object比使用父范围变量更好的方法将信息传递到过滤器脚本中的脚本块?
背景:
我有一个脚本,查找未签入和/或修改的源文件与源代码控制,并有一个参数,允许它进行更详尽的搜索.我where-object在一些地方使用脚本块对象包含在脚本范围的变量中,我根据脚本的输入参数自定义该变量.
因此,如果您要求彻底搜索,过滤器会将候选文件与所有TFS文件进行比较,以查看该文件是否不在源代码控制中,如果您选择不太彻底的搜索,则过滤器只会与已检查的内容进行比较 - 输出文件以查看文件是否已修改但未检出.
自定义脚本块指的是包含对源控件执行查询的结果的脚本范围变量.
所以我的问题是我想摆脱一个全局(脚本级)变量,并将所有必要的信息作为脚本块的参数传递给脚本块.如果我正在使用invoke-command,我会使用ArgumentList参数来执行此操作. Where-Object似乎没有那个.在脚本块中使用父范围变量引用的一个缺点是我无法更改这些变量,所以我不能进行延迟初始化(或者至少我还没弄清楚如何,不是一个专家Powershell的范围规则.)
有没有人知道现有的解决方案来帮助编写NSIS脚本的测试?
动机是知道修改现有安装脚本是否会破坏它或产生不良副作用的好处.
php ×3
.net ×1
android ×1
apache ×1
attachment ×1
c# ×1
class ×1
class-design ×1
email ×1
email-spam ×1
encoding ×1
facebook ×1
file ×1
gmail ×1
hash ×1
installer ×1
jakarta-mail ×1
java ×1
libmagic ×1
linux ×1
mod-rewrite ×1
nsis ×1
oop ×1
parsing ×1
powershell ×1
rss ×1
spam ×1
testing ×1
urlencode ×1