1

なぜこのコードが機能しないのですか? 名前の変更、場所の切り替えなどを試みていましたが、str_replaceのバグのようです。誰かが私に教えてくれたらいいのですが、何が問題なのですか...これは私のindex.phpです

<?php
header('Content-Type:text/html;charset=utf-8');
session_start();

require_once ('inc/core.php');
$core = new core($_GET['viev']);

これはcore.phpです

<?php
class core{

    var $template;
    var $view;

    public function __construct($view) {
        $this->template = $this->loadTemplate();
        $this->view = $view;
        $this->loadView();
        echo $this->template;
    }

    private function loadTemplate(){
        if(file_exists('template/template.html')){
            $template = file_get_contents('template/template.html');
        }
        else{
            $template = 'Coś poszło nie tak z szablonem ;/';
        }
        return $template;
    }

    private function loadView(){
        global $core;            
        $core = $this;

        if($this->view == ""){
            $this->view = "home";
        }
        if(file_exists('inc/view/'.$this->view.'.php')){
            require_once ('inc/view/'.$this->view.'.php');
        }
        else{
            str_replace('{{page.content}}', 'Wybacz, wygląda na to, że podałeś zły adres ;(', $this->template);
        }
    }

    public function ViewReplace($replace){
        if(strpos($this->template, '{{page.content}}') !== FALSE){
            str_replace('{{page.content}}', $replace, $this->template);
        }
    }
}

これはhome.phpの例です

<?php
$core->ViewReplace(homeView());

function homeView(){
    global $core;
    return '<article>
  <h2>Witaj na stronie serwera Snowcraft!</h2>
  <a href="https://www.facebook.com/snowcraftpl" class="button">Odwiedz nasz "fanpejdz" na facebook-u</a>
  <p>Serwer Snowcraft.pl to nowy pomysł na serwer Minecraft. Wywodzi się z połączenie kilku pomysłów i zrealizowania ich w gronie wieloosobowej administracji.</p>
  <h4>Cos wiecej</h4>
  <p>Nasz serwer jest fuzją serwerów typu "minez" i "paintball". Grać na nim może jednocześnie wiele graczy, a cała rozgrywka została zrobiona tak, by sprawiać wam jak największą przyjemność.<br>
     Oto, byście mogli na nim grać bez przeszkód dba grupa w której skład wchodzą:<br>
     Załorzyciel-Kiwiszon;<br>
     HeadAdmin-TheKrzywda;<br>
     Admini-;<br>
     Moderatorzy-;</p>
</article>';
}

サイトにバグはありませんが、この {{page.content}} が機能せず、理由がわかりません ;(

また、下手な英語で申し訳ありません;/

4

2 に答える 2

4

1つには、置換された文字列str_replace() が返されますが、元の文字列は変更されないため、新しい置換値が作成され、戻り値を何にも割り当てていないため、破棄されます。テンプレートの値を置き換えた値に設定する必要があります。

$this->template = str_replace('{{page.content}}', $replace, $this->template);
于 2013-07-31T20:19:25.010 に答える
0

聞くのは str_replace の例です。これがあなたに大いに役立つことを願っています

<?php
// Provides: <body text='black'>
$bodytag = str_replace("%body%", "black", "<body text='%body%'>");

// Provides: Hll Wrld f PHP
$vowels = array("a", "e", "i", "o", "u", "A", "E", "I", "O", "U");
$onlyconsonants = str_replace($vowels, "", "Hello World of PHP");

// Provides: You should eat pizza, beer, and ice cream every day
$phrase  = "You should eat fruits, vegetables, and fiber every day.";
$healthy = array("fruits", "vegetables", "fiber");
$yummy   = array("pizza", "beer", "ice cream");

$newphrase = str_replace($healthy, $yummy, $phrase);

// Provides: 2
$str = str_replace("ll", "", "good golly miss molly!", $count);
echo $count;
?>
于 2013-10-10T11:08:17.507 に答える