删除"("和")"下的所有文字。

时间:2014-12-05 13:47:54

标签: php

我有一张桌子

|----------|-----------------------------------------|------------------|
|    id    |        name                             |    desc          |
|----------------------------------------- ----------|------------------|
|    123   |   Empire : Kill (Kill everybody now)    |    desc 1        |
|----------------------------------------------------|------------------|
|    243   |   Witch : Show (Bloodthirst part 2)     |    desc 2        |
|----------------------------------------------------|------------------|

我正在编写以下代码以从表中提取数据

$columns_total  = mysql_num_fields($result); 

while ($row = mysql_fetch_array($result)) //retrieving each row 
    {
        for ($i = 0; $i < $columns_total; $i++) 
        {
            /*appending each column data into the row of the data 
                encapsulated within double quotes and separated by a comma */
            $output .='"'.$row["$i"].'",';
        }
    }

但是,我必须检查$row[$i]是否为name列或desc列的值。 如果是name列,则括号内的文字将被删除,否则不会删除。 我怎样才能做到这一点?

5 个答案:

答案 0 :(得分:1)

$data = preg_replace('/\(.*\)/','',$data);

摆脱空间

$data = trim($data);

答案 1 :(得分:1)

通过使用方法mysql_num_fields,您将获得编号数组中的行。这意味着当您访问$ row数组时指定的索引将确定您要访问的列。要实现这一目标,您有两个解决方案:

  • 您可以生成静态对应column_name - &gt;根据您正在使用的查询索引。如果$ result变量包含select * from table之类的内容,则索引将为数字1。

  • 您可以使用mysql_list_fields http://php.net/manual/en/function.mysql-list-fields.php

  • 方法获取字段列表

所以一旦你的男人有哪个索引,你就必须做一个简单的条件,比如if ($row == 1) {trim();},你已经完成了!

答案 2 :(得分:1)

使用mysql_fetch_assoc而不是mysql_fetch_array。

答案 3 :(得分:0)

你可以通过以下方式爆炸:

$format_array = explode(":",$data);
$format_data = $format_array[0];
echo $format_data.':';

答案 4 :(得分:-1)

您可以在&#34;(&#34;字符后)中删除代码,然后使用&#34; trim&#34;函数删除最后的空格:

$input = "Empire : (Kill everybody now)";

$input2 = explode("(",$input);

$input3 = trim($input2[0]);

现在$input3变量正在保存您要查找的结果。