Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!

Ogłoszenie

Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.

#1  2009-06-19 13:33:58

  debbie - Użytkownik

debbie
Użytkownik
Zarejestrowany: 2006-09-19

php str_replace + kłopot z ' i z "

Witam! Mam taką sytuację że zaczytuje sobie dane do funkcji str_replace np:

$BUFFERR = str_replace("'", "", "jakies tam dane ' ' dalsze dane ");
   echo $BUFFER;

No i tu jest sytuacja OK! Ponieważ jak widać zamieniam wszystkie ' na pusty znak
czyli nie przeszkadza skryptowi to że w tekście - jakies tam dane ' ' dalsze dane     są zawarte -> '

Ale zna ktoś jakieś mądre wyjście z sytuacji gdzie w takim tekście zawarty był by także cudzysłów???

czyli np:

jakies tam "dane ' ' "dalsze dane

???
( bo wiadomo że znaki które chce zamienić na te które zamieniam zawieram w " lub ' i jeśli w tekście zawarte są
obydwa to sypie błędami.:(
Był bym wdzięczny za podpowiedź


debbie
[color=blue]Wrócę jak zjem zupę i drugie danie - tyle[/color]
[color=blue]a oto ta zupa:[/color]

Offline

 

#2  2009-06-19 13:42:00

  Gryzon - Użytkownik

Gryzon
Użytkownik
Skąd: Trójmiasto
Zarejestrowany: 2007-06-23

Re: php str_replace + kłopot z ' i z "

Nie wiem czy o to chodzi ale może tak:

Kod:

$BUFFERR = str_replace("\"", "", "jakies tam dane ' ' \"dalsze dane ");

Zamieni to znak " występujący w tekście na pusty znak, jeżeli źle zrozumiałem to przepraszam


"Nie ma rzeczy niemożliwych, są tylko takie, których człowiek nie nauczył się jeszcze robić"
A. Einstein

Offline

 

#3  2009-06-19 13:42:04

  Zbooj - Dark Sith

Zbooj
Dark Sith
Skąd: Siedziba Wszelkiego Zła
Zarejestrowany: 2005-07-28

Re: php str_replace + kłopot z ' i z "

A próbowałeś slashem np. "\"tekst\"" albo w {"tekst"}?


[url=https://www.youtube.com/watch?v=rNg2Dh6gPkw]Nemo sailing home...[/url]

Offline

 

#4  2009-06-19 13:58:25

  debbie - Użytkownik

debbie
Użytkownik
Zarejestrowany: 2006-09-19

Re: php str_replace + kłopot z ' i z "

tzn tak nie mam wpływu na dane które się tam wrzucają także nie moge ich zmieniać
Jak próbuje:

<?
$przed= array("'","\"");
$po= array("","");
$BUFFERR = str_replace($przed, $po, "jakies "tam dane ' ' "dalsze dane ");
        echo $BUFFERR;

jak daje z / to nadal sypie mi błędem:

Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING


debbie
[color=blue]Wrócę jak zjem zupę i drugie danie - tyle[/color]
[color=blue]a oto ta zupa:[/color]

Offline

 

#5  2009-06-19 14:36:01

  Gryzon - Użytkownik

Gryzon
Użytkownik
Skąd: Trójmiasto
Zarejestrowany: 2007-06-23

Re: php str_replace + kłopot z ' i z "

Pamiętaj że musi być \" a nie /" to bardzo duża różnica.

Najlepiej daj w skrypcie echo na dane które otrzymujesz i wklej je na forum, wtedy pewnie będziemy w stanie pomóc.


"Nie ma rzeczy niemożliwych, są tylko takie, których człowiek nie nauczył się jeszcze robić"
A. Einstein

Offline

 

#6  2009-06-19 14:57:33

  debbie - Użytkownik

debbie
Użytkownik
Zarejestrowany: 2006-09-19

Re: php str_replace + kłopot z ' i z "

No jest dokładnie tak jak wyżej czyli:


$przed= array("'","\"");
$po= array("","");
$BUFFERR = str_replace($przed, $po, "jakies "tam dane ' ' "dalsze dane ");
        echo $BUFFERR;

i chcę poprostu wyrzucić z jakies "tam dane ' ' "dalsze dane

' i to "
Ponieważ skrypt się nie chce wykonać czyli wyswietlić : jakies tam dane dalsze dane


debbie
[color=blue]Wrócę jak zjem zupę i drugie danie - tyle[/color]
[color=blue]a oto ta zupa:[/color]

Offline

 

#7  2009-06-19 15:16:30

  kamikaze - Administrator

kamikaze
Administrator
Zarejestrowany: 2004-04-16

Re: php str_replace + kłopot z ' i z "

Skrypt się nie wykonuje przez błąd składni, weź włącz sobie pokazywanie błedów. Jak można tak kodzić na ślepo.

zamiast:

Kod:

$BUFFERR = str_replace($przed, $po, "jakies "tam dane ' ' "dalsze dane ");

powinieneś mieć:

Kod:

$BUFFERR = str_replace($przed, $po, "jakies \"tam dane ' ' \"dalsze dane ");

Offline

 

#8  2009-06-19 15:23:33

  debbie - Użytkownik

debbie
Użytkownik
Zarejestrowany: 2006-09-19

Re: php str_replace + kłopot z ' i z "

No tak to [s]zauwarzyłem[/s] zauważyłem! Ale rozumiesz - nie mam wpływu na dane które są między cudzysłowami( pisałem to [s]wyrzej przecierz[/s] wyżej przecież):

jakies "tam dane ' ' "dalsze dane

czyli tam gdzie pojawił mi się w środku " to nie mogę tam sobie wrzucić / żeby to działało!
tak jak w tym przypadku jak napisałeś:

jakies \"tam dane ' ' \"dalsze dane

chyba że można to jakimś skryptem dodać???bo skrypt przed wrzuceniem danych wygląda tak:

<?
$przed= array("'","\"");
$po= array("","");
$BUFFERR = str_replace($przed, $po, "$_GET['zmienna'] ");
        echo $BUFFERR;

?>

No ale wpada tam wiadomo ten tekst w środku którego mogą być " i '
Może można by było wykonać coś w stylu jeśli w $_GET['zmienna'] będzie " to wrzuć przed niego /

to wtedy tak! Ale kombinuje i niebardzo wiem jak to zrobić

Ostatnio edytowany przez czadman (2009-06-19 21:39:42)


debbie
[color=blue]Wrócę jak zjem zupę i drugie danie - tyle[/color]
[color=blue]a oto ta zupa:[/color]

Offline

 

#9  2009-06-19 15:49:41

  kamikaze - Administrator

kamikaze
Administrator
Zarejestrowany: 2004-04-16

Re: php str_replace + kłopot z ' i z "

No to używasz addslashes().

Offline

 

#10  2009-06-19 16:17:42

  debbie - Użytkownik

debbie
Użytkownik
Zarejestrowany: 2006-09-19

Re: php str_replace + kłopot z ' i z "

z addslashes() ciężko! - zostawia /. A pozatym tutaj i tak nie ominę wystąpienia w ciągu znaków " i ' naraz.
Także jednak musiało by to być spełnione warukiem jeśli w zmiennej $_GET['zmienna'] wystąpi " to go usuń
oczywiście wynik wrzucam do drugiej zmiennej a następnie -> ' pozbywam się za pomocą str_replace.

Tylko jak to teraz ubrać i jest coś co mi usunie podany znak ze zmiennej??


debbie
[color=blue]Wrócę jak zjem zupę i drugie danie - tyle[/color]
[color=blue]a oto ta zupa:[/color]

Offline

 

#11  2009-06-19 17:10:50

  debbie - Użytkownik

debbie
Użytkownik
Zarejestrowany: 2006-09-19

Re: php str_replace + kłopot z ' i z "

Posprawdzałem chyba co się da ale fakt że w php tego nie zrobię! Tak więc wymyśliłem takie rozwiązanie
byc może ktoś będzie mi w stanie pomóc:)
- czy da się w bashu zrobić coś takiego -   sprawdzi cały plik i jeśli napotka - $zmienna gdziekolwiek w całym pliku to żeby wykoanał taką operację że jeśli będzie np: $zmienna="jakies "tam dane ' ' "dalsze dane "; to żeby między tymi głównymi cudzysłowiami usunął wszystkie cudzysłowia i apostrofy. Jest taka możliwość??? Wtedy mógłbym spokojnie wykonać sobie skrypt php.
Był bym bardzo wdzięczny za pomoc:)

Chyba sed ale ciężko znaleźć rozwiązanie

Ostatnio edytowany przez debbie (2009-06-19 17:54:49)


debbie
[color=blue]Wrócę jak zjem zupę i drugie danie - tyle[/color]
[color=blue]a oto ta zupa:[/color]

Offline

 

#12  2009-06-19 18:03:32

  debbie - Użytkownik

debbie
Użytkownik
Zarejestrowany: 2006-09-19

Re: php str_replace + kłopot z ' i z "

mam coś co usuwa wszystkie "

cat test.php | sed 's/"/ /g' > nowy_plik

albo

sed -i 's/"/ /g' test.php

ale jak zrobić warunek żeby tylko usuwał między:

$BUFFERR = str_replace($przed, $po, "

a

");

ma ktoś jakiś pomysł??

Ostatnio edytowany przez debbie (2009-06-19 18:04:05)


debbie
[color=blue]Wrócę jak zjem zupę i drugie danie - tyle[/color]
[color=blue]a oto ta zupa:[/color]

Offline

 

#13  2009-06-19 18:42:17

  grzegorz.85 - Członek DUG

grzegorz.85
Członek DUG
Skąd: Ostrołęka
Zarejestrowany: 2007-07-12
Serwis

Re: php str_replace + kłopot z ' i z "

[b]debbie[/b] koledzy wyżej podpowiadali Ci bardzo dobrze. Błędem sypalo, bo testowales na recznie wpisanym tekście zamiast podanej zmiennej $_GET, użyj tego kawałka kodu, który sam wpisałeś:

Kod:

<?
$przed= array("'","\"");
$po= array("","");
$BUFFERR = str_replace($przed, $po, "$_GET['zmienna'] ");
        echo $BUFFERR;

?>

Następie odpal skrypt wpisujac do zmiennej odpowiednią wartość z apostrofami i cudzysłowiami, a wyswietli Ci sie ona bez tych znaków.

A w ramach wyjaśnienia, czemu masz błąd we wcześniejszym kodzie:

$BUFFERR = str_replace($przed, $po, "jakies "tam dane ' ' "dalsze dane ");

Przyjrzyj się teraz co podałeś w trzecim parametrze funkcji str_replace:

"jakies "tam dane ' ' "dalsze dane "

Ciąg znaków u Ciebie zaczyna się od cudzysłowia, zatem kolejne jego wystąpienia zakończy ciąg znaków. Jeśli się przyjrzysz, to wspomniany ciąg znaków kończy się przed słowem "tam", bo przed nim występuje pierwszy cudzysłów. Po tym ciągu znaków znajduje się słowo "tam", które nie jest żadnym operatorem, więc parser nie wie co to jest i po co to jest, i w związku z tym sypie błędem. Jeżeli sam w kodzie chcesz zdefiniować ciąg znaków, który ma zawierać cudzysłów bądź apostrof to przed tym znakiem, który ma być częścią ciągu znaków stawiasz ukośnik, aby parser wiedział, że ma go traktować jako kolejny znak, a nie jako symbol zakończenia ciągu znaków. Mam nadzieje, że jasno wytłumaczyłem. I jeszcze dwa przykłady:

$test1 = "Wojtek powiedział, żeby nazywać go \"Wojtas\". Co Ty na to?";
echo $test1;
$test2 = 'Wojtek powiedział, żeby nazywać go "Wojtas". Co Ty na to?';
echo $test2;

Obydwa przykłady wyświetlą:
Wojtek powiedział, żeby nazywać go "Wojtas". Co Ty na to?

Offline

 

#14  2009-06-19 19:01:40

  debbie - Użytkownik

debbie
Użytkownik
Zarejestrowany: 2006-09-19

Re: php str_replace + kłopot z ' i z "

No chodzi o to że przykładowo z formularza jeśli wpisuję to ok! Ale jeśli jest taka sytuacja że program zewnętrzny
wrzuca mi w miejsce zmiennej:

<?
$zmienna_tym_razem="jakies "tam dane ' ' "dalsze dane";
$przed= array("'","\"");
$po= array("","");
$BUFFERR = str_replace($przed, $po, "$zmienna_tym_razem ");
        echo $BUFFERR;

?>

Ponieważ kodowo bez danych które są wrzucane z zewnątrz wygląda ten kawałek tak:

$zmienna_tym_razem="tutaj_wpadna_dane";

program zewnętrzny wrzuci mi tu dane i ja następnie ręcznie wykonam już sobie plik php z gotowymi danymi.

To jak widzisz nieda rady niestety! Dlatego tak się upieram!
I powracam chyba do jedynego rozwiązania(pytania):

cat test.php | sed 's/"/ /g' > nowy_plik

albo

sed -i 's/"/ /g' test.php

ale jak zrobić warunek żeby tylko usuwał między:

$BUFFERR = str_replace($przed, $po, "

a

");


debbie
[color=blue]Wrócę jak zjem zupę i drugie danie - tyle[/color]
[color=blue]a oto ta zupa:[/color]

Offline

 

#15  2009-06-19 20:09:34

  grzegorz.85 - Członek DUG

grzegorz.85
Członek DUG
Skąd: Ostrołęka
Zarejestrowany: 2007-07-12
Serwis

Re: php str_replace + kłopot z ' i z "

[quote=debbie]program zewnętrzny wrzuca mi w miejsce zmiennej[/quote]
Hmmm... to powiedz może, w jaki sposób ten zewnętrzny program wrzuca ci dane w miejsce zmiennej? Chyba jednak musisz miec wpływ na ten program, skoro możesz dowolnie zmieniać skrypt, a on wie, gdzie Ci tą zmienną wrzucić... Wydaje mi się, że o wiele łatwiej byłoby Ci pomóc, gdybyś wrzucił gdzieś ten kawałek kodu wraz z dokładnym wyjaśnieniem jak i skąd pobiera on dane/wartości zmiennych. W tej chwili zadałeś pytanie o zmienną, dostałeś odpowiedź, ale powiedziałeś, że nie działa to ze zmienną GET, której używasz, przekonałem Cię, że z ta zmienną też działa, to teraz napisałeś z kolei o tym, że dane przychodzą z zewnętrznego programu.

Na chwilę obecną (w ciemno) jedynym skutecznym rozwiązaniem jakie widzę dla programu zewnętrznego jest:

1. Program zewnętrzny zapisuje wartość do oddzielnego pliku (nadpisuje jego zawartość).
2. skrypt PHP zczytuje zawartość pliku, i zapisuje do zmiennej.
3. używasz str_replace() jak w przykładach wyżej

Zalety rozwiązania: program zewnętrzny może do pliku zapisać dowolne znaki, skrypt wszystko co zczyta z pliku zapisze do zmiennej, bez zwracania uwagi na tojakie to sa znaki - nie ma obawy, ze apostrof lub cudzyslow spowoduje zakonczenie ciagu znakow

Wady: dodatkowy plik, do którego odczytu uprawnienia musi miec skrypt PHP, oraz uprawnienia do zapisu musi miec program.

EDIT:

Po ponownym przeczytaniu Twojego poprzedniego postu domyślam się, że program po prostu w pliku ze skryptem wyszukuje ciągu znaków

tutaj_wpadna_dane

i podmienia go na zmienną.  W takiej sytuacji polecam rozwiązanie z oddzielnym plikiem, który będzie przechowywał tylko wartość tej zmiennej, tak jak opisałem powyżej.

Ostatnio edytowany przez grzegorz.85 (2009-06-19 20:29:07)

Offline

 

#16  2009-06-19 21:19:13

  kamikaze - Administrator

kamikaze
Administrator
Zarejestrowany: 2004-04-16

Re: php str_replace + kłopot z ' i z "

[quote=debbie]z addslashes() ciężko! - zostawia /. A pozatym tutaj i tak nie ominę wystąpienia w ciągu znaków " i ' naraz.
Także jednak musiało by to być spełnione warukiem jeśli w zmiennej $_GET['zmienna'] wystąpi " to go usuń
oczywiście wynik wrzucam do drugiej zmiennej a następnie -> ' pozbywam się za pomocą str_replace.

Tylko jak to teraz ubrać i jest coś co mi usunie podany znak ze zmiennej??[/quote]
No tak addslashes() nie potrzebne jak dajesz z geta, ale co ty najlepszego wymyśliłeś. Skąd pomysł by  "$_GET['zmienna'] " po co te ciapki? Wywal i będzie działać, i wszystko zrobisz w php, ech.

Offline

 

#17  2009-06-19 21:29:17

  grzegorz.85 - Członek DUG

grzegorz.85
Członek DUG
Skąd: Ostrołęka
Zarejestrowany: 2007-07-12
Serwis

Re: php str_replace + kłopot z ' i z "

kamikaze z tego co ja zaczynam chyba rozumiec, to przyklad z pierwszego postu, a pozniej GET mialy byc tylko kolejnymi krokami do osiagniecia celu, choć powodowały, że krążyliśmy po okolicy, i osiadliśmy na mieliźnie.

Z tego co zrozumiełem ostatni post debbie to ma on zewnetrzny program, który edytuje kod skryptu wpisujac w odpowiednie miejsce wartosc, ktora jest przypisywana zmiennej. Błąd jednak nie znajduje się w funkcji str_replace, a w przypisaniu zmiennej, bo taka linia:

$zmienna_tym_razem="jakies "tam dane ' ' "dalsze dane";

jednak wykrzaczy parser. Dlatego zaproponowałem właśnie zewnętrzny plik, który bedzie miał wartość domyślną:

tutaj_wpadna_dane

tylko i wylacznie, poskutkuje to tym, że cała zawartość tego nowego pliku będzie zawierała wartość jaką ma przyjąć zmienna. Kod PHP po prostu będzie odczytywał tę wartość z pliku, co zajmie nie więcej niż jedną linijkę kodu.

Offline

 

#18  2009-06-19 22:21:27

  kamikaze - Administrator

kamikaze
Administrator
Zarejestrowany: 2004-04-16

Re: php str_replace + kłopot z ' i z "

To jakieś podejście od d.. strony ;] program generuje php? A nie lepiej żeby program wypluwał dane, a php już robił swoje. Bo to jakaś paranoja z deka. W ogóle dlaczego php, będzie to wyświetlane na stronie? Mógłby opisać lepiej swój problem.

Offline

 

#19  2009-06-22 23:28:38

  debbie - Użytkownik

debbie
Użytkownik
Zarejestrowany: 2006-09-19

Re: php str_replace + kłopot z ' i z "

OK! może wytłumaczę od początku :

- jest program zewnętrzny który z pomocą swojego własnego wzorca
który mogę sobie zmieniać generuje plik z danymi np 350 osób.
We wzorcu zawarte są "STAŁE" dzięki którym generują się te dane tam gdzie je sobie ustawię.
przykład - mogę zrobić we wzoru tak:

dzisiaj jest fajny dzień ja i imie_nazwisko idziemy do kina.
Pan imie_nazwisko mieszka w adres_zamieszkania.

teraz wykonując program zewnętrzny generuje mi się plik który będzie zawierał z 350 takich wpisów
a w miejscu imie_nazwisko oraz adres_zamieszkania będą dane tych osób. Np pokaże na 2 osobach:

dzisiaj jest fajny dzień ja i Jan Kowalski idziemy do kina.
Pan imie_nazwisko mieszka w Bodaniec 23-309 ul. Chrobrego 12.

dzisiaj jest fajny dzień ja i Maciej Wytarzał idziemy do kina.
Pan imie_nazwisko mieszka w Sniardwy Jezioro ul Kładki 14.

I rozumiecie 350 takich wpisów!
Ale że potrzebuję sobię zrobić tabelę danych takich osób za pomocą php i mysql'a
we wzorcu programu zewnętrznego zamiast

dzisiaj jest fajny dzień ja i imie_nazwisko idziemy do kina.
Pan imie_nazwisko mieszka w adres_zamieszkania.

wrzucam sobie skrypt dodający rekord do bazy w mysql i jest tam międzyinnymi
taki kawałek:

Kod:

$przed= array("'","\"");
$po= array("","");
$personalne='imie_nazwisko';
$BUFFERR = str_replace($przed, $po, "$personalne");

I rozumiecie - po wykonaniu programu zewnętrznego tworzy mi się plik z 350 skryptami php
dodającymi rekord do mysql.
Wykonuję ten plik w przeglądarce i często jest tak że wyrzuca mi błąd ponieważ w np
imie_nazwisko może wygenerować się taki wpis-

Bogdan' Kowalski" 'Maleńczuk

Niestety na to nie mam wpływu.
Dlatego chciałem użyć str_replace do zamiany tego.
Ale po przeanalizowaniu myślałem że najlepszym rozwiązaniem będzie:

cat test.php | sed 's/"/ /g' > nowy_plik

albo

sed -i 's/"/ /g' test.php

ale jak zrobić warunek żeby tylko usuwał między:

$BUFFERR = str_replace($przed, $po, "

a

");[/quote]
i po pozbyciu się " za pomocą tego warunku zrobię str_replace tylko dla '

Rozumiecie gdybym zrobił sobie we wzorcu programu zewnętrznego listę zmiennych np:

$personal='imie_nazwisko';
$adr='adres_zamieszkania';
itd.
To dostanę 350 takich wpisów z różnymi danymi róznych osób ale z tą samą nazwą zmiennej:

$personal='Jakub Michałski';
$adr='terttet 12 ';

$personal='Jan Kowalski';
$adr='riririri 45';

itd itd aż 350. Także nie jestem w stanie sobie z listy danych z pliku wyciągnąć danych bo jak pociągnę np za pomocą $_GET['personal']
????? Jak wpliku jest 350 $personal z różnymi danymi.

Sory że na początku nie opisałem jak to dokłądnie wygląda ale nie myślałem że problem jest aż tak duży!
Był bym wdzięczny za pomoc lub jakieś nakierowanie może inne wyjście.
wygląda to tak:
Wzorzec mogę sobie ustalić jak mi się tylko podba ( tak jak pisałem wyżej  )
Z plikiem który się wygeneruje mogę robić co chcę - prawa 777:)

Ostatnio edytowany przez debbie (2009-06-22 23:30:55)


debbie
[color=blue]Wrócę jak zjem zupę i drugie danie - tyle[/color]
[color=blue]a oto ta zupa:[/color]

Offline

 

#20  2009-06-23 00:25:02

  grzegorz.85 - Członek DUG

grzegorz.85
Członek DUG
Skąd: Ostrołęka
Zarejestrowany: 2007-07-12
Serwis

Re: php str_replace + kłopot z ' i z "

ok, ile jest tych wzorcow, stala liczba? czy kazdy np. imie_naziwko ma przypisany jakie np. adres_zamieszkania? czy tylko jeden, czy moze miec wiele?

O co mi chodzi? Tworzysz plik o tresci np:

Kod:

imie_nazwisko{separator}adres_namieszkania

Każesz swojemu programowi zewnetrznemu aby pracowal na tym pliku, czego efektem jest:

Kod:

Jan Kowalski{separator}Poprzeczna 12
John O'Neil{separator}Jana "Kowala" Kowalskiego 13

piszesz sprypt, ktory odczytuje linijka po linijce ten plik, odczytane linie przechowywane są jako stringi, możesz bez przeszkod uzywac str_replace($przed, $po, $linia), gdzie $linia jest zmienna przechowujaca jeden wiersz z pliku. Najprostrzy skrypt (nie do konca oszczedzajacy pamięc serwera) moglby wygladac tak:

Kod:

if($content = file_get_contents('plik.txt')){
  $linie = explode("\n", $content);
  if(count($linie) > 0){
    foreach($linie AS $linia){
      $przed= array("'","\"");
      $po= array("","");
      $BUFFERR = str_replace($przed, $po, $linia);
      $dane = explode("{separator}", $linia);
      // w tablicy dane masz wszystkie dane bez apostrofów i cudzysłowów
    }
  }
}

Ostatnio edytowany przez grzegorz.85 (2009-06-23 00:27:37)

Offline

 

#21  2009-06-23 10:33:32

  debbie - Użytkownik

debbie
Użytkownik
Zarejestrowany: 2006-09-19

Re: php str_replace + kłopot z ' i z "

Tzn tak - każde imie_nazwisko ma swoje adres_zamieszkania
tworzy się 350 różnych wpisów.

teraz pytanie - czy można to zrobić w jednym pliku wzorca czyli żeby skrypt php nie działał na pliku osobnym.

tzn ja może pokaże jak wygląda wzorzec programu zewnętrznego ( jak go sobie ustaliłem )

Kod:

<?

     $personalne = 'personal';
         $kod = str_replace(' ', '', 'kod');
     $data = 'date';
         $imie_nazwisko = str_replace("'", "", "imie_nazwisko");       
         $adres_zamieszkania = 'adres_zamieszkania';  
if($personalne and $kod and $data ) {
    
    // łączymy się z bazą danych
    $connection = @mysql_connect('localhost', 'root', 'pass')
    or die('Brak połączenia z serwerem MySQL');
    $db = @mysql_select_db('raport', $connection)
    or die('Nie mogę połączyć się z bazą danych');
    
    // dodajemy rekord do bazy
    $ins = @mysql_query("INSERT INTO dane SET personalne='$personalne', kod_sql='$kod', data_sql='$data', imie_nazwisko_sql='$imie_nazwisko', adres_zamieszkania_sql='$adres_zamieszkania'");
    
    if($ins)  echo "<center><table border=0 width=50%><tr><td width=20% bgcolor=#E3F3D9><center><b>Rekord został poprawnie dodany do bazy</b><center></td></tr></table></center>"; 
  
    else echo "<center><table border=0 width=50%><tr><td width=20% bgcolor=#E3F3D9><center><b>Nie udało się dodać nowego rekordu</b><center></td></tr></table></center>"; 
  
    
    mysql_close($connection);
}



?>

Kiedy wykonam program zewnętrzny utworzy mi się w plik który będzie zawierał 350 takich skryptów
z różnymi danymi ( każdny inny )

I teraz zauwarz tą linię:

$imie_nazwisko = str_replace("'", "", "imie_nazwisko");[/quote]
Chodzi mi tylko o nią tylko o imie_nazwisko

Zamieniam tutaj ' na nic
Ale może się zdarzyć że imie_nazwisko będzie zawierać ' i "

Czyli jeżeli twój skrypt sobie z tym poradzi to jak go przerobić aby kod php wykonywał się na tej zmiennej
$imie_nazwisko i był zawarty w pliku wzorca czyli tam gdzie kod dodający rekordy mysql a nie operował na zewnętrznym pliku  plik.txt

Ostatnio edytowany przez debbie (2009-06-23 10:35:28)


debbie
[color=blue]Wrócę jak zjem zupę i drugie danie - tyle[/color]
[color=blue]a oto ta zupa:[/color]

Offline

 

#22  2009-06-23 16:50:19

  grzegorz.85 - Członek DUG

grzegorz.85
Członek DUG
Skąd: Ostrołęka
Zarejestrowany: 2007-07-12
Serwis

Re: php str_replace + kłopot z ' i z "

nie da rady tego zrobic, poniewaz Twój program zewnętrzny generując plik docelowy powoduje, że składnia jezyka PHP zostaje naruszona, a co za tym idzie występują błędy o których wspominałes wczesniej

Offline

 

Stopka forum

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson
To nie jest tylko forum, to nasza mała ojczyzna ;-)

[ Generated in 0.011 seconds, 11 queries executed ]

Informacje debugowania

Time (s) Query
0.00011 SET CHARSET latin2
0.00004 SET NAMES latin2
0.00128 SELECT u.*, g.*, o.logged FROM punbb_users AS u INNER JOIN punbb_groups AS g ON u.group_id=g.g_id LEFT JOIN punbb_online AS o ON o.ident='18.116.90.57' WHERE u.id=1
0.00074 REPLACE INTO punbb_online (user_id, ident, logged) VALUES(1, '18.116.90.57', 1732597492)
0.00047 SELECT * FROM punbb_online WHERE logged<1732597192
0.00057 SELECT topic_id FROM punbb_posts WHERE id=121590
0.00029 SELECT id FROM punbb_posts WHERE topic_id=14423 ORDER BY posted
0.00031 SELECT t.subject, t.closed, t.num_replies, t.sticky, f.id AS forum_id, f.forum_name, f.moderators, fp.post_replies, 0 FROM punbb_topics AS t INNER JOIN punbb_forums AS f ON f.id=t.forum_id LEFT JOIN punbb_forum_perms AS fp ON (fp.forum_id=f.id AND fp.group_id=3) WHERE (fp.read_forum IS NULL OR fp.read_forum=1) AND t.id=14423 AND t.moved_to IS NULL
0.00038 SELECT search_for, replace_with FROM punbb_censoring
0.00128 SELECT u.email, u.title, u.url, u.location, u.use_avatar, u.signature, u.email_setting, u.num_posts, u.registered, u.admin_note, p.id, p.poster AS username, p.poster_id, p.poster_ip, p.poster_email, p.message, p.hide_smilies, p.posted, p.edited, p.edited_by, g.g_id, g.g_user_title, o.user_id AS is_online FROM punbb_posts AS p INNER JOIN punbb_users AS u ON u.id=p.poster_id INNER JOIN punbb_groups AS g ON g.g_id=u.group_id LEFT JOIN punbb_online AS o ON (o.user_id=u.id AND o.user_id!=1 AND o.idle=0) WHERE p.topic_id=14423 ORDER BY p.id LIMIT 0,25
0.00111 UPDATE punbb_topics SET num_views=num_views+1 WHERE id=14423
Total query time: 0.00658 s