我有一个值为的变量: 1a2b3c 。 现在我想在另一个文件(“test.css”)中找到“1”并将其替换为“a”。然后我想用“b”替换“2”而用“c”替换“3”我该怎么做?可能吗?谢谢您的帮助。对不起我之前没有说过,但我不想在同一个文件中替换它。我想创建一个包含这些替换值的新文件。
代码:
$arr1 = str_split($name);
$arr2 = str_split($_GET[$name]);
然后我有两个阵列:
1:
[0]=1
[0]=2
[0]=3
2:
[0]=a
[0]=b
[0]=c
PS:每次都没有3个值。有时它看起来像: 1a2b3c4d5e ... 我想动态地这样做
PPS:抱歉我的英语不好......所以我的所有代码都是:
的index.php
<?php
include 'parser.php';
print "<form method=\"get\" action=\"test.php\">";
$parser = new ConfigParser("test.theme");
$parser->parse();
print "<input type=\"submit\"></input>";
print "</form>";
?>
parser.php
<?php
class ConfigParser
{
private $name = "";
function __construct($filename)
{
$this->name = $filename;
}
function parse() {
foreach(file($this->name) as $line) {
if(strlen($line) < 3){
echo ("YOU ARE TO DAMM STUPID TO MAKE A CONFIG FILE, IDIOT!");
return;
}
list($name, $type, $label) = explode(":", $line);
print "<p>". $label. "</p><input type=\"" . $type . "\" name=\"". $name. "\"> </input>";
}
print "<input type=\"text\" name=\"theme\" value=\"" .$this->name ."\" readonly></input>";
}
}
?>
reader.php
<?php
class Writer
{
private $file = "";
function __construct($theme)
{
$this->file = $theme;
list($list) = explode('.', $this->file, 2);
$style = $list.".css";
foreach(file($this->file) as $line) {
if(strlen($line) < 3){
echo ("YOU ARE TO DAMM STUPID TO MAKE A CONFIG FILE, IDIOT!");
return;
}
list($name, $type, $label) = explode(":", $line);
$style_raw = file_get_contents("test.css");
//$mix = $name.$_GET[$name];
//print $mix;
$arr1 = str_split($name);
$arr2 = str_split($_GET[$name]);
// $file = fopen("created/style.css", "w");
// fwrite($file, $custom_style);
// fclose($file);
}
}
}
?>
test.theme
user:text:Username
color:color:Color
test:password:Password
test.css
user
color
test
答案 0 :(得分:2)
这应该适合你:
使用str_split()
创建一个每个包含2个字符的数组,然后再将其拆分。所以从你的字符串:
$str = "1a2b3c";
您将创建一个这样的数组:
Array
(
[0] => 1a
[1] => 2b
[2] => 3c
)
然后到此:
Array
(
[0] => Array
(
[0] => 1
[1] => a
)
[1] => Array
(
[0] => 2
[1] => b
)
[2] => Array
(
[0] => 3
[1] => c
)
)
在此之后,您可以使用array_column()
将第一个字符用作键,将第二个字符用作值:
Array
(
[1] => a
[2] => b
[3] => c
//^ ^ replace
//| search
)
然后你可以在strtr()
中使用这个数组作为替换数组,其中每个键都被相应的值替换。
代码:
<?php
$str = "1a2b3c";
$replacement = array_map("str_split", str_split($str, 2));
$replacement = array_column($replacement, 1, 0);
file_put_contents("test.css", strtr(file_get_contents("test.css"), $replacement));
?>