Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] string_replace a include
Forum PHP.pl > Forum > Przedszkole
yta
Witam.
Wysyłam poprzez formularz do bazy danych określoną treść :

XXX

XXX
XXX

i w pewnym miejscu chce wstawić (dołączyć) coś z pliku test.php

XXX
XXX
XXX
<WSTAW>
XXX
XXX
XXX

gdzie oczywiście za WSTAW wyląduje to co chce dopisać.

I robię to tak:

  1. while ($tablica = $wynik->fetch_assoc()) {
  2.  
  3.  
  4. echo '<div class="news">';
  5.  
  6. $text = $tablica['tresc'];
  7. $opowiesc = preg_replace_callback(
  8. '#<logged>(.*?)</logged>#s',
  9. function($match) {
  10. if (isset($_SESSION['user_id'])) {
  11. $is_logged = true;
  12. }
  13. else {
  14. $is_logged = false;
  15. }
  16. return ((bool)$_SESSION['user_id'] ? $match[0] : '');
  17. },
  18. $text);
  19.  
  20.  
  21.  
  22. $x = str_replace("<WSTAW>", "<WSTAW>".include "test.php", $opowiesc);
  23. echo $opowiesc;
  24.  
  25. echo '</div>';
  26.  
  27. }


Ale to niestety tak nie działa. Co mam źle ? Nie wstawia mi w określonym miejscu chce tego załączonego pliku (jego treści) a wstawia tą treść na koniec pliku. Także jak zrobić to co oczekuje ?
viking
A pod echo $x co masz?
yta
Yy nie mam echo $x ?
Pyton_000
co masz w test.php
yta
Zwykle WHERE z bazy - kilkanascie warunkow.

Chce w środku newsa wpisać to co sobie wyliczylem / wypisalem z bazy.


W test.php
na ten przyklad wyglada tak:

  1. <?php
  2.  
  3. $id = $_GET['id'];
  4.  
  5. $db->set_charset("utf8");
  6. $zapytanie = "SELECT * FROM $tabela WHERE id = $id LIMIT 1";
  7.  
  8. $wynik = $db->query($zapytanie);
  9. echo '<br>';
  10. echo "Stan Licznika Poczatkowy = ".$tablica['StanLicznikaPoczatkowy'];
  11. // i tam jeszcze kilkanascie ...
  12.  
  13. $i = $tablica['id'];
  14. //decho 'ID trasy to '.$id.'<br>';
  15. $zapytanie2 = "SELECT SUM(Przejechalem) AS MaxPredkosc FROM $tabela WHERE id <= $id";
  16. $db->set_charset("utf8");
  17. $wynik2 = $db->query($zapytanie2);
  18. $tablica2 = $wynik2->fetch_assoc();
  19. //var_dump($tablica2);
  20. $Czas = $tablica2 ['MaxPredkosc'];
  21.  
  22. $Data = $tablica ['data'];
  23. echo "<br>Data = ".$Data;


I tak tak dalej mam obecnie 12 zapytan a nie wykluczone, ze z czasem to rozszerze
Pyton_000
W takim razie to tak nie zadziała....

Tak:
  1. include "test.php";
  2. $content = ob_get_contents();
  3.  
  4. $x = str_replace("<WSTAW>", "<WSTAW>".$content, $opowiesc);
yta
Yy powiem szczerze, że widziałem to na forum co przedstawiasz .. jak szukam w googlach tego, ale nie udało mi się tego zmusić do działania wraz z moją klauzulą do <logged></logged>


edit://

dobra dodałem i wpisuję takiego newsa:

ffggggggg

<WSTAW>

COŚ PO TYM WSTAW

I dostaję teraz tylko zawartość WSTAW (plik test.php)

nie mam już w newsie:

ffggggggg COŚ PO TYM WSTAW <---- to się nie wyświetla - bez echo $opowiesc; ale jak dam tak:

  1. $text = $tablica['tresc'];
  2.  
  3.  
  4. echo $opowiesc;
  5. include "test.php";
  6. $content = ob_get_contents();
  7.  
  8. $x = str_replace("<WSTAW>", "<WSTAW>".$content, $opowiesc);


to znowu to samo ,

Kod
ffggggggg COŚ PO TYM WSTAW

i mój plik test.php


w sensie, plik na koncu wpisu.
Pyton_000
Ale wyświetlasz zmienną $x czy $opowiesc?
yta
Bez znaczenia
na obydwu zmiennych tak samo się zachowuje

czy wyświetlę $x czy wyświetlę $opowiesc
nospor
Czytam czytam i totalnie nic nie kumam.... Bledy jakie widze teraz na szybko to:


echo $opowiesc;
dajesz od razu echo $opowiesc i sie dziwisz ze sie wyswietla....

Kolejna sprawa co ty dokladnie kombinujesz bo nadal jest to dla mnie niezrozumiale. Odnosze wrazenie ze poprostu przekombinowales jakas banalne sprawe
yta
No to teraz wyświetla mi dwa razy :


TEST.PHP
Moja treść
WSTAW {test.PHP}
KONIEC MOJEJ TREŚCI


EDIT://

Sam include w sobie wyświetla mi treść dwukrotnie ...

tzn:

include ('test.php');

bez echo include ('test.php'); wyświetla tego includa .. a dalej wyświetla się on w str_replace

I co , nikt nie pomoże ?
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.