Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php/mysql] wyszkuwanie w tekście fragmentu i wyszkuwanie w bazie, Pytanie teoretyczne
oomaster
post
Post #1





Grupa: Zarejestrowani
Postów: 305
Pomógł: 3
Dołączył: 4.08.2006
Skąd: GDA

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


Witam,

Mam pytanie bardziej teoretyczne. Wyjaśnię co chciałbym zrobić. Mam w bazie tekst:
Cytat
Lorem ipsum dolor sit amet, consetetur sadipscing elitr, <img src="plik.jpg"> sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum.
pobieram go i wyświetlam na stronie ale przed tym chciałbym aby jakaś funkcja wyszukała wszystkie pliki img czyli <img src="plik.jpg"> wysłała zapytanie do bazy czy plik jest i jakie ma wartości i je podała i wyświetliła.

Czyli krótko mówiąc tekst po "transformacji" w kodzie powinnien wyglądać tak:
Cytat
Lorem ipsum dolor sit amet, consetetur sadipscing elitr, <a href="DANE_Z_BAZY_1" alt="DANE_Z_BAZY_2"><img src="plik.jpg"></a> sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum.


Czy ktoś wie z was jakiej funkcji mam użyć lub co ogólnie mam zrobić ?
W razie niejasności piszcie.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 16)
webdice
post
Post #2


Developer


Grupa: Moderatorzy
Postów: 3 045
Pomógł: 290
Dołączył: 20.01.2007




Użyj preg_match" title="Zobacz w manualu PHP" target="_manual/preg_match_all" title="Zobacz w manualu PHP" target="_manual.
Go to the top of the page
+Quote Post
oomaster
post
Post #3





Grupa: Zarejestrowani
Postów: 305
Pomógł: 3
Dołączył: 4.08.2006
Skąd: GDA

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


OK masz rację wiem jak pobrać i wyszukać w bazie ale jak zamienić potem ?

hhhmmmm...
Go to the top of the page
+Quote Post
webdice
post
Post #4


Developer


Grupa: Moderatorzy
Postów: 3 045
Pomógł: 290
Dołączył: 20.01.2007




preg_replace" title="Zobacz w manualu PHP" target="_manual
Go to the top of the page
+Quote Post
oomaster
post
Post #5





Grupa: Zarejestrowani
Postów: 305
Pomógł: 3
Dołączył: 4.08.2006
Skąd: GDA

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


Wiem jak zrobić wszystko ale mam kłopot

Korzystam z funkcji:

Kod
<?php
preg_match_all("#<img src=\"(.*)\" style=#Ui" , $tresc, $wynik);
echo"<pre>".$wynik."</pre>";
?>


Ale nie wyświetlają mi się wyniki tylko samo
Array ?

Czy to normalne, przecież w teksie mam zawarte znaczniki <img....
Go to the top of the page
+Quote Post
specialplan
post
Post #6





Grupa: Zarejestrowani
Postów: 206
Pomógł: 21
Dołączył: 1.09.2006
Skąd: Edinburgh

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


Nie doczytales... preg_match rzuca wyniki do tablicy. Wyciagasz je np tak:

  1. <?php
  2. echo $wynik[0];
  3. ?>
Go to the top of the page
+Quote Post
oomaster
post
Post #7





Grupa: Zarejestrowani
Postów: 305
Pomógł: 3
Dołączył: 4.08.2006
Skąd: GDA

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


Dzięki za odpowiedź, bardzo mi pomogła ale myślę nad innym rozwiązaniem.

  1. <?
  2. $phrase = $tresc_2;
  3. $healthy = array("<img src=", "align=\"right\">", "align=\"left\">");
  4. $yummy = array("<a href=\"#\"><img src=", "align=\"right\"></a>", "align=\"left\"></a>");
  5. $ewphrase = str_replace($healthy, $yummy, $phrase);
  6.  
  7. echo $ewphrase;
  8. ?>


Kod działa i zmienia obrazki w linki. Nie wiem czy powyższą funkcją będzie potrafiła połączyć się z bazą i według nazwy pliku pobrać dane.
Go to the top of the page
+Quote Post
nowotny
post
Post #8





Grupa: Zarejestrowani
Postów: 875
Pomógł: 122
Dołączył: 2.02.2008

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


Cytat(oomaster @ 5.03.2008, 18:25:48 ) *
Nie wiem czy powyższą funkcją będzie potrafiła połączyć się z bazą i według nazwy pliku pobrać dane.

My też nie wiemy... (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif) Ale pewnie jak dobrze napiszesz to będzie... (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
oomaster
post
Post #9





Grupa: Zarejestrowani
Postów: 305
Pomógł: 3
Dołączył: 4.08.2006
Skąd: GDA

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


Cytat(nowotny @ 5.03.2008, 19:41:27 ) *
My też nie wiemy... (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif) Ale pewnie jak dobrze napiszesz to będzie... (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)


No i teraz nie wiem kurde jak to rozwiązać, nie masz pomysłu kolego (IMG:http://forum.php.pl/style_emoticons/default/sciana.gif) (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) ?
Go to the top of the page
+Quote Post
nowotny
post
Post #10





Grupa: Zarejestrowani
Postów: 875
Pomógł: 122
Dołączył: 2.02.2008

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


Zadaj konkretne pytanie, podaj trochę kodu i pomyślimy... W tej chwili nie wiem dokładnie o co ci chodzi...
Go to the top of the page
+Quote Post
oomaster
post
Post #11





Grupa: Zarejestrowani
Postów: 305
Pomógł: 3
Dołączył: 4.08.2006
Skąd: GDA

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


OK, mówisz masz (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

No to początkowo chcę ze zmiennej $tresc_2 wybrać wszystko co jest tam i rozpoczyna się:
Cytat
<img src="nazwa.jpg" style=


  1. <?php
  2. preg_match_all("#<img src=\"(.*)\" style=#Ui" , $tresc_2, $wynik);
  3.  
  4. print_r($wynik);
  5. ?>


To bez problemu zrobiłem, wyświetliło się w rozbudowanej tablicy:
Cytat
Array ( [0] => Array ( [0] => Array ( [0] => s_foto/foto/181023015047cd3a5b7920e_Bez-nazwy-1.jpg [1] => s_foto/foto/165375087747cd2335d1674_10-02-07_1556.jpg ) )


I teraz jakoś chciałbym każdy ze znalezionych wyników znaleść w bazie czyli według tablicy są takie pliki:

s_foto/foto/181023015047cd3a5b7920e_Bez-nazwy-1.jpg
s_foto/foto/165375087747cd2335d1674_10-02-07_1556.jpg

Teraz z bazą się łącze i szukam według nich ich opisu i autora. Następnie wszystko sklejam do kupy.

Dla przykładu, Przed:
<img src="nazwa.jpg" style="padding:1px">
i Po operacji:
<div>Fajna Nazwa Pliku, Autor Fotki <img src="nazwa.jpg" style="padding:1px"></div>

Może nie zrozumiale ale jeszcze próbowałem tak, ale nie wiedziałem jak pobrać z bazy dane dla wyników:
  1. <?
  2. $phrase = $tresc_2;
  3. $healthy = array("<img src=", "align=\"right\">", "align=\"left\">");
  4. $yummy = array("$nazwa, $autor<img src=", "align=\"right\"></div>", "align=\"left\"></div>");
  5. $ewphrase = str_replace($healthy, $yummy, $phrase);
  6.  
  7. echo $ewphrase;
  8. ?>


Piszcie jeśli jest coś nie jasne, bo może być (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
nowotny
post
Post #12





Grupa: Zarejestrowani
Postów: 875
Pomógł: 122
Dołączył: 2.02.2008

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


Cytat(oomaster @ 6.03.2008, 16:32:23 ) *
No to początkowo chcę ze zmiennej $tresc_2 wybrać wszystko co jest tam i rozpoczyna się:
...
To bez problemu zrobiłem, wyświetliło się w rozbudowanej tablicy:
I teraz jakoś chciałbym każdy ze znalezionych wyników znaleść w bazie czyli według tablicy są takie pliki:

s_foto/foto/181023015047cd3a5b7920e_Bez-nazwy-1.jpg
s_foto/foto/165375087747cd2335d1674_10-02-07_1556.jpg

Teraz z bazą się łącze i szukam według nich ich opisu i autora. Następnie wszystko sklejam do kupy.

Dla przykładu, Przed:
<img src="nazwa.jpg" style="padding:1px">
i Po operacji:
<div>Fajna Nazwa Pliku, Autor Fotki <img src="nazwa.jpg" style="padding:1px"></div>

No to wg. tego co napisałeś to wszystko masz obcykane i zrobione... to gdzie ten problem...?
Go to the top of the page
+Quote Post
oomaster
post
Post #13





Grupa: Zarejestrowani
Postów: 305
Pomógł: 3
Dołączył: 4.08.2006
Skąd: GDA

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


Cytat
Teraz z bazą się łącze i szukam według nich ich opisu i autora. Następnie wszystko sklejam do kupy.


No niby tak, ale jak zwykle problem. Tak jak napisałem to tylko moje wypociny które zbytnio nie dają pożądanego efektu bo nie wiem jak z bazy pobrać dane i wkleić je w tekst ?!
Go to the top of the page
+Quote Post
nowotny
post
Post #14





Grupa: Zarejestrowani
Postów: 875
Pomógł: 122
Dołączył: 2.02.2008

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


No to odpalamy googlownice i się uczymy... albo czytamy tutaj:
http://pl.wikibooks.org/wiki/PHP/Jak_to_się_robiło_kiedyś%3F
albo tutaj: http://wortal.php.pl/wortal/artykuly/php/p...orial_php_mysql
Go to the top of the page
+Quote Post
oomaster
post
Post #15





Grupa: Zarejestrowani
Postów: 305
Pomógł: 3
Dołączył: 4.08.2006
Skąd: GDA

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


Torszkę chyba nie rozumiesz mojego problemu (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)

Poniżej napisałem krótki kod ale nie wiem co zrobić w nim aby dla każdego foto pobierać jego dane bo ja na razie dla wszystkich fot w tekście dodaje tak samo a chciałbym aby dla każdego foto pobrać te dane z bazy. A oto tabelka:

news_foto
foto | opis | autor
img001.jpg | fajne foto | mateusz
bez_nazwy.png | ciekawy graf | Tomek


  1. <?php
  2. preg_match_all("#<img src=\"(.*)\" style=#Ui" , $tresc_2, $wynik);
  3.  
  4. $m = @mysql_query("SELECT * FROM news_foto WHERE foto='".$wynik[1][0]."' ");
  5. while ($test = mysql_fetch_array($m)) {
  6.  
  7. $phrase = $tresc_2;
  8. $healthy = array("<img src=", "align=\"right\">", "align=\"left\">");
  9. $yummy = array("<a href=\"".$test['autor']."\"><img src=", "align=\"right\"></a>", "align=\"left\"></a>");
  10. $ewphrase = str_replace($healthy, $yummy, $phrase);
  11. }
  12. echo $ewphrase;
  13. ?>


teraz wiesz co mi na wątrobie leży (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) ?
Go to the top of the page
+Quote Post
nowotny
post
Post #16





Grupa: Zarejestrowani
Postów: 875
Pomógł: 122
Dołączył: 2.02.2008

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


No i nie można było tak od razu...

Jeśli koniecznie musisz zamienić te linki w zmiennej $tresc_2 to ja bym tutaj użył funkcji preg_replace_callback" title="Zobacz w manualu PHP" target="_manual... w funkcji callback połączyłbym się z bazą i pobrał odpowiednie informacje dla danego linku i zwrócił odpowiednio sformatowane...
Go to the top of the page
+Quote Post
oomaster
post
Post #17





Grupa: Zarejestrowani
Postów: 305
Pomógł: 3
Dołączył: 4.08.2006
Skąd: GDA

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


Dzięki za odpowiedź. Szukałem trochę informacji w sieci na temat funkcji preg_replace_callback. Nic konkretnego nie znalazłem (IMG:http://forum.php.pl/style_emoticons/default/sad.gif)

Może ktoś podać przykład użycia z bazą danych ?
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: 24.08.2025 - 05:58