从文本文件调用值并添加到php var

时间:2016-10-05 01:57:06

标签: php html text var

在下面的代码中,我试图找出如何确定文本文件中一行的值。我一直收到下面的错误。我尝试了许多组合来解决但没有运气。我是php的新手,所以我感谢任何帮助。

一旦我解决了错误,我正在寻找它从文本文件“defaultcolor”值中获取颜色代码并将其更改为等于文本框值的新颜色。

我正在尝试使用var $ currentcolor来报告文本文件中的值。该值为#123456

这是错误

Warning: preg_replace(): No ending delimiter '#' found

这是我的文本文件中的行。

currentcolor = #123456 
defaultcolor = #379BB9

这是我的php

<?php
if(isset($_REQUEST['setcolor'])){
$arr = glob("css\*.css"); 
$colorcode = $_POST['defaultcolor'];    
foreach($arr as $key=>$val){
$str = file_get_contents($val);
$lines_array = file("example.txt");
$search_string = "currentcolor";

foreach($lines_array as $line) {
    if(strpos($line, $search_string) !== false) {
        list(, $new_str) = explode("=", $line);
    }
}
$currentcolor = $new_str;
$str = preg_replace($currentcolor, $colorcode, $str); 
file_put_contents($val, $str);
}
}
echo '<label id="steps">Here you can set the theme color.</label>';
echo '<br>';
echo '<Form name="default1" method="POST" action="example.php">';
echo '<label for="defaultcolor">Theme Color: </label><input style="color:#000000" type="text" id="defaultcolor" name="defaultcolor" value="#379BB9">';
echo '<br>';
echo '<input type="submit" name="setcolor" value="Set Theme Color">';
echo '</form>';
echo '<br>';
?>

3 个答案:

答案 0 :(得分:0)

尝试做

die($currentcolor)

在运行preg_replace之前。它需要包含特殊符号(例如#

马特

答案 1 :(得分:0)

使用str_replacehttp://php.net/str_replace)代替preg_replacehttp://php.net/preg_replace)。

$str = str_replace($currentcolor, $colorcode, $str); 

preg_replace将尝试使用正则表达式来执行替换,但看起来您只是进行简单的字符串替换。

答案 2 :(得分:0)

preg_replace是一个正则表达式函数,因此需要分隔符。似乎PHP认为你试图使用'#'作为分隔符。因此,如果你得到'#123456',它会认为你想要捕获'123456'并试图警告你右边'#'缺失。所以像克莱顿说的那样,你可能想考虑使用字符串替换。