问题列表 - 第49340页

preg_replace 属性值

所以我有一个有效的 preg_match 模式来查找字符串中 HTML 属性的值,我需要用 preg_replace 做同样的事情——不是找到并返回值,而是用一个新的值替换它。

但是如果我只使用 preg_match 模式它不起作用......我被卡住了。

这是代码:

    $string = '<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" 
width="437" height="288" id="viddler">
<param name="movie" value="http://www.viddler.com/player/1234567890/" />
<param name="allowScriptAccess" value="always" />
<param name="allowFullScreen" value="true" />
<param name="flashvars" value="fake=1"/>
<embed src="http://www.viddler.com/player/1234567890/" 
width="437" height="288" type="application/x-shockwave-flash" 
allowScriptAccess="always" allowFullScreen="true" flashvars="fake=1" 
name="viddler" ></embed></object>';

preg_match("|<*[^>]*width=\"([^>]+)\"[^>]*>|Ui", $string, $results);

echo 'Width: '.$results[1];
Run Code Online (Sandbox Code Playgroud)

这有效并将返回437。但是,如果我在 preg_replace() 函数中使用相同的模式,它将删除整个<object>标签。我需要用其他任何东西替换那个 437,比如 200。当我们在做的时候,我还需要替换高度值。最后,这应该适用于任何嵌入代码或 iframe,因此它应该分别查找width="height="......就像上面的 preg_match 示例一样。

任何帮助深表感谢。

编辑:蒂姆的解决方案如下

我让蒂姆的模式进行了一个小的修改:

$interm = preg_replace('|(<*[^>]*width=)"[^>]+"([^>]*>)|Ui', '\1"200"\2', $string);
$result = preg_replace('|(<*[^>]*height=)"[^>]+"([^>]*>)|Ui', '\1"300"\2', $interm);
Run Code Online (Sandbox Code Playgroud)

如果没有这个更改,第一个函数会替换宽度,但它会删除标签中之后的所有属性。 …

php regex preg-replace

0
推荐指数
1
解决办法
4389
查看次数

使用eclipse模板创建测试用例

我经常发现自己为getter\setters,c'tors和Object方法(hashCode,equals和toString)创建了相同的单元测试方法.在Eclipse IDE的帮助下,我想要实现的是这个过程的自动化.考虑这个例子:

public Class Person {
  private String id;
  private String name;

  public Person(String id, String name){
    this.id = id;
    this.name = name;
  }

  public String getId() { return id; }
  public void setId(String id) {
    this.id = id;
  }

  public String getName() { return name; }
  public void setName(String name) {
    this.name = name;
  }

  @override
  public int hashCode(){ ... }
  public boolean equals(Person other){ ... }
  public String toString(){ ... }

  /* this class may implement other logic …
Run Code Online (Sandbox Code Playgroud)

java eclipse junit

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

C中有多少个expr_no_commas'='expr_no_commas表达式?

expr_no_commas '=' expr_no_commas
Run Code Online (Sandbox Code Playgroud)

它是在C的规则中找到的,但我能想到的唯一可能的形式是:

identifier = expr_no_commas
Run Code Online (Sandbox Code Playgroud)

也就是说,左边是单个变量,还是其他任何变量?

c syntax

0
推荐指数
1
解决办法
70
查看次数

什么被认为是C#中的VB.NET模块?

VB.NET有类和模块,所以我的第一个问题是有什么区别?另外,我注意到C#没有模块,只是类,是否有代替模块的东西或是否为C#删除了它们?

c# vb.net

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

define方法返回扩展它的类的类型

我希望能够做到这样的事情:

trait A {
  def f(): ???_THE_EXTENDING CLASS
}
class C extends A {
  def f() = self
}
class D extends A {
  def f() = new D
}
class Z extends D {
  def f() = new Z
}
Run Code Online (Sandbox Code Playgroud)

鉴于上述代码,以下内容无法编译

class Bad1 extends A {
  def f() = "unrelated string"
}
class Bad2 extends A {
  def f() = new C // this means that you can't just define a type parameter on
                  // A like A[T <: …
Run Code Online (Sandbox Code Playgroud)

types scala

22
推荐指数
3
解决办法
8170
查看次数

为什么UIAlertView没有显示?

由于某种原因,屏幕变暗并冻结,警报未显示...有人可以帮忙吗?

提前致谢!

} else {
    UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Hello!" 
                                                message:@"Hello!" delegate:self 
                                      cancelButtonTitle:@"Done" 
                                      otherButtonTitles:nil];
    [alert show];
    [alert release];
}
Run Code Online (Sandbox Code Playgroud)

iphone objective-c ios-simulator

4
推荐指数
1
解决办法
3843
查看次数

ActionScript 3.0如何定义自定义运算符?

如何为自定义类定义自定义运算符(例如等于运算符)?

operators actionscript-3

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

哪个代码更具可读性?

这不是一个难题.我只是想知道你认为这两个C++代码片段中的哪一个更好(可读性与长度对比锅炉):

选项1

Entity* square = Entity::Builder().positionX(0.0).positionY(0.0).
    controller(ctrl).representation(rep).build();
Run Code Online (Sandbox Code Playgroud)

选项#2

Entity::Builder bld;
bld.positionX(0.0).positionY(0.0).controller(ctrl).representation(rep);
Entity* square = bld.build();
Run Code Online (Sandbox Code Playgroud)

我个人更喜欢第一个选项,但这可能是因为我是代码的作者并且已经知道代码的作用(对于不了解代码的人来说可能会让人感到困惑).我更喜欢它,因为它显示了Entity对象而不是对象的焦点Entity::Builder(因为它更短).

c++ readability builder-pattern

0
推荐指数
1
解决办法
368
查看次数

在函数式语言中实际使用fold/reduce

Fold(又名reduce)被认为是一个非常重要的高阶函数.Map可以表示fold(见这里).但这对我来说听起来比实际更具有学术性.典型的用途可能是获得总和,产品或数字的最大值,但这些函数通常接受任意数量的参数.那么为什么写的(fold + 0 '(2 3 5))时候(+ 2 3 5)工作正常.我的问题是,在什么情况下使用最简单或最自然fold

lisp reduce functional-programming fold

9
推荐指数
4
解决办法
5058
查看次数

是否有一种简单的方法来记录Visual Studio 2010花费的时间?

我们希望自动记录我们每天花在构建项目上的时间,同时还要投入.可以通过按f5或使用TestDriven.Net运行我们的n单元测试来启动构建.我们需要整个建筑时间,而不仅仅是一个或两个项目.我们想这样做来比较慢速PC与快速PC的生产率的影响.有任何想法吗?

更新:我已经调查了MSBuild记录器.这似乎可以工作,但我无法弄清楚当我们从VS进行f5构建时如何向MSBuild发送参数.

msbuild visual-studio-2010

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