Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][PHP]Wyrażenia regularne
sasiadstar
post
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.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
sasiadstar
post
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
Go to the top of the page
+Quote Post

Posty w temacie


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: 7.10.2025 - 19:57