我在数据库表中有一个字段,其中包含以下行
show_email_icon=
show_hits=
feed_summary=
page_title=
show_page_title=1
pageclass_sfx=
menu_image=hd_events.png
secure=0
所有内容都以文本形式存储在mysql表的一个字段中。现在我想获得menu_image。我怎么能得到它?
答案 0 :(得分:1)
如果您运行的是PHP5.3或更高版本,则可以使用parse_ini_string()
,这将为您提供一个很好的关联数组:
$str = fetch_from_db();
$array = parse_ini_string($str);
echo $array['menu_image']; // hd_events.png
答案 1 :(得分:0)
尝试
if (preg_match('/^menu_image\\s*=\\s*(.*)$/m', $t, $matches)) {
//the content is $matches[1];
}
你应该考虑让一个表有两列“key”和“value”,然后是
SELECT value from table_name WHERE key = 'menu_image';
答案 2 :(得分:0)
如果您只需要一个值,我会使用Artefacto's solution。如果你需要任何其他人,最好是取消joomla-ify并将该字符串转换为地图:
preg_match_all("/(.*)=(.*)/", $dbString, $matches);
$settings = array();
for($i = 0; $i < count($matches[1]); $i++)
$settings[$matches[1][$i]] = $matches[2][$i];
// Use $settings['menu_image'] or any of the others