我见过一些使用自动更新票证自动安装的应用程序,而大多数却没有。
不幸的是,我在寻找细节方面并没有取得很大的成功,因此我在解释自己尝试过的事情上没有太多提供。
这是如何完成的?
我创建了一个简单的Drupal模块,它使用单例设计模式来保持钩子调用之间的数据.但是,这似乎并没有像我希望的那样保存数据.
这似乎是一个PHP理解问题,而不是Drupal,但如果有人有Drupal提示,这就是我正在做的事情.
单身设置
class TempStore {
private $_fileName;
public function getFileName() { return $_fileName; }
public function setFileName($fileName) { $_fileName = $fileName; }
function __construct() {
}
}
function MYMODULE_data() {
static $data;
if (!isset($data))
$data = new TempStore();
return $data;
}
Run Code Online (Sandbox Code Playgroud)
甚至在同一功能中也可以看到麻烦.
function MYMODULE_file_insert($file) {
$token = $file->timestamp;
MYMODULE_data()->setFileName($token);
// error message: Notice: Undefined variable: _fileName in TempStore->getFileName()
$checkVal = MYMODULE_data()->getFileName();
}
Run Code Online (Sandbox Code Playgroud)
错误消息是
注意:未定义的变量:TempStore中的_fileName-> getFileName()
由于这发生在同一个函数调用中,我相信这是我对PHP如何处理这类事情并且与Drupal无关的理解失败.
谁能看出有什么问题?
我有一个视图(X.Xaml),它有一些控件,包括一个CheckBox.
当我检查CheckBox它时应该使会话成为True并且当我取消选中它时,它必须使会话False.
如果我在X.Xaml.cs代码隐藏中执行它,那将很容易但我希望我的代码干净.
无论如何使用Command并在ViewModel端处理它?
我试图使用https://sshnet.codeplex.com/允许PowerShell脚本将文件上传到SFTP服务器。一切似乎都可以正常工作,除非找不到方法的重载UploadFile并陷入困境。
方法的定义在这里
TypeName : Renci.SshNet.SftpClient
Name : UploadFile
MemberType : Method
Definition : void UploadFile(System.IO.Stream input, string path, System.Action[uint64] uploadCallback),
void UploadFile(System.IO.Stream input, string path, bool canOverride, System.Action[uint64] uploadCallback)
Run Code Online (Sandbox Code Playgroud)
我正在尝试使用此重载
UploadFile(System.IO.Stream input, string path, System.Action[uint64] uploadCallback)
Run Code Online (Sandbox Code Playgroud)
uploadCallback根据文档,该字段是可选的,在我的简单脚本中不需要该字段,但是即使添加该字段也会失败。我尝试使用此方法的方法如下,但都失败了。
如何成功调用这些方法之一?我尝试过的示例如下。
例子
$client = New-Object Renci.SshNet.SftpClient($ftpHost, $ftpPort, $ftpUser, $ftpPass)
$client.Connect()
# ... get stream of file to upload here ...
$client.UploadFile($sourceStream, "$ftpPath$output")
Run Code Online (Sandbox Code Playgroud)
与失败
Cannot find an overload for "UploadFile" and the argument count: "2".
At F:\MyScript.ps1:170 char:2
+ …Run Code Online (Sandbox Code Playgroud) 我正在尝试创建一个随机生成的单词串,除非我连续多次调用它,否则它可以正常工作.这是在WebForms页面上,单词列表来自文件.
我怀疑我不理解C#中的某些东西,或者在这种情况下ASP.NET可能工作,有人可以解释为什么会发生这种情况以及如何解决问题吗?
这是方法
public string GeneratePhrase()
{
// get dictionary file
var data = File.ReadAllLines(HttpContext.Current.Server.MapPath("~/libs/words.txt"));
Random rand = new Random();
int r1 = rand.Next(data.Count());
int r2 = rand.Next(data.Count());
int r3 = rand.Next(data.Count());
string p1 = data.ElementAt(r1).ToLower();
string p2 = data.ElementAt(r2).ToLower();
string p3 = data.ElementAt(r3).ToLower();
string ret = string.Format("{0}{1}{2}", p1, p2, p3);
return ret;
}
Run Code Online (Sandbox Code Playgroud)
如果我在a期间调用一次PostBack,那就很好并且总是创建一个随机的单词组合.但是如果我在PostBack期间多次使用它,它只是从每次调用重复相同的随机字符串.
string s1 = this.GeneratePhrase();
string s2 = this.GeneratePhrase();
string s3 = this.GeneratePhrase();
Response.Write(s1);
Response.Write(s2);
Response.Write(s3);
Run Code Online (Sandbox Code Playgroud)
产量
tirefriendhotdog
tirefriendhotdog
tirefriendhotdog
Run Code Online (Sandbox Code Playgroud)
为何会出现这种情况的原因?
我相信我错过了一些明显的东西,或者误解了PowerShell的splatting功能.
我正在使用哈希表将参数传递给自定义函数,但它似乎不会在一个简单的例子中使用参数.
文件:Test-Splat.ps1
function Test-Splat
{
param(
[Parameter(Mandatory=$true)][string]$Name,
[Parameter(Mandatory=$true)][string]$Greeting
)
$s = "$Greeting, $Name"
Write-Host $s
}
Run Code Online (Sandbox Code Playgroud)
然后尝试使用splatting执行此操作,请求第二个参数的值.
. .\Test-Splat.ps1
$Params = @{
Name = "Frank"
Greeting = "Hello"
}
Test-Splat $Params
Run Code Online (Sandbox Code Playgroud)
产生以下结果
cmdlet Test-Splat at command pipeline position 1
Supply values for the following parameters:
Greeting:
Run Code Online (Sandbox Code Playgroud)
如果我直接使用它而不用splatting,它可以工作
Greeting: [PS] C:\>Test-Splat -Name "Frank" -Greeting "Hello"
Hello, Frank
Run Code Online (Sandbox Code Playgroud)
如果它是相关的,我在PowerShell 3.0下的Exchange命令行管理程序中执行此操作
[PS] C:\>$PSVersionTable.PSVersion
Major Minor Build Revision
----- ----- ----- --------
3 0 -1 -1
Run Code Online (Sandbox Code Playgroud) 我们通过PowerShell将一些导入到Active Directory中,其中有几个字段作为数据源中的空字符串出现,但需要$null在Active Directory中设置.
由于这些字段中有相当多,我尝试创建一个将空字符串转换为的函数$null.
麻烦的是,如果我将变量设置回自身,它仍然是一个空字符串.如果我将它设置为新变量,它可以正常工作.
function Get-ValueOrNull
{
param(
[Parameter(Mandatory=$true)]
[AllowEmptyString()]
[string]$Value
)
if ([string]::IsNullOrEmpty($Value))
{
return $null
}
return [string]$Value
}
function Test-Function
{
param(
[Parameter(Mandatory=$true)]
[AllowEmptyString()]
[string]$TestValue
)
$TestValue = Get-ValueOrNull -Value $TestValue
$TestValue2 = Get-ValueOrNull -Value $TestValue
Write-Host "TestValue: $($TestValue -eq $null)"
Write-Host "TestValue2: $($TestValue2 -eq $null)"
}
Test-Function -TestValue ""
Run Code Online (Sandbox Code Playgroud)
这里的输出是
PS C:\> .\Test-Function.ps1
TestValue: False
TestValue2: True
Run Code Online (Sandbox Code Playgroud)
这显然是我不了解PowerShell函数参数中的类型.我可以改变[string]$TestValue到$TestValue,它会工作.
function Test-Function
{
param(
[Parameter(Mandatory=$true)]
[AllowEmptyString()]
$TestValue
)
... …Run Code Online (Sandbox Code Playgroud) commentary = soup.find('div', {'id' : 'live-text-commentary-wrapper'})
findtoure = commentary.findAll(text = 'Gnegneri Toure Yaya')
Run Code Online (Sandbox Code Playgroud)
我不明白为什么这不起作用。
评论的输出是:
<div id="live-text-commentary-wrapper">
<h2 id="live-text-introduction">Live Text Commentary</h2>
<div class="live-text blq-clearfix" id="live-text">
<span>90:00
<span class="extra-info">+3:04
<span class="icon-live-text-full-time">Full time</span></span></span>
<p class="event">
<span class="event-title">
<strong>Full Time</strong>
</span> The referee ends the match.</p>
<span>90:00
<span class="extra-info">+2:52</span></span>
<p>Gael Clichy produces a cross, clearance made by Mike Williamson.</p>
<span>90:00
<span class="extra-info">+0:41</span></span>
<p>Shot by Shola Ameobi from 20 yards. Save made by Joe Hart.</p>
<span>90:00
<span class="extra-info">+0:07</span></span>
<p>The ball is crossed by Davide …Run Code Online (Sandbox Code Playgroud) 我正试图在页面包装器上有一个100%拉伸的导航菜单.在我的5个列表项的测试中,我有以下问题
这是一个没有全屏包装的例子.

一旦你调整浏览器的大小,它就会包装好

有人可以解释为什么会发生这种情况以及如何正确修复它?
上面的jsFiddle链接有代码演示实时问题,这里是代码.
CSS
ul.nice-menu, ul.nice-menu ul {
list-style: none;
padding: 0;
margin: 0;
position: relative;
}
#zone-menu ul > li {
width: 19.8%;
padding: 0;
margin: 0;
}
ul.nice-menu li {
margin: 0;
padding: 0;
}
ul.nice-menu-down li {
}
ul.nice-menu li {
display: inline-block;
background-color: #eee;
position: relative;
}
Run Code Online (Sandbox Code Playgroud)
HTML
<div id="zone-menu">
<ul class="nice-menu nice-menu-down">
<li><a href="/">Another Test</a></li>
<li><a href="/">Test</a></li>
<li><a href="/">Another Test2</a></li>
<li><a href="/">Menu Item 2</a></li>
<li><a href="/">Test3</a></li>
</ul> …Run Code Online (Sandbox Code Playgroud)