如何测试字符串是否为URL编码?
以下哪种方法更好?
function is_urlEncoded($string){
$test_string = $string;
while(urldecode($test_string) != $test_string){
$test_string = urldecode($test_string);
}
return (urlencode($test_string) == $string)?True:False;
}
$t = "Hello World > how are you?";
if(is_urlEncoded($sreq)){
print "Was Encoded.\n";
}else{
print "Not Encoded.\n";
print "Should be ".urlencode($sreq)."\n";
}
Run Code Online (Sandbox Code Playgroud)
上面的代码可以工作,但不是在字符串经过双重编码的情况下,如下例所示:
$t = "Hello%2BWorld%2B%253E%2Bhow%2Bare%2Byou%253F";$t = "Hello+World%2B%253E%2Bhow%2Bare%2Byou%253F";我有一个TabItem连接一个列表框,它有一个可观察的我的feed类集合作为它的项目源.当我将提要刷新/加载到集合中时,我想要禁用主窗口,以便用户在此进程运行时无法单击其他内容.所以我tbCtrl.isEnabled=false;在表单上设置了我的选项卡控件.然后将事件处理程序分配给自定义完成事件,该事件在加载所有订阅源后触发.
这一切都运行正常,但是当前显示在选项卡控件上的结果的超链接永远不会重新启用(由于列表框大小,下面几个也不在视图之外).所有其他结果进一步下降都很好,其他选项卡上的结果也是如此.
我已经尝试InvalidateVisual在所有内容完成后调用选项卡控件,看看是否有所作为,但这似乎不会导致任何更改.
我可以理解它是否所有超链接都在做,或者只是当前显示的那些,但我不明白为什么那些没有滚动的也没有工作.
我正在开始一个WPF项目,刚刚完成了UI的基础,但它似乎非常复杂,所以我不确定我是否已经以正确的方式进行了解决.我不想开始开发后端,并意识到我做错了前提,让自己的生活更加艰难.
从<DIV>和CSS的背景到风格,这是一个很大的不同,并且真的想从一开始就把它弄好.
基本上它是一个星期的日历(7天,周一至周日,默认为当前一周.)最终将链接到数据库,如果我在这一天预约某事,它将在相关日显示.
我选择了Grid而不是ListView,因为它的工作方式我不会将结果绑定到集合或其他任何行.相反,我将在画布中为每个事件填写一个组合框(每天都放在代码中),并且在选择时它将向我显示更多细节.
XAML:
<Window x:Class="WOW_Widget.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:s="clr-namespace:System;assembly=mscorlib"
xmlns:Extensions="clr-namespace:WOW_Widget"
DataContext="{Binding RelativeSource={RelativeSource Self}}"
Title="Window1" Height="239" Width="831">
<Window.Resources>
<LinearGradientBrush x:Key="NormalBrush" StartPoint="0,0" EndPoint="0,1">
<GradientBrush.GradientStops>
<GradientStopCollection>
<GradientStop Offset="1.0" Color="White"/>
<GradientStop Offset="0.0" Color="LightSlateGray"/>
</GradientStopCollection>
</GradientBrush.GradientStops>
</LinearGradientBrush>
<LinearGradientBrush x:Key="grdDayHeader" StartPoint="0,0" EndPoint="0,1">
<GradientBrush.GradientStops>
<GradientStopCollection>
<GradientStop Offset="0.0" Color="Peru" />
<GradientStop Offset="1.0" Color="White" />
</GradientStopCollection>
</GradientBrush.GradientStops>
</LinearGradientBrush>
<LinearGradientBrush x:Key="grdToday" StartPoint="0,0" EndPoint="0,1">
<GradientBrush.GradientStops>
<GradientStopCollection>
<GradientStop Offset="0.0" Color="LimeGreen"/>
<GradientStop Offset="1.0" Color="DarkGreen" />
</GradientStopCollection>
</GradientBrush.GradientStops>
</LinearGradientBrush>
<Style TargetType="{x:Type GridViewColumnHeader}">
<Setter Property="Background" Value="Khaki" />
</Style>
<Style x:Key="DayHeader" TargetType="{x:Type Label}">
<Setter Property="Background" …Run Code Online (Sandbox Code Playgroud) 尝试为我正在制作的系统实现一个非常简单的TPH设置,1个基础,2个继承类.
但是继承的类都属于同一个实体集,所以在我的ObjectContext中使用循环,我只能访问基本的抽象类.我不太确定我是如何获得具体类的元素的?(我也将它转换为使用POCO).

