php – 我的str_replace代码不起作用
作者:互联网
为什么这段代码不起作用?我试图重命名,切换位置和其他,但它似乎是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}}无效,我不知道为什么;(
而且,抱歉英语不好; /
解决方法:
首先,str_replace()返回被替换的字符串,它不会修改原始字符串,因此在写入时会创建新的替换值,然后抛弃,因为您没有将返回值分配给任何内容.您需要将模板值设置为替换值:
$this->template = str_replace('{{page.content}}', $replace, $this->template);
标签:str-replace,php,class,construct 来源: https://codeday.me/bug/20190929/1833169.html