小编Psy*_*nic的帖子

测试字符串是否在PHP中进行URL编码

如何测试字符串是否为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";

php testing url-encoding

21
推荐指数
6
解决办法
11万
查看次数

将isEnabled = true设置为父控件后,超链接保持不活动状态

我有一个TabItem连接一个列表框,它有一个可观察的我的feed类集合作为它的项目源.当我将提要刷新/加载到集合中时,我想要禁用主窗口,以便用户在此进程运行时无法单击其他内容.所以我tbCtrl.isEnabled=false;在表单上设置了我的选项卡控件.然后将事件处理程序分配给自定义完成事件,该事件在加载所有订阅源后触发.

这一切都运行正常,但是当前显示在选项卡控件上的结果的超链接永远不会重新启用(由于列表框大小,下面几个也不在视图之外).所有其他结果进一步下降都很好,其他选项卡上的结果也是如此.

我已经尝试InvalidateVisual在所有内容完成后调用选项卡控件,看看是否有所作为,但这似乎不会导致任何更改.

我可以理解它是否所有超链接都在做,或者只是当前显示的那些,但我不明白为什么那些没有滚动的也没有工作.

问题图片http://i42.tinypic.com/5wm0qx.jpg

wpf hyperlink isenabled

12
推荐指数
2
解决办法
3927
查看次数

我的代码是否展示了良好的WPF实践?

我正在开始一个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)

c# wpf

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

EF TPH继承查询

尝试为我正在制作的系统实现一个非常简单的TPH设置,1个基础,2个继承类.

但是继承的类都属于同一个实体集,所以在我的ObjectContext中使用循环,我只能访问基本的抽象类.我不太确定我是如何获得具体类的元素的?(我也将它转换为使用POCO).

替代文字

然后在我的应用程序中使用实体:

using (SolEntities sec = new SolEntities()) {
    Planets = sec.CelestialBodies;
}
Run Code Online (Sandbox Code Playgroud)

有一个CelestialBodies实体设置sec,但没有我期望的行星/卫星.

不太确定要访问它们需要做什么.

谢谢

c# entity-framework c#-4.0 tph

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

带有超链接的WPF Resources.resx字符串?

我想要一个字符串资源,其中包含一个超链接.我想这是不可能的,除非我有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文件)

c# wpf xaml

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

使用带有函数的C#Count()

我试图通过使用带有谓词的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更改为整数以查看是否可行,但这也不起作用.

c# linq predicate max

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

Cmd:不评估循环内的变量

试图制作.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)

cmd batch-file

6
推荐指数
1
解决办法
7764
查看次数

这是构建Perl子程序的方法吗?

所以我有一个简单的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)

parameters perl function user-defined-functions

5
推荐指数
5
解决办法
410
查看次数

功能应该是特定的还是通用的

可能的重复:
特定函数与许多参数与上下文相关

所以我现在已经开发了 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)

是的,非常简单的例子,但传达了我想要表达的观点。如果我们举这个例子,我会在第一个例子之外使用它吗?可能不会,所以我很想这样做,但常识会(现在)说服我将其设为第二个,但如果我知道它不会有任何好处,我看不到这种方式的任何好处以任何其他方式使用,即它总是会使用输入的值(是的,我通常会将其放入全局变量中)。

这只是我当时认为最有意义的情况,还是我应该尽可能遵循第二种模式?

function

5
推荐指数
1
解决办法
681
查看次数

还有另一个MVVM问题......我的理解是否正确?

对不起,如果这是重复的,那不是'什么是MVVM',而是'这是MVVM',我读了很多,并且认为我已经基本了解它是什么,我我有自己的'单线',就我如何解释它而言,但是在我坚定地把它放在脑子里之前,我想确保它是正确的,

实质上; Model是纯数据 - 没有方法,每个Model有一个ViewModel,它拥有对Model的引用 - 它对Models数据执行所有更改,最后View将保存一个(或多个)ViewModel引用和格式并显示ViewModel提供的数据.

(不是在链接到教程,博客等之后,只是一个是,或者没有调整就好了,因为如果没有,我将不得不重新读取所有内容:))

mvvm

5
推荐指数
1
解决办法
229
查看次数