2013-07-31 7 views
0

pourquoi ce code ne fonctionne pas? J'essayais de renommer, changer de position et autre, mais il semble que ce soit str_replace bug. Ce serait bien, si quelqu'un me dit, ce qui ne va pas ... Ceci est mon index.phpMon code avec str_replace ne fonctionne pas

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

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

c'est 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); 
     } 
    } 
} 

C'est par exemple pour 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>'; 
} 

Je n'ai pas de bugs sur le site, mais {{page.content}} ne fonctionne pas et je ne sais pas pourquoi, (

Et aussi, désolé pour le mauvais anglais/

+0

Bienvenue sur SO! Il serait très utile si vous pouviez trouver un exemple simple qui illustre votre problème, au lieu d'afficher tout votre code. Votre question sera plus facile à lire, et vous obtiendrez de meilleures réponses. Si le problème semble être avec 'str_replace', essayez de le reproduire dans deux ou trois lignes de code. – eaj

Répondre

4

Pour une chose str_replace()retours La chaîne remplacé, il ne modifie pas la chaîne d'origine, de manière écrite la nouvelle valeur remplacée est créée et puis juste jeté parce que vous n'ont pas assigné la valeur de retour à quoi que ce soit. Vous devez définir la valeur de modèle à la valeur remplacée:

$this->template = str_replace('{{page.content}}', $replace, $this->template); 
+0

Merci beaucoup Ben D. $ this-> template = ... de travail. Fnnny parce que c'est une erreur minuscule, et tout le code était faux à cause de cela. Aujourd'hui vous êtes mon héros;) –

+1

heureux que je pourrais aider :) –

-1

entendre est quelques exemples de str_replace j'espère que cela vous aidera beaucoup

<?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; 
?> 
+1

Ceci est une copie exacte de la documentation PHP. –