Új hozzászólás Aktív témák
-
Lacces
őstag
Hello!
Van valami bevált módszer, ami tényleg működik is, és arról leírás , hogy hogyan kell egy szövegből kiszedni az összes html cuccót?
szöveg,<input" style="width:350px" maxlength="90" /> valami szöveg még <p> még szöveg </p>
Na, innen minden html tagot ki kellene szedni, de hiába regexpezek még... eddig nem jártam sikerrel. -
-
Soak
veterán
-
Lacces
őstag
Lenne még egy kérdésem:
Mintaillesztéssel kapcsolatban, a legutolsó variácót dobom ide...
Adott egy html szöveg, ahol a hiperhivatkozásokat kellene úgymond cserélni... de egyelőre a megtalálása sem megy.
$content a szöveg amin végig megy.
$links amibe gyűjteném.
preg_match_all() - itt a minta már a sokadik, már keresgélek... kínomban.
function LinksReplace( $content )
{
$links = null;
// Linkek keresése az eredeti tartalomban
preg_match_all("|<a[^>]+href\=\"(http\:\/\/.*)\"[^>]*>.*</a>|U", $content, $match, PREG_SET_ORDER );
var_dump($match);
foreach( $match as $m )
{
$links[] = $m;
}
return $links;
}
próbálgattam $m[1] és a társaival sem, de nem jött össze. Meg más mintákkal is.
Valakinek valami ötlet? -
MODERÁTOR
válasz Sk8erPeter #11547 üzenetére
József a főgonosz!
"Ott szimatol a sarkadban vasfogait csattogtatva, minden egyes hétköznapod: kirúzsozott medvecsapda."
-
Lacces
őstag
válasz Sk8erPeter #11556 üzenetére
köszi, amúgy érdekes nekem '/' helyett '#'-el működött rendesen.
-
Lacces
őstag
Adott a következő kód, lekérdezés az adatbázisból:
$r = APP::Loader( 'db' )->Query( $q ); // ez a queryt lekérdezi jó
while ( $a = mysql_fetch_assoc( $r ) )
//while ( $a = APP::Loader( 'db' )->Fetch_Assoc( $r ) )
{
$datas[$a['label_description']] = $a['l_id'];
}
echo 'r: ';var_dump($r); echo '<br>';
echo 'a: ';var_dump($a); echo '<br>';
echo 'datas: ';var_dump($datas);echo '<br>';
return $datas;Az a baj, hogy az $a az egy false... pedig $r-nek van értéke.
PhpMyAdmin-ban a lekérdezés jó, visszajön eredménnyel. Ilyennel még nem találkoztam az eredménynél:
r: resource(52) of type (mysql result)
a: bool(false)
datas: NULLMi lehet itt a gond? Miért nem jó? Miért nem tudja kiszedni az infókat?
-
-
Sk8erPeter
nagyúr
válasz Lacces #11559 üzenetére
Tényleg nem sokat árultál el a szerkezetről, ahogy Athlon64+ hsz.-éből is kiderül.
"Ilyennel még nem találkoztam az eredménynél:
r: resource(52) of type (mysql result)
a: bool(false)
datas: NULL
"Az $r értelemszerűen egy erőforrás-azonosító, az $a-nak a false visszatérési értéke meg gondolom jelzi, hogy valami gáz van, a $datas meg ebből következően üres.
Csak jelzem, hogy a data (adatok) eleve többesszám, nem kell mögétenni az "s"-t.Sk8erPeter
-
Lacces
őstag
válasz Peter Kiss #11560 üzenetére
Bízz bennem az a rész jó.
Sk8erPeter Nem lehet valahogy több infót kiszedni, hogy mi a gáz?
(ha legalább adatbázisban nem működne a lekérdezés... plusz egy teljesen jó lekérdezést is lemásoltam, csak a queryString-et változtattam meg... de ugyanúgy semmi eredmény.
Meg engem az 'a' értéke érdekel, hogy miért az...Átírtam az egész lekrédezést mysqli-re és pdo-ra.
mysqli kód:
$q = "SELECT `scms_ws_label`.`label_description` as `label_description`,`scms_ws_label`.`label_id` as `l_id`
FROM `scms_ws_label`
WHERE `scms_ws_label`.`label_cat` = 'Main_Absatzhöhe' ORDER BY `scms_ws_label`.`label_description`";
$DB_NAME = 'cipoplaza_bettle';
$DB_HOST = 'localhost';
$DB_USER = 'bettle';
$DB_PASS = 'KKsh3c7W6T6Fb46N';
$mysqli = new mysqli($DB_HOST, $DB_USER, $DB_PASS, $DB_NAME);
$r = $mysqli->query($q);
while ( $a = $r->fetch_assoc() )
{
$datas[$a['label_description']] = $a['l_id'];
}mysqli kimenete:
r: object(mysqli_result)#16 (0) { }
a: NULL
datas: NULLPdo kód:
$q = "SELECT `scms_ws_label`.`label_description` as `label_description`,`scms_ws_label`.`label_id` as `l_id`
FROM `scms_ws_label`
WHERE `scms_ws_label`.`label_cat` = 'Main_Absatzhöhe' ORDER BY `scms_ws_label`.`label_description`";
$db = new PDO('mysql:host=localhost;dbname=titkos;charset=utf8', 'titkos', 'titkos');
$stmt = $db->query($q);
while ( $a = $stmt->fetch(PDO::FETCH_ASSOC) )
{
$datas[$a['label_description']] = $a['l_id'];
}Kimenete:
$stmt: object(PDOStatement)#16 (1) { ["queryString"]=> string(231) "SELECT `scms_ws_label`.`label_description` as `label_description`,`scms_ws_label`.`label_id` as `l_id` FROM `scms_ws_label` WHERE `scms_ws_label`.`label_cat` = 'Main_Absatzhöhe' ORDER BY `scms_ws_label`.`label_description`" }
a: bool(false)
datas: NULL[ Szerkesztve ]
-
Sk8erPeter
nagyúr
válasz Lacces #11562 üzenetére
Miért label_description szerint rendezed a tömböt, miért nem id szerint?
Amúgy a $data tömböt kéne még deklarálni a ciklus előtt, bár nem mintha pont ez lenne a baj.
$data = array();
while(...){
$data[] = ....;
}állítsd kivételdobálásra a PDO-t:
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);Van még ilyen is: errorInfo
Az eredményhalmazon egyébként foreach-csel is végig lehet rohangászni, és érdemes is, ha már támogatja az ilyen jellegű iterációt:
foreach ($stmt as $key => $row) {
// ....
}Sk8erPeter
-
Lacces
őstag
válasz Sk8erPeter #11563 üzenetére
Látom, semmi sem kerüli el a tekintetedet... $data stb, azok megvannak csak máshol...
Azt az error-t meglesem.Igen a foreach, csak ha c++-os kódokat is nézek / tanulok, akkor hajlamos vagyok elfelejteni a foreach-et
-
-
syC
addikt
Sziasztok.
Egy kis ötletre lenne szükségem. Egy hosszú php kérést futtatok és szeretnék közben valahogyan kiíratni információkat a futás állapotától függően. Tanácsot szeretnék kérni, hogy Ki mivel oldaná meg.
Előre is köszi a válaszokat!
•
-
syC
addikt
HTML oldalakban keresgélek PHPvel, kb 20-30 másodperces a teljes kérés. CSS-el meg JavaScriptel dedobtam a töltési időre egy animációt, és az animáció alá szeretnék kiíratni sztringeket. Úgy gondoltam, hogy a lefutó PHP függvényt megszakítva JS függvénnyel lecserélem az animáció alatti sztringet. Eddig rossz nyomon jártam szerintem mert HTML objektum innerHtml részét módosítottam JS-el, de ez persze fáziskésében jelenítette meg a sztringet. Még agyalok, de minden ötletet örömmel fogadok.
•
-
fordfairlane
veterán
válasz Lacces #11559 üzenetére
Az a baj, hogy az $a az egy false... pedig $r-nek van értéke.
$r egy mysql resource, a while pedig addig teker, amíg a fetch false-sal tér vissza. Így tehát normális, hogy $a-ban false van a while ciklus után. Ez valószínűleg egy üres result, a query feltételei nem teljesülnek egy sorra sem.
[ Szerkesztve ]
x gon' give it to ya
-
Használhatsz AJAX-ot erre, először lemarod a HTML-t valamibe, aztán X darab soronként keregélsz benne, ez azt jelenti, hogy összes_sor/X darab AJAX lekérdezésed lesz. Egyébként szerintem keresni kellene valami értelmesebb megoldást, vagy gyorsítani a keresésen.
Tényleg, hogyan keresel?
[ Szerkesztve ]
-
syC
addikt
válasz Peter Kiss #11570 üzenetére
Lennének ötleteim a gyorsításra, de azért lecsuknának. Maradok az ajaxnál, megnézem . Köszi a tippet.
szerk:
#11572 Sk8erPeter: Sajna nem lehet tudni pontosan, dinamikusan történik az egész.
[ Szerkesztve ]
•
-
Azért az tényleg fontos lenne, hogy hogyan keres, illetve, mi a cél (elég, ha egy szó megtalálható például, mert akkor nem strstr, hanem strpos-t kell használni, ilyenek).
Egyébként lennék annyira kretén, hogy a HTML-t betolnám egy FULLTEXT indexes adatbázisba, és azzal kerestetném. Ha nagy az anyag, akkor szétdarabolom, és akkor máris tud több szálon dolgozni (FULLTEXT helyett jó lehet a LIKE).
-
syC
addikt
html oldalakat keresek html dom parserrel. html-ből domfát építek, aztán keresek valamilyen jelölő vagy attr alapján. Egy html lap átlag 8-10k sor, és általában van 6 db minimum.
•
-
-
syC
addikt
-
-
syC
addikt
-
syC
addikt
5 oldal, összesen ~ 20k sorból 5 keresés:
strstr + strpos: 5.3544 s
dom: 10.2557 sHát most meglepődtem.
szerk: mértékegység..
[ Szerkesztve ]
•
-
Sk8erPeter
nagyúr
Végül is annyira nem meglepő: a DOMDocumenttel (szerk.: vagy más DOM parserrel) való feldolgozás segítségével sokkal komplexebb dolgokat is tudsz művelni a feldolgozott, parse-olt dokumentummal, mint egy sima stringben történő kereséssel. A plusz komplexitás meg időbe kerül.
[ Szerkesztve ]
Sk8erPeter
-
syC
addikt
válasz Sk8erPeter #11580 üzenetére
Jellemző rám, hogy mindig mindent a lehető legbonyolultabban csinálok.. Azt hittem, hogy kb. ugyan olyan gyors lesz a két keresés. Ennek ellenére az eredmény magáért beszél. A parsert kényelemből használtam, de akkor most nekiállok és átírom a dolgokat parsermentesre. Kiváncsi vagyok úgy a végeredményre, hogy összességében mennyit nyertem.
•
-
-
-
pvt.peter
őstag
Sziasztok!
Ki milyen módszert használ biztonságos adatok leellenőrzéséhez mielőtt beszúrásra kerülnének ezek az adatok adatbázisba?
Illetve ki milyet ajánl?
Én eddig ezzel a fgvnyel próbálkoztam:
function check($value){
if (get_magic_quotes_gpc()){
$value = stripslashes($value);
}
$value = "".mysql_real_escape_string($value)."";
return $value;
}Ez egy .50-es rombolópuska, elég szép visszarúgással.
-
sztanozs
veterán
válasz pvt.peter #11584 üzenetére
XSS ellen nem vééééd, de ... paraméterezett lekérdezés - és nem kell semmit ellenőrizni, escapelni és trükközni.
[ Szerkesztve ]
JOGI NYILATKOZAT: A bejegyzéseim és hozzászólásaim a személyes véleményemet tükrözik; ezek nem tekinthetők a munkáltatóm hivatalos állásfoglalásának...
-
syC
addikt
válasz Peter Kiss #11583 üzenetére
Hogy lehet a leggyorsabban megoldani az oldal feldolgozást?
Adott egy 300ezer karakteres sztring..
Most úgy keresek , hogy strpos-sal adott szintaktikára keresek, és for ciklussan ezen szintaktikák közötti láncot karakterenként átmásolom egy másik változóba. K. lassú. 30 sec alatt sem végez.
•
-
substr-rel biztosan gyorsabb a másolás, de egyébként arra kellene törekedni, hogy ki lehessen zárni egyes részeket (valahogyan részekre bontani [pl. sorok], és azokban keresni dolgokat előbb, teszem azt, ha nincs benne 'y' betű, akkor nemérdekel többé). Esetleg mixelni az SQL-es megoldással, amit már említettem. Lehetne használni reguláris kifejezéseket is egyes helyeken.
-
syC
addikt
oldal: 299353 karakter t=1.4875s
olvasás t=3.1578 s
olvasás t=2.5427 s
olvasás t=2.0526 s
olvasás t=1.4747 s
olvasás t=1.6876 s
olvasás t=1.1429 s
olvasás t=1.1154 s
olvasás t=1.0605 s
olvasás t=1.0415 s
olvasás t=0.9772 s
olvasás t=0.9598 s
olvasás t=0.9253 s
olvasás t=0.8791 s
olvasás t=0.8455 s
olvasás t=0.8204 s
olvasás t=0.8072 s
olvasás t=0.7699 s
olvasás t=0.8599 s
olvasás t=0.6798 s
olvasás t=0.674 s
olvasás t=0.6491 s
olvasás t=0.6023 s
olvasás t=0.601 s
olvasás t=0.5674 s
olvasás t=0.5536 s
olvasás t=0.5208 s
olvasás t=0.4752 sEgy olvasás alatt 2 keresés van strpos-al. Az utolsó után elszáll. A bazi nagy sztring lassítja a dolgot. Ahogy csökken a sztring mérete, gyorsul a keresés - ki gondolta volna .
•
-
Sk8erPeter
nagyúr
Azon gondolkoztam, hogy vajon mi indokolja a print_r használatát mondjuk a var_exporttal szemben?
A var_export kimenete egyből felhasználható kódrészletként is, ráadásul jól átlátható kimenetet produkál, míg ugyanez a print_r kimenetére szerintem nem igaz, eleve kevésbé átlátható.
De biztos van valami szempont, ami hirtelen nem jut eszembe.
Még régen mindig a print_r használatát láttam kódokban, így eleinte én is átvettem, de aztán rájöttem, hogy sokkal jobban járok a var_exporttal, ennek a kimenetét az IDE-k is is tudják highlightolni, így könnyebb benne megtalálni, amit keresek.[ Szerkesztve ]
Sk8erPeter
-
Coyot
őstag
válasz Sk8erPeter #11590 üzenetére
print_r úgy működik,mint a var_dump, de tudod visszaadatni vele az értéket( a var_dump azonnal a kimenetre tol mindent).
var_export, meg php-ban felhasználható formában jeleníti meg az értékeket.
nem biztos hogy jól tévedek, de lehet
Má' nem
-
Speeedfire
nagyúr
válasz Sk8erPeter #11590 üzenetére
ennek a kimenetét az IDE-k is is tudják highlightolni
Ezt kifejtenéd?
Én mondjuk a sima var_dump-ot szoktam használni.Fotóim https://fb.com/toth.szabolcs.art || IG: http://instagram.com/_tothszabolcs_ || Weblapom http://szabolcs-toth.com
-
Sk8erPeter
nagyúr
Nem igaz, mert a var_export sem tol mindent egyből a kimenetre, ha TRUE-ra állítod a második paramétert. És én így használom.
(#11592) Speeedfire :
úgy értem, hogy ha egy mondjuk nincs kéznél normális debugger, akkor pl. egy buzinagy tartalmú változó kimenetét becopy-paste-elhetem egy IDE-be, és az highlightolja nekem a kódot.
Ja, és ott a var_dump is, ami szintén nem kódban felhasználható kimenetet ad.[ Szerkesztve ]
Sk8erPeter
-
Speeedfire
nagyúr
válasz Sk8erPeter #11593 üzenetére
Ja, hogy ja.
Fotóim https://fb.com/toth.szabolcs.art || IG: http://instagram.com/_tothszabolcs_ || Weblapom http://szabolcs-toth.com
-
válasz Sk8erPeter #11590 üzenetére
Resource-öket mindig NULL-ként exportálja, ami által hülyeséget láthat a fejlesztő, miközben hibát keres, a print_r()-rel és a var_dump()-pal nem fordul elő ilyen.
-
Coyot
őstag
válasz Sk8erPeter #11593 üzenetére
de a var_export más formában adja vissza a vizsgált változókat mint a másik kettő, tehát alapműködésben teljesen más.
Má' nem
-
Sk8erPeter
nagyúr
válasz Peter Kiss #11595 üzenetére
Na, ez a szempont még nem jutott eszembe. Mondjuk resource-okhoz tartozó változókat nem is túl sokszor debuggolok szerencsére...
Rájöttem, hogy még a var_dump() nagy előnye lehet, hogy kiírja a stringek, tömbök, stb. hosszát is, ez legalább informatív. Ezenkívül még egy nagy plusz a var_dump() mellett, hogy az Xdebug defaultból szépíti az ilyen módon kiíratott változókat.
Mondjuk ha valaki szépen akarja látni ezeket a változókat, használjon például Krumo-t: [link].A print_r() mellett viszont eddig kb. semmi nem szólt.
(#11596) Coyot :
"de a var_export más formában adja vissza a vizsgált változókat mint a másik kettő"
És szerinted én korábban miről beszéltem?
Pont ezt mondtam, hogy a másik kettő nem használható fel kódrészletként, tehát IDE sem highlightolja, ha bemásolod a kimenetet, viszont a var_exportnak megvan ez az igen nagy előnye. Plusz szemre is könnyebb átlátni szerintem, mint pl. a print_r() kimenetét."alapműködésben teljesen más"
A kiíratás módjában vannak különbségek, a cél hasonló.Vegyünk konkrét példát, kiíratom a $_GET változót, úgy, hogy mondjuk az alábbi címet írom be:
http://test.local/index.php?asd=tenisz%C3%BCt%C5%91&id=123&blabla=qweqwe&foo=bar&data[]=rtetz&data[]=ertwer&data[]=423
print_r() kimenete (előny: számomra ismeretlen):
var_dump() kimenete (előny: informatív adatok, pl. tömbök, stringek hossza; valamint a default Xdebug-támogatottság):
var_dump() engedélyezett Xdebuggal:
var_export() kimenete (előny: a kód egyből felhasználható kódként):
Sk8erPeter
-
Soak
veterán
válasz Sk8erPeter #11597 üzenetére
Én mindig a var_dump() és Xdebug kombót használom, mert elég sok és gyorsan értelmezhető infot ad, ha ez nem elég akkor általában más bug van, ha kisebb a projektekt és megoldható, érdemes a netbeans debug sessionnel végiglépkedni a változókon .
-
Coyot
őstag
válasz Sk8erPeter #11597 üzenetére
Meg mertem volna esküdni hogy a var_dump és a print_r uabban a formában adja vissza az adatot, de ha nem, hát nem
Má' nem
Új hozzászólás Aktív témák
- Vírusirtó topic
- Rossz üzlet az EV-kölcsönzés
- MIUI / HyperOS topik
- A személyre szabott reklám lehet a streaming következő slágere
- EAFC 24
- Retro teló rajongók OFF topicja
- AMD K6-III, és minden ami RETRO - Oldschool tuning
- Van, amit nehéz lett megtalálni a Google keresőjével
- Székesfehérvár és környéke adok-veszek-beszélgetek
- Pécs és környéke adok-veszek-beszélgetek
- További aktív témák...
- LG NanoCell 55NANO766QA Halvány píxel csík
- Philips 58PUS8545/12 1 ÉV GARANCIA Játék üzemmód
- Tyű-ha! HP EliteBook 850 G7 Fémházas Szuper Strapabíró Laptop 15,6" -65% i7-10610U 32/512 FHD HUN
- Bomba ár! HP EliteBook 840 G5 - i5-8G I 8GB I 128GB SSD I 14" FHD I HDMI I Cam I W10 I Gari!
- The Last of Us Part I Ps5