Új hozzászólás Aktív témák
-
Taci
addikt
Azt találtam, hogy van benne (a load()-ban) ellenőrzés is:
Returnstrue
on success orfalse
on failure.Szóval akkor valószínűleg így jó lehet:
$xmlDoc = new DOMDocument();
if($xmlDoc->load($xml) === FALSE){
echo "hiba az xml-ben (content not valid). skip<br>";
}
És utána dolgozhatok az $xmlDoc-kal tovább, mert az if-ben így már a feltöltés (load()) is megvolt az ellenőrzéssel együtt.
Legalábbis remélem, jól logikázok.
-
Taci
addikt
Illetve lenne még egy kérdésem.
Adott ez a szkript, amivel azt ellenőrzöm, valid-e a link:
function testIfValidURL($url){
$headers=get_headers($url);
return stripos($headers[0],"200 OK")?true:false;
}
Erre a (csak a példa kedvéért, a vasárnapi ebédhez előkészített) linkre miért mondja azt, hogy nem valid?
$feed_link = "https://www.szeretlekmagyarorszag.hu/ime-a-tokeletes-toltott-kaposzta-receptje/";
if (testIfValidURL($feed_link) === FALSE){
echo "nem valid. skip";
}
Kiírja, hogy:
nem valid. skipDe miért?
Megnézi a szkript a header-t, hogy tartalmazza-e a "200 OK" visszatérési értéket. És tartalmazza, nyilván, legalábbis a link megnyílik, és Chrome dev tools-ban is ott világít zölddel a Network tab alatt, hogyStatus Code: 200 OK
Vagy az a baja, hogy nem az első tömbelemben ($headers[0]) van?Ha így nem tökéletes a fenti szkript, hogyan módosítsam, hogy az legyen, hogy minden ilyen helyzetet lekezeljen?
Köszi.
-
SUPREME7
addikt
301 redirect?
-
pelyib
tag
Mert az tenyleg nem "valid":
❯ curl -I https://www.hvg.hu/rss
HTTP/2 301
date: Sat, 22 May 2021 15:44:52 GMT
content-type: text/html
location: https://hvg.hu/rss
set-cookie: uid=AAseX2CpJvQogxXwVFngAg==; expires=Thu, 31-Dec-37 23:55:55 GMT; domain=hvg.hu; path=/
p3p: policyref="/w3c/p3p.xml", CP="CUR ADM OUR NOR STA NID"
cf-cache-status: DYNAMIC
cf-request-id: 0a3659447b00004abdaf9e5000000001
expect-ct: max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"
server: cloudflare
cf-ray: 65372b1a5c754abd-FRASzerintem ez a method nev becsapos, mert nem azt nezi, h valid e, hanem, h elerheto e. A ketto nem ugyan az.
A "https://ez.egy.valid.domain.com/valami/utvonal" valid URL, de nem letezik.update: masik link is 301
[ Szerkesztve ]
-
SUPREME7
addikt
válasz pelyib #20605 üzenetére
Cloudflare védelem vagy egyéb ellenőrzés miatt 301-gyel van átirányítva a cél url-re. Get_headers elvileg a curl-höz hasonlóan default követi a redirectet, szóval elvileg a kapott tömbben kellene lennie 200-as responsenak is (persze ha átengedte mondjuk a cloudflare, ami elég köcsög cucc...)
-
Taci
addikt
válasz SUPREME7 #20606 üzenetére
Köszönöm, hogy rámutattatok erre, sok mindent kiderült a válaszokból, pl. az is, hogy nagyon rossz sorokban néztem a header tartalmát. De kerestem YT-videót, és már látom, mit néztem be.
Valóban 301 Moved Permanently.
Arra gondoltam, akkor a lenti/fenti (ki-hogy nézi) szrkiptbe (testIfValidURL) raknék egy olyan részt, hogy vizsgálná a header-ben, hogy ha át van irányítva, akkor mit csináljon.
Valahogy így:if (stripos($headers[0],"301") || stripos($headers[0],"302")){
//
}
Pár kérdés ide:
1) Az úgy látom kb. fix, hogy az első elemet [0] jó ha vizsgálom, így megkaphatom a result code-ot. (Ez ugye ha jól látom, asszociatív tömbnél is [0], tehát rakhatom aget_headers($url, 1)
-be az "1"-et, így is a [0] fogja a státusz sorát azonosítani?2) A "200 OK" az adott. A 301 után mindig Moved Permanently van, vagy néha más is? (pl. Redirect) Elég így vizsgálnom, ahogy fent van, simán csak a 301-re? (Bár itt elég egyértelműen fogalmaz: [link] Na de már nem törlöm ki ezt a pontot.)
3) Ahogy látom, a 302 is átirányítás, csak más fajta. Vizsgáljam ezt is, ki tudja, hátha egyszer pont ezen "akadna fent"?
Arra gondoltam, ha azt találja, hogy át van irányítva (301 vagy 302), akkor vizsgálja meg a header-ben lévő Location alatt lévő linket.
Pl. a töltöttkáposztásnál ez van benne:
Location: https://www.szeretlekmagyarorszag.hu/rokaland/ime-a-tokeletes-toltott-kaposzta-receptje/ (a félkövérben változott)És ha ott 200 OK van a headerben, akkor végülis sikeres a teszt.
Ezt az ellenőrzést kicsit trükkösebb volt, de végül úgy sikerült, hogy így hívom meg:get_headers($url, 1)
Tehát beletéve az 1-est, és így asszociatív tömböt ad vissza. Aztán azt is láttam, hogy a "Location" kell nekem, abban van, hogy hova irányít. De pl. a káposztásnál 2 eleme is van, szóval azt is vizsgálnom kell, ha több van benne.
Mert pl. amire elsőre irányít ($headers['Location'][0]), annak a végén nincs "/", a másiknak meg ($headers['Location'][1]) van. És az első újra 301, ami átdob a másodikra, és az végül már 200 OK.Szóval körülményesen, de meg lehet oldani.
Jól csinálom így? Vagy van egyszerűbb módja?Köszi az iránymutatást.
-
Taci
addikt
Na jó, ezt nem értem.
Csináltam egy eléggé overkill funkciót az ellenőrzésre:
function testIfValidURL($url){
$headers=get_headers($url, 1);
$url_valid_state = "";
if (stripos($headers[0],"200 OK")){
//URL Valid
echo "URL is Valid (200 OK): " . $url . "<br>";
$url_valid_state = TRUE;
return TRUE;
//exit();
} else if (stripos($headers[0],"301") || stripos($headers[0],"302")){
//URL Redirected (301 or 302)
echo "URL Redirected (301 or 302): " . $headers[0] . ". Checking Location link.<br>";
if (array_key_exists('Location', $headers)){
if (is_array($headers['Location'])){
//Array
echo "Headers Location type is array.<br>";
$location_count = count($headers['Location']);
echo "location_count: " . $location_count . "<br>";
$url_valid_state_check = 0;
foreach ($headers['Location'] as $headers_location_value){
echo "Checking headers_location_value: " . $headers_location_value . "<br>";
if(testIfValidURL($headers_location_value)){
$url_valid_state_check++;
return TRUE;
//exit();
}
}
echo "url_valid_state_check: " . $url_valid_state_check . "<br>";
if ($url_valid_state_check > 0){
$url_valid_state = TRUE;
} else {
$url_valid_state = FALSE;
}
} else if (is_string($headers['Location'])){
echo "Headers Location type is string. Checking.<br>";
if(testIfValidURL($headers['Location'])){
$url_valid_state = TRUE;
}
}
} else {
echo "URL header doesn't include Location. Setting URL valid state to FALSE.";
$url_valid_state = FALSE;
}
} else {
echo "URL status code is unknown: " . $headers[0] . ". Setting URL valid state to FALSE.";
$url_valid_state = FALSE;
}
return $url_valid_state;
}
Az eredeti linkkel próbáltam:
https://www.szeretlekmagyarorszag.hu/ime-a-tokeletes-toltott-kaposzta-receptje/A kimenet:
URL Redirected (301 or 302): HTTP/1.1 301 Moved Permanently. Checking Location link.
Headers Location type is array.
location_count: 2
Checking headers_location_value: https://www.szeretlekmagyarorszag.hu/rokaland/ime-a-tokeletes-toltott-kaposzta-receptje
URL Redirected (301 or 302): HTTP/1.1 301 Moved Permanently. Checking Location link.
Headers Location type is string. Checking.
URL is Valid (200 OK): https://www.szeretlekmagyarorszag.hu/rokaland/ime-a-tokeletes-toltott-kaposzta-receptje/
Mondom nagyszerű, nézzük meg egy direkt elrontott linkkel is, utána írtam egy 1-est:
https://www.szeretlekmagyarorszag.hu/ime-a-tokeletes-toltott-kaposzta-receptje/1A kimenet:
URL Redirected (301 or 302): HTTP/1.1 301 Moved Permanently. Checking Location link.
Headers Location type is string. Checking.
URL is Valid (200 OK): https://www.szeretlekmagyarorszag.hu/eletstilus/1-arany-5-ezust-2-bronz-es-8-olimpiai-kvota/
Hát ez az 1 arany 5 ezüst dolog hogy került oda? (Kínomban röhögök már.)Kérem, valaki magyarázza el, mi történik itt.
Amúgy ha 123456-ot írok a végére, akkor meg megint a jó linkre dob tovább, és a korábban írt output lesz.Ez így megbízhatatlan, használhatatlan.
-
Taci
addikt
DOMDocument::load(): Extra content at the end of the document in xml_linkje, line: 1
Túl lett bonyolítva. Csak ezt a hibabejegyzést szeretném kezelni. Fogalmam sincs, mi okozta, valószínűleg "elírtak valamit" az xml-ben. (?) Innen jött az ellenőrzés ötlete, és onnan pedig minden más.De csak ezt szeretném kezelni, ha baj van az xml-el, akkor a foreach-ben kapjon egy continue-t (hibás fájllal ne dolgozzon), aztán majd javítják, a szkript meg pár perc múlva újra próbálja úgyis.
Ennek az 1 hibabejegyzésnek a kezeléséhez kérnek segítséget.
-
bhonti
aktív tag
-
Taci
addikt
válasz pelyib #20579 üzenetére
Sajnos nem igazán jutok előrébb vele, egyszerűen akárhány Google-találatot próbáltam végig a témára, nem tudtam használható eredményt produkálni.
Adott pl. ez a link:
https://www.szeretlekmagyarorszag.hu/rokaland/ime-a-tokeletes-toltott-kaposzta-receptje/A forrásából kellene nekem mondjuk a charset:
<meta charset="UTF-8">
Vagy egy kép linkje:<meta property="og:image" content="https://www.szeretlekmagyarorszag.hu/wp-content/uploads/2020/12/CSP_6335-másolat.jpg"/>
1)
Hogyan kell ezt kiszedni? (getElementsByTagName
-mel pl. Mert sztringként megvan, de az "nem szép megoldás")2)
Mivel az összes soron amúgy is végig megyek:$all_lines = file($feed_link);
foreach ($all_lines as $line_num => $line) {
//
}
Esetleg fel lehet ezt használni agetElementsByTagName
-mel (vagyByID
, vagy bármi, ami kell) kombinálva? Az sem baj, ha nem, csak ha már úgyis végigmegy minden soron, hátha.Köszönöm.
@bhonti: Köszönöm, igen, végül számomra is ez lett a konklúzió.
[ Szerkesztve ]
-
disy68
aktív tag
Töltsd be az egészet a
DOMDocument::loadXML
-el, kigyűjtöd az összes meta taget és az attribútumok alapján feldolgozod.$docNode = DOMDocument::loadXML($documentAsString);
$metaNodes = $docNode->getElementsByTagName('meta');...
“Yeah, well, you know, that’s just, like, your opinion, man.” — The Dude
-
Mike
veterán
van itt olyan aki már fejlesztett appot? miben gondolkodjak? React? vagy van helyette vmi generátor ami kényelmesebb, gyorsabb (oké korlátozottabb) olyan mint mondjuk a webes tartalomra a Wordpress?
-
Taci
addikt
válasz disy68 #20612 üzenetére
Sajnos ezzel sem működött (de köszönöm azért). Végül így sikerült megoldanom:
function file_get_contents_curl($url)
{
$ch = curl_init();
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
$data = curl_exec($ch);
curl_close($ch);
return $data;
}
(Egy 100. oldalon lévő Google-találatban leltem.)
-
Mike
veterán
azért egy kis erro kezelés nem árt
$result = curl_exec($ch);
$result_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
if($errno = curl_errno($ch)) {
valami
}
curl_close ($ch);
én még tettem bele egy kis json átalakítést is, úgyis mindig abban jön vissza a válasz (kivéve a Gyevi bírót)
$res = array("result" => json_decode($result, true), "result_code" => $result_code);
return $res;
-
zapikanka
tag
Sziasztok,
curl-al szeretnék elérni egy webservice-t és ehhez kétszer is authentikálnom kell a vállalati hálózat miatt. Ehhez a saját felhasználónevemet használom, de nem szeretném kódban tárolni se a usernevem se a jelszavam. Tudok esetleg valami megoldást erre, hogy a lenti kódban hogyan tudnám úgy tárolni ezeket, hogy aki a szerveren megnyitja ezt a php file-t az ne lássa egyből a user/pw párosomat?
$ch = curl_init();
$service_url = "https://google.com";
$user = "user";
$pw = "PW";
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_NTLM);
curl_setopt($ch, CURLOPT_USERPWD, $user.':'.$pw);
$proxy_url = "proxyURL";
$proxy = true;
if ($proxy) {
curl_setopt($ch, CURLOPT_PROXY, $proxy_url);
curl_setopt($ch, CURLOPT_PROXYUSERPWD, $user.':'.$pw);
curl_setopt($ch, CURLOPT_PROXYAUTH, CURLAUTH_NTLM);
}
curl_setopt($ch, CURLOPT_URL, $service_url);
curl_exec($ch);
curl_close ($ch);[ Szerkesztve ]
-
sztanozs
veterán
válasz zapikanka #20618 üzenetére
pl titkosított config fájl, amihez a kulcsot/certificate-et a webserver felhasználói certificate store-ban tárolod.
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...
-
pelyib
tag
válasz zapikanka #20618 üzenetére
Docker container + env valtozo
Vagy csak siman letrehozol egy credential.php-t.
Ezt a filet hozzaadod a gitignor-hoz, h veletlenul se commitold.
Ahol meg kell ott is_readableupdate: "h ne lassa mas" azt csak masodik olvasara lattam. Ez igy eleg para. Ilyenre ugranak az ITsec kollegak minden cegnel. Mar az aggalyos h plaintext-ben van a jelszo, de megfejeled meg azzal, h megosztott helyre fel is toltod.
Esetleg meg lehet nezni, h nincs e valami token / key alapu auth a hasznalni kivant servicenek.
[ Szerkesztve ]
-
Taci
addikt
Segítséget kérnék a következő témában:
így néz ki kb. az egyik php fájl tartalma:
$valtozo1 = "érték";
function fuggveny1($valtozo, "string"){
// dolgozzon a $valtozo-val és a string-gel
}
fuggveny1($valtozo1, "szöveg1");
Eddig minden oké.
Aztán ezután jön pár dolog, amivel nem boldogulok. Újabb függvények, amiben ezt a függvényt hívnám meg újra. Viszont paraméternek nem adhatom át.function fuggveny2(){
fuggveny1($valtozo1, "szöveg2");
fuggveny3();
}
És itt fontos, hogy a $valtozo1 az fix. Viszont nem viszi át az értékét a függvényen belülre.
Próbáltam global kulcsszóval, valamiért azzal sem:function fuggveny2(){
global $valtozo1;
fuggveny1($valtozo1, "szöveg2");
fuggveny3();
}
Aztán sajnos még tovább bonyolódott a dolog, mert jött egy másik függvény, amiben ez az előző van benne, így már duplán nem tudom, hogyan tudnám olyan "mélyre" (2 függvény mélységébe) bevinni a változót:
function fuggveny3(){
fuggveny1($valtozo1, "szöveg2");
}
Hogyan kell ezt megoldani, ha paraméternek nem adhatom át?
Hogyan tudok "külső" (függvényen kívüli) értékeket függvényen belül használni, akármilyen mélységben?A 3. függvényt a 2. hívja. Ha én használni akarok egy változót a 3. függvényben, ami teljesen kint van definiálva, akkor azt előbb be kell vinnem a 2. függvénybe, hogy aztán bevihessem a 3.-ba?
Nagyon nem értem ezt.
Köszönöm, ha el tudjátok magyarázni.
-
Taci
addikt
Talán így átláthatóbb és egyszerűbb a kérdésem:
$szoveg = "almafa";
function fuggveny1(){
echo $szoveg;
}
function fuggveny2(){
fuggveny1();
}
Hogyan tudom eljuttatni a $szoveg változó tartalmát (paraméterek használata nélkül) a fuggveny1-be, miközben azt előbb a fuggveny2-nek kell meghívnia, csak azon keresztül fut le?
-
SUPREME7
addikt
$szoveg = "almafa";
function fuggveny1(){
global $szoveg;
echo $szoveg;
}[ Szerkesztve ]
-
sztanozs
veterán
Amit szeretnél az egy combos tervezési hibának tűnik. Gondold át hogy miiért szeretnéd meghívni azt, milyen paraméterekre van szükséged, hol keletkezik és annak megfelelően tervezd át a hivásokat.
[ 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...
-
Taci
addikt
válasz sztanozs #20625 üzenetére
Nincs itt nagy baj, se tervezési hiba. (@polymorphin) Sok helyen van meghívva már a függvény, el akartam kerülni, hogy mindenhol át kelljen írni a paraméterezés miatt.
De ha aglobal
kerülendő (mi miatt amúgy?), akkor inkább átírom.@SUPREME7: Írtam is, hogy a global-lal próbáltam, de valamiért az egyik függvénynél/értéknél nem volt hajlandó működni. De mindegy is, nem is javasolt, meg inkább megcsinálom az átírást.
Köszi.
Amúgy az bonyolítja be nagyon nálam, hogy 23 db külső forrásból kell dolgoznom, és 24 féle képpen kezelik a dolgokat, amit nekem egy szkriptben kell lekezelni, és ez néha kuszává teszi.
Most a legtöbb probléma a következő miatt jött fel:
Írtam korábban, hogy ellenőriznem kellett, hogy valid linkekkel dolgozom-e. Ott ugye jött az átirányítás "problémája". Megoldottam.
De aztán jött az, hogycurl
-lel (is) kell dolgoznom ezeknek a linkeknek a tartalmán. És most pont az átirányítós probléma miatt jött fel egy újabb:
"failed to open stream: Redirection limit reached, aborting"Kiszedtem hát a header-ből a "Location" alól (persze ettől bonyolultabban), mert ugye így megvan a végső cím, és akkor nem lesz ilyen átirányítós probléma.
De aztán jött egy olyan forrás, ahol nemes egyszerűséggel a "Location"-be (már ha épp így írják, és nem csupa kisbetűvel) már nem a teljes átirányított linket rakják be (mert hát ugye miért is lenne egységes), csak a domain utáni részt. Pl. ha a domain https://www.oldal.hu/, és a "Location"-be csak annyi kerül, hogy "/aloldal/cikk.html".És ez mind abba a funkcióba kellett hogy kerüljön, aminek csak annyi dolga lett volna eredetileg, hogy valid-e a link vagy sem.
Na az ilyenek teszik egyre bonyolultabbá és kuszábbá a szkriptet. -
Taci
addikt
Beleraktam hibakezelést, ahogy írtad:
if (curl_errno($ch)) {
$error_msg = curl_error($ch);
echo "ERROR: " . $error_msg;
}
Így viszont minden linknél ezt írja ki:ERROR: <url> malformed
De passz, hogy miért, minden url rendben van - legalábbis 100%, hogy ha van is hibás közte, nem mind az.
Ja, és amúgy meg gond nélkül dolgozik a linkek tartalmával.
Szóval így nem sokat ér ez a hibajelzés.[ Szerkesztve ]
-
sztanozs
veterán
Amennyiben a 23-féle forrás 24 féle képen állítja elő a dolgokat, úgy célszerű bevezeti egy abszrakciós szintet és írni minden forásra egy-egy feldolgozót az absztrakciós szint (illetve néhány kulcs-feldolgozó-függvény) újrafelhasználásával. Persze meg lehet oldani egyetlen giga-feldolgozóval is, de ebben az esetben, ha bármelyik forrás változik, akkor a feldolgó fércelése kihatással lehet más (nem érintett) forrás rutinjának a szétesésével.
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...
-
Taci
addikt
válasz sztanozs #20628 üzenetére
Igen, erre jutottam én is. Még próbálom ezt meghegeszteni, mert sokkal kényelmesebb és menedzselhetőbb lenne, ha lenne 1 feldolgozó szkriptem, és azt hívná meg minden forrás - de hát már látom, hogy a vége az lesz, hogy mindegyik kap egy saját, testre szabott szkriptet, mert azzal, hogy kezelek egy nem standard-ként működőt, esélyes, hogy elrontom a többit (ahogy most is történik), amik meg amúgy tökéletesen, a standardok szerint működnek.
Köszi.
-
sztanozs
veterán
sokkal kényelmesebb és menedzselhetőbb lenne, ha lenne 1 feldolgozó szkriptem
Igazából az lenne a kényelmes, ha semmit nem kellene csinálnod. Valójában csak nincs kedved/időd újratervezni és megcsinálni, hogy tényleg jobban menedzselhető legyen.[ 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...
-
Taci
addikt
-
Taci
addikt
Hogyan tudnám "elkapni" a saját kódomban, ha egy oldal nem elérhető?
Adott pl. ezt a teszt oldal direkt erre a célra:
http://404.php.net/Az alap link-elérhetőséget tesztelő funkcióban a header-ből nyerek ki információt:
get_headers($url);
Ennél a linknél viszont ugye nincs header, így ez hibára fut, és a php error logjába ír:
get_headers(http://404.php.net/): failed to open stream: php_network_getaddresses: getaddrinfo failed: Nincs ilyen ismert állomás.Hogyan tudnám ezt a saját kódomban "elkapni", hogy ne kerüljön a php error logjába mint hiba, hanem csak számomra a saját logomban jelenjen meg, mint információ?
-
sztanozs
veterán
DNS hiba nem ugyanaz, mint a HTTP 404. Persze simán lehet mind a kettő - de igazából még sokkal több lehetőség, például:
- 404 hiba
- más 4xx hiba (pl 401 - unauthorized)
- 5xx hiba
- 3xx (redirect)
- port/szerver nem elérhető
- dns resolve probléma[ 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...
-
Taci
addikt
válasz sztanozs #20634 üzenetére
Igazából én jelenleg a 200-at, a 301 és 302-t kezelem.
Az összes többit szeretném csak simán a logomba összeszedni, hogy ha olyan link kerül elő, amit máshogy kell kezelni, tudjam, hogy arra mit dobott - plusz a php error logot szeretném tisztán tartani, mert ha ott van bejegyzés, akkor azzal foglalkoznom kell.
Egy HTTP status code-dal vagy DNS hibával nem (kapott linkek, nincs ráhatásom, se a szerverjeik állapotára).Elképzelhető, hogy nem működő linket kapok, vagy a szerverrel van valami, és nincs header (így a
get_headers
hibára fut, ami így a php error logba kerül), de ezt a lehetőséget is szeretném lekezelni, hogy a saját logomba kerüljön.Hogyan tudnám megoldani?
Köszi. -
Az in_array()-nak van vmi trükkje? Mert ez nem működik:
$categories = get_the_category();
if ( ! empty( $categories ) ) {
if (in_array('Blabla',$categories)) {
...
}
else {
...
}
}
Pedig a var_dump($categories); szerint van benne Blabla:
array(2) {
[0]=> object(WP_Term)#17210 (16) {
["term_id"]=> int(48)
["name"]=> string(6) "Teszt"
["slug"]=> string(5) "teszt"
["term_group"]=> int(0)
["term_taxonomy_id"]=> int(48)
["taxonomy"]=> string(8) "category"
["description"]=> string(1) "A"
["parent"]=> int(0)
["count"]=> int(11900)
["filter"]=> string(3) "raw"
["cat_ID"]=> int(48)
["category_count"]=> int(11900)
["category_description"]=> string(1) "A"
["cat_name"]=> string(6) "Teszt"
["category_nicename"]=> string(5) "teszt"
["category_parent"]=> int(0)
}
[1]=> object(WP_Term)#17465 (16) {
["term_id"]=> int(5906)
["name"]=> string(6) "Blabla"
["slug"]=> string(6) "blabla"
["term_group"]=> int(0)
["term_taxonomy_id"]=> int(5906)
["taxonomy"]=> string(8) "category"
["description"]=> string(0) ""
["parent"]=> int(0)
["count"]=> int(4)
["filter"]=> string(3) "raw"
["cat_ID"]=> int(5906)
["category_count"]=> int(4)
["category_description"]=> string(0) ""
["cat_name"]=> string(6) "Blabla"
["category_nicename"]=> string(6) "blabla"
["category_parent"]=> int(0)
}
}
Valamit rosszul csinálok, de mit?Freeware, és akciós programok egy helyen https://www.facebook.com/freewarenews
-
-
RedHarlow
aktív tag
Sziasztok,
Szeretnék egy browse gombbal beolvasni egy a gépemen lévő txt sorait egy tömbbe, a tömb adataival pedig szeretnék egy külön gombbal elindítani egy sql-t. Az lenne a kérdésem, hogy ennek mi a szép megoldása? Javascripttel olvassuk a fájlt és átadjuk az adatokat a start gomb lenyomásánál?
Előre is köszönöm a segítséget.
-
Taci
addikt
Nem, nem curl-lel, hanem simán csak get_headers.
-
RedHarlow
aktív tag
válasz bhonti #20642 üzenetére
Nem szeretném feltölteni a fájlt a szerverre, csak olvasni szeretném. A feladat:
Minden nap kapok egy kupac ID-t. Ezekkel kell lekérnem DB-ből adatokat. Mivel nem én fogom csinálni ezt majd, hanem IT tudás nélküli kollégák így csinálok egy felületet ahova csak betallózzák mindig a kapott ID-kat és start gommbal kiköpi nekik az eredményt csv-be.
Ez az én fejemben úgy néz ki, hogy egy browse gomb (HTML), txt olvasása sorról sorra mentése egy tömbbe (JS) majd a sart gomb connectel a db-be és futtatja az sql query-t és kidobja csv-be (PHP).
Ide a fúrumba most azért írtam mert kicsit úgy érzem mintha túlbonyolítanám.
[ Szerkesztve ]
-
Mike
veterán
válasz RedHarlow #20645 üzenetére
ehhez semmilyen backend nem kell.
FileReader API
https://developer.mozilla.org/en-US/docs/Web/API/FileReadermiért nem olvasok el mindent?
SQl-hez kellbeolvasod a file-t, elküldöd az id-kat a backendre, és visszakapod a csv-t
de ennyi energiával feltöltöd a file a szerverre ott kiszeded php-val az id-kat és visszaküldöd a csv-t[ Szerkesztve ]
-
pelyib
tag
válasz RedHarlow #20645 üzenetére
Szerintem ez teljesen valid.
majd a sart gomb connectel a db-be és futtatja az sql query-t
Marmint a start az elkuldi a mar kesz tombot a API-nak ami szepen validal, lefutattja a queryt, kikopi az eredemenyt
(Validalas + prepared statement ugye alap).Ha esetleg a query futasa kesobb sokaig tarthat:
- az elso API csak egy taskId-t ad vissza
- masik endpointot meg lehet pool-ni a taskId-val, nem szep megoldas de mukodik -
Sziasztok!
Értetlenül állok egy sajnos egyre gyakoribb jelenség előtt.
A Weboldalamon használok két számlálót. Látogatottságot mér, az egyik az adott évre vonatkozóan, a másik összesítettet.Működése egy egyszerű PHP kód, a Webtárhelyen egy TXT fájlt olvas be, növeli egyel a számértéket és elmenti. A probléma az, hogy az utóbbi időben sajnos ez rendszeresen vagy nullázódik, vagy valami abszolút értelmetlen (de számsor) érték jelenik meg. Például 61245 az egyik nap, másnap már csak 170, vagy 11234.
Mi okozhatja ezt a problémát? Vagy megvalósítható ez a rendszer akár JS-el is? Azért csináltam annak idején PHP-val meg, mert úgy tudom, a JS nem képes fájlt olvasni, módosítani és írni. Ez így viszont roppant zavaró. Előfurdult ilyen egy-két alkalommal az elmúlt években, de az utóbbi hónapokban szinte heti rendszerességgel történik.
Előre is köszönöm a segítséget!
[ Szerkesztve ]
But who is watching the guardians?
-
sztanozs
veterán
Ha a tárhelyen van valami sql (vagy nosql) támogatás, akkor inkább azzal csinálnám meg, bár mondjuk egy fájl-olvasás/írás is elég robosztus megoldás kellene legyen - mondjuk nem thread-safe, szóval az lehet a gond.
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...
Új hozzászólás Aktív témák
- Gaming notebook topik
- AMD K6-III, és minden ami RETRO - Oldschool tuning
- Milyen RAM-ot vegyek?
- Xiaomi Mi 9 - egy híján
- AMD Navi Radeon™ RX 6xxx sorozat
- Vodafone otthoni szolgáltatások (TV, internet, telefon)
- "A homoszexualitás természetellenes" 😠
- Telekom otthoni szolgáltatások (TV, internet, telefon)
- Szólánc.
- Horizon: Zero Dawn
- További aktív témák...
Állásajánlatok
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest