Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [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
 
Start new topic
Odpowiedzi (1 - 10)
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
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
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 25.08.2025 - 04:17