使用preg_match查找指定的字符串?

时间:2014-04-20 17:02:42

标签: php

我有一个非常大的数据库表(55MB),用于保存某些内容的数据。每个字段都有自己的id和description字段。我想要做的是使用PHP获取描述值。好的,我能做到。但是,当我试图找到并替换某些“单词”时,就会出现问题。

描述值可以如下:

  

连接超时时显示错误消息$ s1。

现在,这个'$ s1'可以是几乎任何东西。但我想从描述字段中找到以'$'开头的每个单词,并用正确的值替换它们。在这种情况下,我想找到$ s1部分,然后将其设置为一个数组,然后用实际值替换它。一些例子$ s1可以是什么:$ s19593,$ d30,$ s2,$ a,$ r,$ z,$ o4 ......等等。基本上$ s之后的数字可以在1到70000之间变化。如果有人能指出我正确的方向并且教我一点经验,我可以把其余的值。

哦,描述值也可以如下:

  

$ o52连接失败,$ d2 $ s952。

非常烦人的表imo但没有办法。我无法编辑表格中的每个字段(51,000个字段)。

最好的问候

编辑:这是一个示例代码!

include "../config.php";

function getErrorValue($id)
{
   if (empty($id) || $id == 0)
   {
      return 0;
   }

   mysql_select_db("$database", $connect);
   $query_geterrordata = mysql_query("SELECT * FROM dbc_error WHERE id='$id'");
   while ($row_geterrordata = mysql_fetch_array($query_geterrordata))
   {
      if (!empty($row_geterrordata['field170']))
      {
         $temp_err = $row_geterrordata['field170']; // description field
         //$err = preg_match   don't know how to continue here
      }
   }

   if (!empty($err))
   {
      return $err;
   }
   else
   {
      return "Error fetching the code.";
   }
}

1 个答案:

答案 0 :(得分:0)

这将取出所有以$:

开头的变量
preg_match_all('/(\$[^ ]+)/', $temp_err, $matches);
print_r($matches[1]);