2010-03-10 49 views
0

我将一组字符串插入到我的表中。这是一个样本,PHP搜索并插入特殊字符串

| = | 4 | = | 3 | = | 5 | = | 3 | = |是| = |没有评论。

有时我的字符串可能会像

| = | 4 | = | 3 | = | 5 | = | 3 | = |是| = |

对于这种情况,我想追加一个字符串(对不起,没有数据)到| = |的末尾。

而且我的字符串可能会像

 |=|4|=|3|=|5|=|3|=|Yes|=|

末那个符号是空的空间。在这种情况下,我也想在| = |结尾附加这个字符串(对不起,没有数据)。

你能告诉我如何做到这一点?

+0

你是什么意思?数据库表? – 2010-03-10 12:17:33

+0

真的很难得到你所说的。也许你应该尝试更具描述性。 – Gumbo 2010-03-10 13:16:25

回答

2

使用susbstr提取字符串的结尾

if (substr($string, -3) == '|=|') 
    $string .= '(Sorry no data)'; 

或用一个空格字符

if (substr($string, -1) == ' ') 
     $string .= '(Sorry no data)'; 

你也可以实现同样的事情用正则表达式

1

问题是,为什么你需要这样做?对我来说,这听起来像你的数据库的结构是错误的,你试图将ñ变量保存到1个字段(如果我是对的,看看Database normalization,如果我错了我误解了你的题...)。

1

试试这个:

$splitted = explode("|=|", $your_string); 
if (count($splitted) < 6) 
{ 
    $your_string .= "Sorry no data"; 
} 

如果你想添加“对不起无数据”另外,如果最后一节是“没有评论”,改变好像在:

if (count($splitted) < 6) || $splitted[5] == "No comments") 
0
$string = "|=|4|=|3|=|5|=|3|=|Yes|=|"; 
$var = explode("|=|",$string); 
$pick_last_array = count($var); 
$pick_last_array = $pick_last_array-1; 
if(trim($var[$pick_last_array])==""){ 
    $my_last_val = "Am coming"; 
}else{ 
    $my_last_val = $var[$pick_last_array]; 
} 

echo $my_last_val; 

这个片段固定我的问题。