PHP替换其他文件中的单词

时间:2015-10-07 21:21:39

标签: php replace

我有一个值为的变量: 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

1 个答案:

答案 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));

?>