0

我正在构建 Web 应用程序的后端,可以在其中更改页面的设计。一旦用户按照他们喜欢的方式设置了设计,他们应该能够保存它并且新设计将被写入特定文件。

出于这个原因,我需要替换某个字符串之间{和之后的所有字符,这将是类的名称。}

所以一个非常简单的概念,说下面的类是在一个单独的文件中,我作为一个视图加载,style.php。我需要从:

<style>
.bonus {
    bottom: 6px;
    left: 247px;
}
</style>

<style>
.bonus {
    bottom: 20px;
    left: 450px;
}
</style>

有人可以推荐我最好的方法吗

a) 在文件中查找字符串,

b)找到后,在第一个字符串之后替换两个字符串之间的所有内容。

谢谢你。

4

2 回答 2

1

我非常不喜欢用户对实际文件进行更改的概念。用户可以通过许多更安全的方法创建和维护自定义模板,而无需实际更改 PHP 文件。

将用户的 CSS 存储在数据库的字段中怎么样?然后,您只需要执行以下操作:

<?php

     $css = getCSSByUserId($userId); //function runs query on DB to get user-specific CSS

/* $css = ".bonus {
    bottom: 20px;
    left: 450px;
}" */

?>
<style>
     <?php echo $css; ?>
</style>
于 2013-07-23T18:24:19.983 回答
0

如果您真的想编辑实际文件,您可以这样做:

<?

$file = "/path/to/file.php";

//The user's replacement CSS
 $replace = '.bonus {
    bottom: 20px;
    left: 450px;
}';

$str = file_get_contents($file);

$str = preg_replace('/\.bonus \{.*\}/U', $replace, $str);

$res = fopen($file, 'w');
fwrite($res, $str);
fclose($res);

?>

我在这里检查了正则表达式http://www.quanetic.com/Regex并且它有效。

于 2013-07-23T18:42:54.467 回答