Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] string_replace a include
yta
post
Post #1





Grupa: Zarejestrowani
Postów: 201
Pomógł: 3
Dołączył: 10.04.2010

Ostrzeżenie: (0%)
-----


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 ?
Go to the top of the page
+Quote Post
viking
post
Post #2





Grupa: Zarejestrowani
Postów: 6 380
Pomógł: 1116
Dołączył: 30.08.2006

Ostrzeżenie: (0%)
-----


A pod echo $x co masz?


--------------------
Go to the top of the page
+Quote Post
yta
post
Post #3





Grupa: Zarejestrowani
Postów: 201
Pomógł: 3
Dołączył: 10.04.2010

Ostrzeżenie: (0%)
-----


Yy nie mam echo $x ?
Go to the top of the page
+Quote Post
Pyton_000
post
Post #4





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

Ostrzeżenie: (0%)
-----


co masz w test.php
Go to the top of the page
+Quote Post
yta
post
Post #5





Grupa: Zarejestrowani
Postów: 201
Pomógł: 3
Dołączył: 10.04.2010

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post
Pyton_000
post
Post #6





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

Ostrzeżenie: (0%)
-----


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);
Go to the top of the page
+Quote Post
yta
post
Post #7





Grupa: Zarejestrowani
Postów: 201
Pomógł: 3
Dołączył: 10.04.2010

Ostrzeżenie: (0%)
-----


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.


Ten post edytował sakuwbarakushow 1.08.2016, 09:53:28
Go to the top of the page
+Quote Post
Pyton_000
post
Post #8





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

Ostrzeżenie: (0%)
-----


Ale wyświetlasz zmienną $x czy $opowiesc?
Go to the top of the page
+Quote Post
yta
post
Post #9





Grupa: Zarejestrowani
Postów: 201
Pomógł: 3
Dołączył: 10.04.2010

Ostrzeżenie: (0%)
-----


Bez znaczenia
na obydwu zmiennych tak samo się zachowuje

czy wyświetlę $x czy wyświetlę $opowiesc
Go to the top of the page
+Quote Post
nospor
post
Post #10





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




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


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
yta
post
Post #11





Grupa: Zarejestrowani
Postów: 201
Pomógł: 3
Dołączył: 10.04.2010

Ostrzeżenie: (0%)
-----


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 ?

Ten post edytował sakuwbarakushow 1.08.2016, 11:00:05
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 21.08.2025 - 07:39