![]() |
![]() ![]() |
![]() |
![]() ![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 164 Pomógł: 3 Dołączył: 13.12.2007 Ostrzeżenie: (0%) ![]() ![]() |
... i nie działa (IMG:http://forum.php.pl/style_emoticons/default/sadsmiley02.gif) Dlaczego ? W zmiennej $item_info['describe_long'] jest kilka linijek tekstu. Wszystkie pliki kodowane tak samo. Chmod plików tekstowych 755 Przykład z manuala:
Ten post edytował kleszczoscisk 18.07.2009, 21:46:33 |
|
|
![]()
Post
#2
|
|
Grupa: Moderatorzy Postów: 4 069 Pomógł: 497 Dołączył: 11.05.2007 Skąd: Warszawa ![]() |
Proszę nadać tytuł tematu!
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 61 Pomógł: 6 Dołączył: 15.07.2009 Skąd: Śląsk->Ruda Śląska Ostrzeżenie: (0%) ![]() ![]() |
bo str_replace działa chyba tylko na stringi [nie pamiętam dokładnie] a funkcja file() tworzy tablice.
Ten post edytował planet 18.07.2009, 21:40:47 |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 812 Pomógł: 117 Dołączył: 2.12.2008 Ostrzeżenie: (10%) ![]() ![]() |
bo str_replace działa chyba tylko na stringi [nie pamiętam dokładnie] a funkcja file() tworzy tablice. Chyba nie: Cytat mixed str_replace ( mixed $search , mixed $replace , mixed $subject [, int &$count ] )
... i nie działa (IMG:http://forum.php.pl/style_emoticons/default/sadsmiley02.gif) Dlaczego ? W zmiennej $item_info['describe_long'] jest kilka linijek tekstu. Wszystkie pliki kodowane tak samo. Chmod plików tekstowych 755 Przykład z manuala:
Pewnie nie działa bo elementy tablicy zawierają entery ("\n"). Kod for($i=0;$i<count($healthy);$i++){ $healthy[$i]=trim($healthy[$i]); } Przy okazji bardzo chętnie dowiem się jak wykonywać jedną funkcję na całej tablicy przy użyciu jakiejś specjalnej funkcji php, która napewno istnieje tylko jej nazwy nie znam. Ten post edytował flashdev 18.07.2009, 21:49:52 |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 164 Pomógł: 3 Dołączył: 13.12.2007 Ostrzeżenie: (0%) ![]() ![]() |
Czyli lepiej w plikach .txt rozdzielic słowa przecinkiem (np) i utworzyć tablicę funkcją explode ?
Tablicę tworzy funkcja file(), a czy przy okazji dodaje "\n" tego nie wiem ... pliki .txt wyglądają tak: Kod malarze
rzeźbiarze ceramicy biżuternicy graficy Ten post edytował kleszczoscisk 18.07.2009, 21:58:28 |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 812 Pomógł: 117 Dołączył: 2.12.2008 Ostrzeżenie: (10%) ![]() ![]() |
Czyli lepiej w plikach .txt rozdzielic słowa przecinkiem (np) i utworzyć tablicę funkcją explode ? Tego nie powiedziałem. Myśle, że są jeszcze conajmniej kilka-kilkanaście sensownych sposobów. Lepsze będą niewątpliwie sposoby, które wykonuą szybciej swoje zadanie oraz zajmują mniej pamięci. Co to tego pierwszego aspektu odsyłam do mojej klasy do pomiaru czasu wykonywania kodu -> Temat: klasa_timer |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 233 Pomógł: 50 Dołączył: 28.10.2006 Skąd: Radom Ostrzeżenie: (0%) ![]() ![]() |
Przy okazji bardzo chętnie dowiem się jak wykonywać jedną funkcję na całej tablicy przy użyciu jakiejś specjalnej funkcji php, która napewno istnieje tylko jej nazwy nie znam. array_map" title="Zobacz w manualu PHP" target="_manual |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 164 Pomógł: 3 Dołączył: 13.12.2007 Ostrzeżenie: (0%) ![]() ![]() |
Lepsze będą niewątpliwie sposoby, które wykonuą szybciej swoje zadanie oraz zajmują mniej pamięci. No ale utworzenie tablicy z pliku i podmiana ciągu znaków przy pomocy tych funkcji, które próbuję chyba jest OK ? Ale po drodze gdzieś jest jakiś błąd... nie wiem gdzie i jaki. |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 812 Pomógł: 117 Dołączył: 2.12.2008 Ostrzeżenie: (10%) ![]() ![]() |
Tablicę tworzy funkcja file(), a czy przy okazji dodaje "\n" tego nie wiem ... pliki .txt wyglądają tak: Kod malarze rzeźbiarze ceramicy biżuternicy graficy Kod <?php $phrase = strtolower($item_info['describe_long']); $healthy = sru(file("anchors.txt")); $yummy = sru(file("links.txt")); echo str_replace($healthy, $yummy, $phrase); ?> function sru($tab){ for($i=0;$i<count($tab);$i++){ $tab[$i]=trim($tab[$i]); } } ?> Dziękuję, zapamiętam (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) W takim razie mała poprawka kodu na bardziej wydajny: Kod <?php
$phrase = strtolower($item_info['describe_long']); $healthy = array_map('trim', file("anchors.txt")); $yummy = array_map('trim', file("links.txt")); echo str_replace($healthy, $yummy, $phrase); ?> Ten post edytował flashdev 18.07.2009, 22:04:54 |
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 164 Pomógł: 3 Dołączył: 13.12.2007 Ostrzeżenie: (0%) ![]() ![]() |
DZIAŁA ! (IMG:http://forum.php.pl/style_emoticons/default/guitar.gif)
Wielkie dzięki i dobrej nocy ! Ten post edytował kleszczoscisk 18.07.2009, 22:08:52 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 23.08.2025 - 17:54 |