我记得曾经回顾过别人的PHP代码,并且他有一个函数或类方法,它将所有GET和POST变量都转换成一个可以传递的单个普通旧对象.如果在GET和POST中都出现相同的名称 - 值对,则POST将获胜.
是否有一个编码良好的PHP附加组件可以完成这一切?
背景:这里的目标是使用select-string在powershell中执行一些基本命令.出于某种原因,某些事情没有按预期发挥作用.
假设如下:
$vfilter = 'c:/foo/bar/files/*.htm';
Select-String -path $vfilter -pattern ".*DOCTY.*" |
sort LineNumber |
where-object { $_.Filename -match "02" } |
format-list |
out-file c:/00junk.txt;
Run Code Online (Sandbox Code Playgroud)
......这是输出......
IgnoreCase : True
LineNumber : 1
Line : <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "ht
tp://www.w3.org/TR/html4/loose.dtd">
Filename : 02junk.htm
Path : C:\ ... \02junk.htm
Pattern : .*DOCTY.*
Context :
Matches : {<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "h
ttp://www.w3.org/TR/html4/loose.dtd">}
Run Code Online (Sandbox Code Playgroud)
问题:
1)如何阻止powershell包装"Line"和"Matches"属性的文本.由于这是发送到文本文件,我不关心控制台宽度,因此我不希望发生任何文本环绕.
2)假设我想用多行字符串做我自己的自定义输出.在Ruby中(例如)我可以这样做:
custom_string = '';
items.each{|myitem|
custom_string += %Q[
### begin …
Run Code Online (Sandbox Code Playgroud) 我有一个类似于此的元组列表(这里简化了,这些元组中有超过14,000个,其路径比Obj.part更复杂)
[ (Obj1.part1, {<SPEC>}), (Obj1.partN, {<SPEC>}), (ObjK.partN, {<SPEC>}) ]
Obj从1 - 1000开始,部分从0到2000.这些"键"都有一个与它们相关的规范字典,它们用作检查另一个二进制文件的查找参考.规范dict包含诸如位偏移,位大小和路径ObjK.partN指向的数据的C类型之类的信息.
例如:Obj4.part500可能有这个规范,{'size':32,'offset':128,'type':'int'}这会让我知道要访问二进制文件中的Obj4.part500我必须解包来自偏移128的32位.
所以,现在我想获取我的字符串列表并创建一个嵌套字典,在简化的情况下将看起来像这样
data = { 'Obj1' : {'part1':{spec}, 'partN':{spec} },
'ObjK' : {'part1':{spec}, 'partN':{spec} }
}
Run Code Online (Sandbox Code Playgroud)
要做到这一点,我目前正在做两件事,1.我使用dotdict类,能够使用点符号进行字典获取/设置.那个班看起来像这样:
class dotdict(dict):
def __getattr__(self, attr):
return self.get(attr, None)
__setattr__ = dict.__setitem__
__delattr__ = dict.__delitem__
Run Code Online (Sandbox Code Playgroud)
创建嵌套"dotdict"的方法如下所示:
def addPath(self, spec, parts, base):
if len(parts) > 1:
item = base.setdefault(parts[0], dotdict())
self.addPath(spec, parts[1:], item)
else:
item = base.setdefault(parts[0], spec)
return base
Run Code Online (Sandbox Code Playgroud)
然后我做了类似的事情:
for path, spec in paths:
self.lookup = dotdict()
self.addPath(spec, path.split("."), self.lookup)
Run Code Online (Sandbox Code Playgroud)
所以,最后 …
我正在尝试打印字典的字典项目值,但我的项目也是另一个用户输入变量。如何使用 f 字符串打印选定的值?
option = ''
languages = {'1':'Learn Python', '2':'Learn Java', '3':'Learn C++', '4':'Learn PHP', '5':'Quit'}
option = input('Please choose an option between 1 and 5')
# Following part is not working!!!
print(f'Youve selected {languages["{option}"]}')
Run Code Online (Sandbox Code Playgroud) python ×2
add-on ×1
dictionary ×1
f-string ×1
grep ×1
http ×1
nested ×1
parameters ×1
path ×1
php ×1
powershell ×1
select ×1
string ×1