我正在尝试在字符串上使用preg_replace来删除空属性,但是整个字符串都被清除了。
我正在替换的字符串如下所示:
<input type="text" name="username" id="username" class="required" size="20" maxlength="40" value="" />
以下是我尝试使用的代码:
$defaults = array(
'cols' => '60',
'class' => '',
'currentValue' => '',
'default' => '',
'group' => '',
'id' => '',
'maxlength' => '',
'name' => '',
'options' => array(),
'rows' => '00',
'size' => '60',
'text' => '',
'type' => 'text',
'value' => ''
);
$inputHTML = '<input type="text" name="username" id="username" class="required" size="20" maxlength="40" value="" />';
$inputHTML = preg_replace( '/(' . implode( '|', array_keys( $defaults ) ) , ')=""/g', '', $inputHTML );
正在使用该数组,因为我需要代码的其他部分。
为什么字符串会变回空白的任何想法?
答案 0 :(得分:1)
您的,
来电中有.
而不是preg_replace
。 另外,你的正则表达式中有一个(哦,这正是你想要做的)。""
,所以它只会捕获空属性
更正后的行:
$inputHTML = preg_replace( '/(' . implode( '|', array_keys( $defaults ) ) . ')=""/', '', $inputHTML );