原来的字符串是:
$str='<table><tr><td>Transmission:<input type="text" value=T1/>----<select><option value="男">男</option><option value="女" selected="selected">女</option></select></td></tr></table>';要得到的字符串是:
$str1='<table><tr><td>Transmission:T1----女</td></tr></table>';大家看看根据$str能不能得到$str1字符串?就是将input中的value值取出来,将select中选中的value取出来,替换掉原来的表单。
$str='<table><tr><td>Transmission:<input type="text" value=T1/>----<select><option value="男">男</option><option value="女" selected="selected">女</option></select></td></tr></table>';要得到的字符串是:
$str1='<table><tr><td>Transmission:T1----女</td></tr></table>';大家看看根据$str能不能得到$str1字符串?就是将input中的value值取出来,将select中选中的value取出来,替换掉原来的表单。
echo preg_replace("/.*value=([\w]+).*selected\">([^><\/]+)(.*)/ims"," <table> <tr> <td>Transmission:$1----$2</td> </tr> </table>", $str);
因为$str里面的字符串是从数据库中获取的,里面的行数和table后面的参数不确定,所以输出的有错误。
//print_r($ar);$k = 0;
foreach($ar as $i=>$r) {
if(strstr($r, 'option')) {
$k++;
if(strstr($r, 'selected')) $k++;
unset($ar[$i]);
}
if($k == 1 || strstr($r, 'select')) unset($ar[$i]);
if(strstr($r, '/option')) $k = 0;
}//print_r($ar);echo join('', $ar); <table> <tr> <td>Transmission: <input type="text" value=T1/>---- 女 </td> </tr> </table>
echo preg_replace(
array(
'/<input[^>]*value\s*=\s*(\"|\')?(\w+)(\"|\')?[^>]*>/i'
,'/<select[^>]*>\s*<.*selected[^>]*>(.[^<]*)<.*\/select>/i'
)
,array('$2','$1')
,$str
);
$str='<table> <tr> <td>Transmission: <input type="text" value=T1/>---- <select> <option value="男">男 </option> <option value="女" selected="select">女 </option> <option value="半男半女">半男半女 </option></select> </td> </tr><tr> <td>Transmission: <input type="text" value=T1/>---- <select> <option value="男">男 </option> <option value="女" selected="select">女 </option> </select> </td> </tr> </table>';
echo preg_replace(
array(
'/<input[^>]*value\s*=\s*(\"|\')?(\w+)(\"|\')?[^>]*>/i'
,'/<select.*selected([^>]*?)>([^<]*)<.*\/select>/iU'
)
,array('$2','$2')
,$str
);
谢谢foolbirdflyfirst,实现的我要的效果,还要谢谢jakey9826和xuzuning
我用这个功能在搞一个效果:
产品有许多不同类型,每个类型的产品有相同的参数,不同类型的产品,参数是不同的,参数数量也不同。如果每个参数都要用一个字段,太多了,反正对这些参数不进行计算,所以我就直接将这些放到产品的一个字段中去了。我先将这些参数由后台放到产品类型中去,添加产品的时候,根据选择的产品类型,调用这些参数,让用户去填写,这些参数有文本框和下拉框。所以要在显示的时候去掉这些东西。