Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Includowanie części pliku do różnych miejsc
Forum PHP.pl > Forum > Przedszkole
furionero
Witam.  rolleyes.gif

Mam pytanie: Jak zaincludować do pliku php określone części pliku tekstowego z zawartością podstrony do różnych miejsc? Kiedyś includowałem cały plik w jedno miejsce za pomocą tego kodu:

  1. <?php 
  2.       // zmienna $go przekazana metoda GET 
  3.       $go = $_GET['go']; 
  4.        
  5.       // sprawdzamy czy zmienna $go nie jest pusta 
  6.       if(!empty($go)) { 
  7.           // sprawdzamy czy plik o danej nazwie istnieje 
  8.           if(is_file("$go.inc")) include "$go.inc"; 
  9.           // jezeli plik nie istnieje wyswietla się komunikat 
  10.           else echo "<br /><br />Nie ma takiej strony :("; 
  11.       } 
  12.       // jezeli zmienna $go jest pusta wyswietla się strona glowna 
  13.       else include "body.inc"; 
  14.        
  15.     ?>


A teraz odpowiednie części mają się wyświetlać w dwóch różnych div'ach, część kodu strony głównej wygląda tak:

  1. <div id="naglowek">Tu ma być pierwsza część includowanego pliku </div>
  2.  
  3. <div id="tresc">Tu ma być druga część includowanego pliku </div>


Pliki *.inc powinny wyglądać jakoś tak:

  1. Pierwsza część includowanego pliku
  2.  
  3. Druga część includowanego pliku 


Co dopisać w pliku index.php , a co w includowanych plikach *.inc ?  
Spawnm
może w $go.inc dac 2 zmienne?
plik inc:
  1. <?php
  2. $a='treść 1';
  3. $b='treść 2';
  4. ?>


po includowaniu tego pliku dajemy:
  1. <?php
  2. echo '<div id="naglowek">'.$a. '</div>
  3. <div id="tresc">'.$b.'</div>';
  4. ?>
bartg
Poczytaj o explode
  1. <?php
  2.      // zmienna $go przekazana metoda GET
  3.      $go = $_GET['go'];
  4.      
  5.      // sprawdzamy czy zmienna $go nie jest pusta
  6.      if(!empty($go)) {
  7.          // sprawdzamy czy plik o danej nazwie istnieje
  8.          if(is_file("$go.inc")) {
  9. $txt = file_get_contents( "$go.inc");
  10.         $txt=explode("\n", $txt);
  11. echo $txt[0];
  12. echo $txt[1];
  13.  // jezeli plik nie istnieje wyswietla się komunikat
  14.  
  15.         } else { echo "<br /><br />Nie ma takiej strony :(";}
  16.      }
  17.      // jezeli zmienna $go jest pusta wyswietla się strona glowna
  18.      else include "body.inc";
  19.      
  20.    ?>
erix
Ale modząc tak ze zmiennymi innego kodu nie wykonasz tongue.gif

Proponuję coś takiego: plik include" title="Zobacz w manualu PHP" target="_manual'owany
  1. <?PHP
  2. switch($state){
  3. case 'tytul':
  4. ?>
  5. dskfhaskdhfkajsdhfjkashdfk
  6. <?PHP
  7. break;
  8.  
  9. case 'tresc':
  10. ?>
  11. asdfkjsdaflkhaskjdhfkdsf
  12. <?PHP
  13. }
  14. ?>


A w głównym:

  1. <?php
  2. $state = 'tytul';
  3.  
  4. require 'plik.inc';
  5.  
  6. $state = 'tresc';
  7.  
  8. require 'tresc';
  9. ?>
furionero
Dzięki yahoo.gif
Wreszcie udało mi się rozwiązać problem
___
EDIT:
Mam nowy problem  sadsmiley02.gif z tym:

  1. <?php
  2. $a='treść 1';
  3. $b='treść 2';
  4. ?>


Jak zrobić żeby w miejscu 'treść1' zaincludować jeszcze inny plik, ale w całości?

Próbowałem już tak:

  1. <?php
  2. $a='<?php include('plik.inc') ?>';
  3. $b='treść 2';
  4. ?>


Ale nie działa sciana.gif

Nie uczyłem się PHP ale jest mi to bardzo potrzebne. Z góry dziękuję za odpowiedzi.
erix
Nie da się tak. Jak już, to:
  1. <?php
  2. $a = file_get_contents('plik.inc');
  3. ?>

Ale NIE zostanie on przeparsowany.

Jeśli chcesz, aby był przetwarzany, to raczej będziesz musiał się do niego odwoływać przez URL (http://serwer/plik.inc), co go najpewniej i tak nie przeparsuje ze względu na niestandardowe rozszerzenie.
zulus
Da się, po prostu wykonaj dwa razy include, z różnymi $state.

Ew zmiast switch użyj if'ów

  1. if($state='tytul' || $state='oba') {
  2. ?>
  3. kdfjgdkjg;dkj
  4. <?php
  5. }
  6.  
  7. if($state='trescl' || $state='oba') {
  8. ?>
  9. Jakiś durny text
  10. <?php
  11. }
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.