Új hozzászólás Aktív témák
-
moltam88
tag
válasz trisztan94 #14830 üzenetére
A megoldásodban, ha a $data tömbben nem létezik a $pageID által meghatározott index, akkor a PHP notice-t dob (ettől még működni fog a dolog, de nem ez a legszebb megoldás).
A kérdésre a konkrét válasz, vagyis a következőképpen lehet megnézni, hogy egy tömbben létezik-e adott index-ű elem:
isset($data[$pageID])
vagy
array_key_exists($pageID, $data).
Ebben az esetben tehát a legjobb megoldás így ellenőrizni:
if (isset($data[$pageID]) && $data[$pageID] !== "N") {} (persze a konkrét esetben lehet nem erre kell vizsgálni, de a lényeg, hogy ilyenkor célszerű az isset()-et használni)
[ Szerkesztve ]
-
moltam88
tag
válasz Speeedfire #14970 üzenetére
By default, function arguments are passed by value (so that if the value of the argument within the function is changed, it does not get changed outside of the function). To allow a function to modify its arguments, they must be passed by reference.
Vagyis alapértelmezetten érték szerinti paraméterátadás történik, új memóriát foglal a paraméternek.
-
moltam88
tag
válasz Speeedfire #14975 üzenetére
Délután találtam még egy érdekes dolgot, de csak most tudtam utána nézni:
A referencia szerinti paraméterátadás nagyobb objektumok, tömbök esetén jelentősen gyorsabb mint az érték szerinti. Korábban a jobb teljesítmény elérése céljából nagy figyelmet kellett erre fordítani a paraméterátadás módjának, viszont PHP 5.0 bevezetésével megjelent a copy on write technika, melynek lényege, hogy az érték szerint átadott paraméter nem másolódik le a hívás pillanatában. A másolás lusta módon történik, csak abban az esetben, ha módosításra, írásra kerülne sor.
ForrásHivatalos dokumentációban pedig itt szerepel.
Szerintem így nem kell nagyon foglalkoznod a referencia szerinti paraméterádással, ha csak nincs rá kifejezetten szükséged.
Ez nekem is új dolog
[ Szerkesztve ]
-
moltam88
tag
válasz trisztan94 #15288 üzenetére
(A kérdést én is passzolom, nem próbálkoztam még ilyennel)
-
moltam88
tag
válasz Sk8erPeter #15291 üzenetére
Tuti, hogy több form-uploadXLS class-szal rendelkező elemnek kell lennie a DOM-ban.
Nálam ezzel a HTML-el:
<!DOCTYPE html>
<html>
<head>
<script src="http://code.jquery.com/jquery-1.11.0.min.js"></script>
</head>
<body>
<form class="form-uploadXLS" method="post" action="php/uploadXLS.php" enctype="multipart/form-data">
<div class="form-group">
<div class="col-md-12">
<input type="file" name="xls" class="xls" />
</div>
</div>
<input type="button" value="Upload" class="btn-uploadXLS" />
</form>
<script type="text/javascript">
console.log($('.form-uploadXLS')[0]);
console.log($('.form-uploadXLS')[1]);
</script>
</body>
</html>a következő outputot kapom konzolban:
<form class="form-uploadXLS" enctype="multipart/form-data" action="php/uploadXLS.php" method="post">
undefined(Elég egyértelmű volt, de nem hagyott nyugodni a gondolat, hogy létezhet-e ilyen...)
[ Szerkesztve ]
-
moltam88
tag
válasz trisztan94 #15304 üzenetére
A példa egy parancssori curl hívás, itt a manual hozzá: http://curl.haxx.se/docs/manpage.html
A -X paramétert elvileg megadtad a következővel: curl_setopt($cURLHandler, CURLOPT_POST, true);
A -H -t pedig ezzel: curl_setopt($cURLHandler, CURLOPT_HTTPHEADER, array('Content-Type: text/plain'));Az url-t is curl_setopt()-tal kell megadni: curl_setopt($ch, CURLOPT_URL, $url); A GET-es paramétereket küldd az url-hez hozzáfűzve (rakd bele őket egy tömbbe, és az url-hez fűzd hozzá a következő módon: $url .= '?'.http_build_query($params); )
A data-binary-s részt még nem használtam, de talán próbáld meg ez alapján:
http://stackoverflow.com/questions/14920475/curl-post-of-custom-binary-data-not-form-contents[ Szerkesztve ]
-
moltam88
tag
válasz trisztan94 #15329 üzenetére
Regulárisnak próbáld ki ezt:
/(\d{4})\s+(.*?)\s+(.*)/ [link] -
moltam88
tag
válasz trisztan94 #15328 üzenetére
Ha jól értem itt az a probléma, hogy változhat az oszlopszám, de úgy kell előállítani a stringet, hogy a cellák között mindig legyen egy szóköz.
Erre nem igazán értem miért próbálkoztál switch-el, mikor az összes cellára ugyanazt kell csinálni.
Lehetne valami ilyesmi módszerrel:
- A belső ciklus előtt létrehozol egy temp változót üres sztringgel, ebben fűzöd össze az aktuális sorban levő címet az oszlopokból.
- A belső ciklusban a cella értékét trimelve hozzáfűzöd a temp változóhoz, illetve hozzűfűzöl egy szóközt is.
- A belső ciklus után nyomsz egy trimet a temp változóra (ez kiveszi az utolsó cella után rakott szóközt). Itt ellenőrizheted, hogy megfelelő adat van-e benne (illeszkedik-e rá a reguláris, nem üres-e, stb.), és ha igen akkor feldolgozod, ahogy szeretnéd.[ Szerkesztve ]
-
moltam88
tag
válasz Sk8erPeter #15334 üzenetére
Igen, az irányítószám után érdemes lehet szigorúbban vizsgálni, és nem .* -gal, erre valóban nem gondoltam. Egyébként az se biztos, hogy van a közterületnek típusa (utca, út, tér, stb.), én találkoztam már olyannal is, hogy pl.: Vasútállomás 23. (szolgálati lakás volt a máv-nál, vagy ilyesmi...). Így talán inkább érdemes 3 részre bonatani a vizsgálatot:
- irányítószám 4 jegy
- városnév (karaktermegkötésekkel)
- utána meg nagyjából bármi lehet, karakterekre érdemes szűrni.Mindenesetre mi példáink alapján össze lehet rakni egy szigorúbb verziót is
Ezt most találtam rá: http://regex101.com, a fenti regexet is erről linkeltem. Első ránézésre sokkal többet tud mint a regexpal, pedig korábban én is azt használtam.
[ Szerkesztve ]
-
moltam88
tag
válasz csabyka666 #15471 üzenetére
Nem használtam még mail() -t, de nem lehetm, hogy mindkét helyen utf-8 kódolást kellene megadnod? ($headers-ben iso-8859-1 -et írtál)
-
moltam88
tag
válasz Speeedfire #15682 üzenetére
Amiket írsz, azok futás közben keletkezett hibák (notice, warning, stb.), nem kivételek. A try-catch blokk csak a futás közben keletkezett kivételeket kapja el (Exception osztály, és azok leszármazottai).
Olvasd át a php.net-en levő leírást, és kódrészleteket a kivételkezeléssel kapcsolatban, biztos hogy sokat fog segíteni: [link]
Ha a hibákat akarod eltüntetni, akkor ajánlott azokat kijavítani, és nem csak a megjelenítést kikapcsolni. Természetesen van lehetőség a hibák megjelenítésének kikapcsolárása is: a php.ini-ben kell kikapcsolni a megjelenítésüket, vagy php-ben az ini_set() függvénnyel. Ebben az esetben a display_errors és az error_reporting opciókra lesz szükséged.
-
moltam88
tag
válasz tothjozsi96 #16497 üzenetére
isset() helyett !empty() -t használj. Az empty() true-t ad vissza, ha a változó nem létezik, vagy üres a tartalma (konkrétan false-al való egyezőséget vizsgál).
Bővebb leírás PHP.net-en.
-
moltam88
tag
válasz EmberXY #17031 üzenetére
Az URL-t így kiegészítve működik a szűrés: http://atw.hu/toplista?id=3.
(Ez egyébként nem törvényszerű, csak éppen szerencséd van, és úgy csinálták meg, hogy url paramétert is figyelik a szűrésnél, nem csak a form-ban elküldöttet).
Az egyenlőségjel után kell megadni a kategória azonosítóját, amit html-ből tudsz kinézni. A forráskódban (ctrl+u billenyűkombinációval meg tudod nyitni a böngészőben) a value="kategória azonosító" részből kapod az id értékét (pl. 1-es Állat-növény, 2-es általános, stb.):
<option value="1">Állat-növény</option>
<option value="2">Általános</option>
<option value="3" selected>Autó-motor</option>
<option value="4">Cég</option>
<option value="5">Család</option>
<option value="6">Divat</option>[ Szerkesztve ]
Új hozzászólás Aktív témák
- Kormányok / autós szimulátorok topicja
- Politika
- Soundbar, soundplate, hangprojektor
- Kerékpárosok, bringások ide!
- Apple Watch Sport - ez is csak egy okosóra
- AMD Navi Radeon™ RX 6xxx sorozat
- PayPal
- Gurulunk, WAZE?!
- Pécs és környéke adok-veszek-beszélgetek
- Itt az első kép a 2024-es Nokia 3210-ről
- További aktív témák...
Állásajánlatok
Cég: Ozeki Kft.
Város: Debrecen
Cég: Promenade Publishing House Kft.
Város: Budapest