![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 102 Pomógł: 0 Dołączył: 19.06.2015 Ostrzeżenie: (0%) ![]() ![]() |
Witam serdecznie i na wstępie proszę kogoś o pomoc bo nie daje rady z tymi wyrażeniami sobie rady.
Mam taki skryp CODE $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $dataTemp_=str_replace(",","','",$tablicaTemp);//formatuje kod na zrozumialy dla SQL //...Jakiś kod //..... $sql = "INSERT INTO $nazwaTabeli ($tablicaTemp_) str_replace bardzo ładnie mi przerabia tablice na dane wejsciowe do bazy danych ale.... orginal "WEBER,"P329,P330,P331","HN8E ",1,KG,B22,C,0.161,F,0.028,H,0.028,,,,,,,2014-03-28" kod wyjsciowy wygląda tak 'WEBER','"P329','P330','P331"','"HN8E"','1','KG','B22','C','0.161','F','0.028','H','0.028','','','','','','','2014-03-28'; czyli prawie bo "P329,P330,P331" to wyrażenie nie może być rozbite i powinno wyglądać dak '"P329,P330,P331"' Kombinowałem na lewo i prawo z tymi wyrażeniami regularnymi ale nijak mi to nie wychodzi. |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 102 Pomógł: 0 Dołączył: 19.06.2015 Ostrzeżenie: (0%) ![]() ![]() |
No własnie nie może być
"WEBER,"P329,P330,P331",..." "WEBER,"P329,P3301",...." "WEBER,"P329",...." albo jeszcze więcej wartości ale zawsze są w cudzysłowie bo mają być w jednej komórce. Ciąg zawsze znajduje się na drugim miejscu. Chodzi mi własnie o takie wyrażenie rozbij na tablice tam gdzie są przecinki ale pomiń przecinki jeśli napotkasz je w cudzysłowie Zrobiłem coś takiego co działa ale kod wygląda jak goła d**a mojej teściowej. CODE $split=explode('"',$orgin);//pobiera ciag "P329,P330,P331" $tablicaTemp = preg_replace('/".*,?1"/','@', $orgin);//zamienia tymczasowo "P329,P330,P331" na @ $split2=str_replace(',',"','",$tablicaTemp);//dodaje cudzysłowy $wynik="'".str_replace('@',$split[1],$split2)."'";//zamienia z powrotem @ na "P329,P330,P331" Teraz bez względu ile tych P*** w cudzysłowie będzie zawsze pobierze je poprawnie. Ten post edytował sasiadstar 28.02.2017, 10:43:05 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 7.10.2025 - 19:57 |