然后在我的应用程序中使用实体:
using (SolEntities sec = new SolEntities()) {
Planets = sec.CelestialBodies;
}
Run Code Online (Sandbox Code Playgroud)
有一个CelestialBodies实体设置sec,但没有我期望的行星/卫星.
不太确定要访问它们需要做什么.
谢谢
我想要一个字符串资源,其中包含一个超链接.我想这是不可能的,除非我有4个资源字符串:
预超链接文本超链接href超链接文本超链接后文本.
然后通过以下方式在xaml中构建它:
<StackPanel Grid.Column="1" Orientation="Horizontal" VerticalAlignment="Top" HorizontalAlignment="Right">
<TextBlock Grid.Column="1" Text="{x:Static p.Resources.PreHText}" />
<Hyperlink Grid.Column="1" NavigateUri="{x:Static p.Resources.HHref}">
<TextBlock Text="{x:Static p.Resources.HText}" /></Hyperlink></TextBlock>
<TextBlock Grid.Column="1" Text="{x:Static p.Resource.PostHText}" />
</StackPanel>
Run Code Online (Sandbox Code Playgroud)
由于许多原因(造型,不是非常动态等等),这很可怕.栏创建我自己的渲染和字符串格式,例如"请发送电子邮件至{me@there.com |帮助台}以获得进一步的帮助".有没有其他方法来实现这一目标?(不必使用resources.resx文件)
我试图通过使用带有谓词的Linq来计算出数组在阵列中出现的最大值的次数.Count().但是,我不完全明白该怎么做.从阅读MSDN的例子我认为我理解,但显然不是!
这就是我的想法:
string[] test = { "1", "2", "3", "4", "4" };
string max = test.Max();
Label1.Text = test.Count(p => p == max);
Run Code Online (Sandbox Code Playgroud)
但那没用.所以我尝试将max更改为整数以查看是否可行,但这也不起作用.
试图制作.bat脚本,并需要让一些字符串正常工作.
这是我到目前为止所得到的
@echo off
for /r %%i in (*.csv) do (
set str=%%i
set str=%str:csv=rar%
echo %%i
echo.%str%
)
Run Code Online (Sandbox Code Playgroud)
假设我已经在C:\中运行,并得到5 csv,1.csv,2.csv ... 5.csv
我第一次运行它,得到输出:
C:\1.csv
C:\2.csv
C:\3.csv
C:\4.csv
C:\5.csv
Run Code Online (Sandbox Code Playgroud)
我第二次得到:
C:\1.csv
csv=rar
C:\2.csv
csv=rar
C:\3.csv
csv=rar
C:\4.csv
csv=rar
C:\5.csv
Run Code Online (Sandbox Code Playgroud)
然后我得到所有后续电话:
C:\1.csv
rar=rar
C:\2.csv
rar=rar
C:\3.csv
rar=rar
C:\4.csv
rar=rar
C:\5.csv
Run Code Online (Sandbox Code Playgroud)
当我期待得到的是直接的:
C:\1.csv
C:\1.rar
C:\2.csv
C:\2.rar
C:\3.csv
C:\3.rar
C:\4.csv
C:\4.rar
C:\5.csv
C:\5.rar
Run Code Online (Sandbox Code Playgroud)
所以我删除了替换:
@echo off
for /r %%i in (*.csv) do (
echo %%i
set str=%%i
echo.%str%
)
Run Code Online (Sandbox Code Playgroud)
第一次运行:
C:\1.csv
C:\2.csv
C:\3.csv …Run Code Online (Sandbox Code Playgroud) 所以我有一个简单的ucwords函数用于Perl我已经有一段时间了,想要扩展它,这就是我想出来的,这是我应该构建我的函数来处理可选参数的方式吗?
原版的:
sub ucwords{
$str = @_[0];
$str = lc($str);
$str =~ s/\b(\w)/\u$1/g;
return $str;
}
Run Code Online (Sandbox Code Playgroud)
扩展:
sub ucwords{
if(@_[0] ne undef){#make sure some argument was passed
@overloads = (0,1,2,3);
$str = @_[0];
if(@_[1] eq undef || @_[1] eq 0){ #default is to lowercase all but first
$str = lc($str);
$str =~ s/\b(\w)/\u$1/g;
return $str;
}else{ #second parameters
if(!grep $_ eq @_[1], @overloads){ die("No overload method of ucwords() takes ".@_[1]." as second parameter."); }
if(@_[1] eq 1){ $str =~ s/\b(\w)/\u$1/g;} …Run Code Online (Sandbox Code Playgroud) 可能的重复:
特定函数与许多参数与上下文相关
所以我现在已经开发了 3-4 年,了解多种语言,了解一些令人印象深刻的(对于心胸狭隘的人来说 :P )的东西。
但我一直想知道的是;当我创建一个功能时,它应该用于特定目的,还是应该将其塑造为可重复使用,即使我不需要它?
例如:
//JS, but could be any language really
//specific
function HAL(){
alert("I'm afraid I can't let you do that, " + document.getElementById("Name").value + ".");
}
//generic
function HAL(nme){
alert("I'm afraid I can't let you do that, " + nme + ".");
}
//more generic
function HAL(msg, nme){
alert(msg + " " + nme + ".");
}
Run Code Online (Sandbox Code Playgroud)
是的,非常简单的例子,但传达了我想要表达的观点。如果我们举这个例子,我会在第一个例子之外使用它吗?可能不会,所以我很想这样做,但常识会(现在)说服我将其设为第二个,但如果我知道它不会有任何好处,我看不到这种方式的任何好处以任何其他方式使用,即它总是会使用输入的值(是的,我通常会将其放入全局变量中)。
这只是我当时认为最有意义的情况,还是我应该尽可能遵循第二种模式?
对不起,如果这是重复的,那不是'什么是MVVM',而是'这是MVVM',我读了很多,并且认为我已经基本了解它是什么,我我有自己的'单线',就我如何解释它而言,但是在我坚定地把它放在脑子里之前,我想确保它是正确的,
实质上; Model是纯数据 - 没有方法,每个Model有一个ViewModel,它拥有对Model的引用 - 它对Models数据执行所有更改,最后View将保存一个(或多个)ViewModel引用和格式并显示ViewModel提供的数据.
(不是在链接到教程,博客等之后,只是一个是,或者没有调整就好了,因为如果没有,我将不得不重新读取所有内容:))