我在PHP文件中有这样的值:
{First=itema,Fourth=10000.0,Second=10,Third=1000},{First=itemb,Fourth=12000.0,Second=12,Third=1000}
如何分割这些值,直到我得到这样的值:
{itema,10000,10,100} AND {itemb,12000,12,1000}
我在Android应用程序中从方法POST获得了这个值,我得到了这样的PHP文件:
<?php
$str = str_replace(array('[',']'), '', $_POST['value1']);
$str = preg_replace('/\s+/', '', $str);
echo $str;
?>
而且,这是我在Android应用程序中的代码:
try {
httpclient = new DefaultHttpClient();
httppost = new HttpPost("http://192.168.107.87/final-sis/order.php");
nameValuePairs = new ArrayList<NameValuePair>(2);
nameValuePairs.add(new BasicNameValuePair("value1", list.toString()));
httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
response=httpclient.execute(httppost);
Log.d("Value Price: ", httppost.toString());
HttpEntity entity=response.getEntity();
feedback = EntityUtils.toString(entity).trim();
Log.d("FeedBack", feedback);
}catch (Exception e){
}
这是完全关于我的代码的链接:
How can I store my ArrayList values to MySQL databases??
我以前一直在问,但我找不到最好的方法。
谢谢。
答案 0 :(得分:0)
这将产生所需的字符串。我首先使用一些正则表达式来分割初始字符串,然后抓取每个值。
$s = '{First=itema,Fourth=10000.0,Second=10,Third=1000},{First=itemb,Fourth=12000.0,Second=12,Third=1000}';
preg_match_all('/\{[^}]*}/', $s, $m);
此时$ m包含:
array(1) {
[0]=>
array(2) {
[0]=>
string(49) "{First=itema,Fourth=10000.0,Second=10,Third=1000}"
[1]=>
string(49) "{First=itemb,Fourth=12000.0,Second=12,Third=1000}"
}
}
然后我们循环每个部分。下一个正则表达式:
'/\=([^\,]+)/'
这样说,抓住等号和逗号之间的所有文本并将其放入捕获组。
然后我们就会破坏比赛。
$parts = array();
foreach($m[0] as $match) {
$t = trim($match, '{}');
preg_match_all('/\=([^\,]+)/', $t, $m2);
$parts[] = '{'.implode($m2[1], ',').'}';
}
$finalString = implode($parts, ' AND ');
var_dump($finalString);