Keresés

Részletes keresés

NevemTeve Creative Commons License 2019.10.17 0 0 10222

> Szoval php mysql jo erre ?

 

Az egyik egy programnyelv, a másik egy adatbáziskezelő. Ettől függetlenül neked a kapcsolótábla nevű eszközre van szükséged.

Előzmény: yzz (10221)
yzz Creative Commons License 2019.10.16 0 0 10221

Koszonom a segitseget.

Szoval php mysql jo erre ?

 

Idokozben talaltam egy ilyen videot ahol nagyjabol pont az van ami kell nekem ha jol ertem

 

https://www.youtube.com/watch?v=TqVsVLpq3sY

PHP: Search Feature (Using Keywords)

Előzmény: NevemTeve (10220)
NevemTeve Creative Commons License 2019.10.16 0 0 10220

Azt találd ki, milyen adatbázis-táblával tudnád ezt reprezentálni. Annyit segítek, hogy n:m kapcsolatról van szó: minden cikkhez tartozhat több címke, minden címkéhez tartozhat több cikk.

Előzmény: yzz (10219)
yzz Creative Commons License 2019.10.16 0 0 10219

Sziasztok,

 

nem foglalkoztam meg PHP-vel se adatbazis keszitessel.

Most csinalok egy honlapot amihez a kovetkezot szeretnem megvalositani:

 

Minden egyes aloldalhoz rendelnek egy-egy tag-et vagy keyword-ot , hogy rakattintva vagy a keresobe beirva a hasonlo tag-gel, keyword-del ellatott aloldalak jojjenek fel.

Termeszetesen nem kerek senkit, hogy irja meg helyettem az egeszet, csak adjatok tippet , hogy milyen kulcsszavakkal induljak el a google keresobe.

Sokkal probalkoztam, de mindenhol csak "form" adatok elmentese szerepel, szoval vmi kulcsszo hianyzik.

 

Ha nem teljesen vilagos, hogy mit szerentek az alabbi link altal jobban el tudom magyarazni. Itt a cikk cime felett van 5 db tag amire rakattitva hasonlo tag-elt cikkek jonnek fel.

 

http://www.nemzetisport.hu/spanyol_labdarugas/aranycipo-messi-atvette-a-dijat-es-ismet-tortenelmet-irt-2727437

 

Elore is koszi az utbaigazitast.

szjozsi79 Creative Commons License 2019.10.14 0 0 10218

És valóban működik.

Csináltam egy objektumot, magyar ékezetes karakterekkel:

 

$obj = (object) array( "árvíztűrő" => "tükörfúrógép" );
echo json_encode( $obj ) . "rn";

 

A kimenet azonos az általad írt json1 értékével.

Előzmény: szjozsi79 (10217)
szjozsi79 Creative Commons License 2019.10.14 0 0 10217

Ez már egy fokkal jobb, bár ebben még mindig ott a sok szóköz, és újsor karakter, de attól eltekintve már json-string.

Én azonban arra jöttem rá, hogy ha a json-t dekódolom, akkor az objektum elemeire már tudok ékezetes betűkkel hivatkozni.

Tehát a json1-es példádnál maradva

 

$objektum = json_decode( $json1 );

echo $objektum->árvíztűrő;

 

a kimenet: tükörfúrógép

 

Ez volt a lényeg, hogy tudom-e használni vagy nem, illetve ehhez kell-e bármilyen konverziót, kódolást alkalmazni vagy sem.

Mivel láttam, hogy a kapott string valamilyen (u-szekvenciás) kódolású, eleve meg sem próbálkoztam az ékezetes betűk használatával, csak problémának láttam, amivel nem tudok mit kezdeni.

Előzmény: NevemTeve (10216)
NevemTeve Creative Commons License 2019.10.14 0 0 10216

Tákoltam demó-programot is:

#!/usr/local/bin/php
<?php
    $json1= "{\"\\u00e1rv\\u00edzt\\u0171r\\u0151\":\"t\\u00fck\\u00f6rf\\u00far\\u00f3g\\u00e9p\"}";

    $json2= json_encode (json_decode ($json1), JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT);

    printf ("json1:\n%s\n\njson2:\n%s\n", $json1, $json2);
?>


Futás:

json1:
{"\u00e1rv\u00edzt\u0171r\u0151":"t\u00fck\u00f6rf\u00far\u00f3g\u00e9p"}

json2:
{
    "árvíztűrő": "tükörfúrógép"
}

Előzmény: NevemTeve (10213)
szjozsi79 Creative Commons License 2019.10.13 0 0 10215

Meglepődve tapasztaltam, hogy de igen lehet. Viszont a terminálomon (linux) nem kriksz-krakszokat kapok, hanem u-szekvenciákat. A terminálomon megjelenítek ékezetes betűket ugyanúgy, mint kínai "kriksz-krakszokat".

Tényleg nem a php hibája, ha ezeket a szekvenciákat nem találja, nem ismeri fel, hiszen akár ascii-kódú karakterek is lehetnek.

Előzmény: _szergej_ (10214)
_szergej_ Creative Commons License 2019.10.12 0 0 10214

FYI:

 

json-ban nem lehetnek ékezetes karakterek.

úgymond saját (human readable) formában fog megjeleníteni, ami viszont nem json-kompatibilis.

 

Ajanlom figyelmedbe az RFC (8259) megfelelo sorait:

...A string begins and ends with quotation marks. All Unicode characters may be placed within the quotation marks, except for the characters that MUST be escaped: quotation mark, reverse solidus, and the control characters (U+0000 through U+001F).

Any character may be escaped. ...

 

Az, hogy a terminalodon (windows cmd.exe) kriksz-krakszokat latsz, nem a php hibaja.

 

Előzmény: szjozsi79 (10212)
NevemTeve Creative Commons License 2019.10.11 0 0 10213

Szóval egy json-ból szeretnél egy másik json kapni, de úgy, hogy a \u-szekvenciák helyett ékezetes betűk legyenek.

 

$out= json_encode (json_decode ($in), JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT);

Előzmény: szjozsi79 (10212)
szjozsi79 Creative Commons License 2019.10.11 0 0 10212

<?php
        function getVars(){
                $url = "http://aszalymonitoring.vizugy.hu/api.php";
                $curl = curl_init();
                curl_setopt( $curl , CURLOPT_URL , $url );
                curl_setopt( $curl , CURLOPT_HEADER , 0 );
                curl_setopt( $curl , CURLOPT_RETURNTRANSFER , 1 );
                curl_setopt( $curl , CURLOPT_POST , 1 );
                curl_setopt( $curl , CURLOPT_PORT , 80 );
                curl_setopt( $curl , CURLOPT_POSTFIELDS , 'view=getvariables' );
                curl_setopt( $curl , CURLOPT_TIMEOUT , 10 );
                curl_setopt( $curl , CURLOPT_SSL_VERIFYPEER , 0 );
                $ret = curl_exec( $curl );
                curl_close( $curl );
                return $ret;
        }

        $vars = getVars();

        echo $vars . "\r\n";

?>

 

A $vars egy json string, így a kimeneten (terminál) megjelenik egy jó hosszú string, ahol többek között az é betű helyett \u00e9, az ő helyett pedig \u0151, és a többi ékezetes betű helyett is hasonló kódolású karakterkód-ot látok.

Ezt a $vars stringet fájlba írom, eredmény természetesen ugyanez.

 

Ha írok egy ilyet az echo helyett:

 

var_dump( json_decode( $vars ) );

 

akkor annak a kimenete tök jó lesz ékezetek szempontjából, azonban a json_decode egy adatstruktúrát állít elő, amit a var_dump egy úgymond saját (human readable) formában fog megjeleníteni, ami viszont nem json-kompatibilis.

Amit én szeretnék, hogy az $vars stringben \u0151 helyett ő legyen, \u00e9 helyett pedig é. Nyilván tehetnék bele str_replace-t, ami kicseréli, de hagy ne kelljen már nekem ezzel foglalkoznom, ráadásul nemcsak magyar ékezetes betúk vannak, hanem pl. a fok jele (kis karika felül).

 

Előzmény: NevemTeve (10211)
NevemTeve Creative Commons License 2019.10.11 0 0 10211

Akkor csináljuk úgy, hogy te idézel be egy programot, ami bemutatja a problémádat. (Ne felejtsd el megduplázni a \ jelet.)

Előzmény: szjozsi79 (10210)
szjozsi79 Creative Commons License 2019.10.11 0 0 10210

A kimenet ugyanaz, ami a "Namost ha ugyanezt ..." kezdetű sorod fölött van, különbség a LC_CTYPE-nál van, nekem egy üres string van ott.

 

A var_dump kimenete pedig a következő:

string(69) ""\u00e1rv\u00edzt ...

string(31) "árvíztűrő tükörfúrógép"

Előzmény: NevemTeve (10205)
NevemTeve Creative Commons License 2019.10.11 0 0 10209

Kérlek mutatsd meg a 10205-ben a print_r-t, vagy az array_dump-ot, vagy a kimeneti adatstruktúrát.

Előzmény: szjozsi79 (10207)
szjozsi79 Creative Commons License 2019.10.11 0 0 10208

És egy újabb meglepetés:

 

<?php

        $adat = array( "Név" => "xyz" );
        $json = json_encode( $adat );
        echo $json . "\r\n";
        $obj = json_decode( $json );
        echo $obj->Név . "\r\n";

?>

 

kimenet:

 

{"N\u00e9v":"xyz"}

xyz

 

A php úgy látszik simán képes kezelni az ékezetes karaktereket az objektum vagy tömb indexében.

Előzmény: NevemTeve (10205)
szjozsi79 Creative Commons License 2019.10.11 0 0 10207

A print_r vagy az array_dump olvashatóvá teszi az ékezetes karaktereket, nem is azzal van a baj.

Hanem a kimenet egy adatstruktúra, ami viszont nem json-kompatibilis.

Előzmény: NevemTeve (10205)
szjozsi79 Creative Commons License 2019.10.11 0 0 10206

Sajnos erre nincs megoldás, a json-ban nem lehetnek ékezetes karakterek.

Ezért van a var_dump vagy a print_r, hogy olvashatóvá tegye, de a jelek szerint meg nem változtatja a json stringet.

Legalábbis ez a meglátásom.

Előzmény: szjozsi79 (10204)
NevemTeve Creative Commons License 2019.10.11 0 0 10205

Valamilyen programrészletet próbálj beidézni a probléma szemléltetésére, (csak persze előtte sed 's;\\;\\\\;g')
Pl:
Program:
#!/usr/local/bin/php
<?php
    $in1= "\"\\u00e1rv\\u00edzt\\u0171r\\u0151 t\\u00fck\\u00f6rf\\u00far\\u00f3g\\u00e9p\"";

    $out1= json_decode ($in1);

    printf ("LC_CTYPE=%s\nElotte: %s\nUtana: %s\n", getenv("LC_CTYPE"), $in1, $out1);
?>

Futás:
LC_CTYPE=hu_HU.UTF-8
Elotte: "\u00e1rv\u00edzt\u0171r\u0151 t\u00fck\u00f6rf\u00far\u00f3g\u00e9p"
Utana: árvíztűrő tükörfúrógép

Namost ha ugyanezt 8-bites terminálon nézed, akkor persze csúnya lesz:
LC_CTYPE=hu_HU.ISO-8859-2
Elotte: "\u00e1rv\u00edzt\u0171r\u0151 t\u00fck\u00f6rf\u00far\u00f3g\u00e9p"
Utana: årvíztŹrŠtßkÜrfúrógÊp

Előzmény: szjozsi79 (10203)
szjozsi79 Creative Commons License 2019.10.11 0 0 10204

Az a gond, hogy nem ismeri fel benne ezt a kódolást, egyszerűen ASCII-nak érzékeli, a visszaperjelet nem egy speciális karakter kezdetének gondolja, hanem visszapernek. Érdekes módon a \r\n-t ettől függetlenül új sornak veszi.

Előzmény: szjozsi79 (10203)
szjozsi79 Creative Commons License 2019.10.11 0 0 10203

Az sem működik. Próbáltam előtte a setlocale-t is semmilyen kombinációban nem  konvertálja át.

Akkor egy konkrét kérdés:

hogy lesz a következő 5 karakterből: \u00e -ből é betű?

Előzmény: NevemTeve (10201)
NevemTeve Creative Commons License 2019.10.03 0 0 10201

Talán azt próbálod kérdezni, hogy hogyan lehet utf8-ról latin2-re convertálni? Az iconv nevű eszközzel.

 

https://www.php.net/manual/en/function.iconv.php

Előzmény: szjozsi79 (10200)
szjozsi79 Creative Commons License 2019.10.03 0 0 10200

Ha ilyen egyszerű lenne, akkor nem kérdeztem volna.

Ha kiíratom a json_decode eredményét, ugyanazt kapom. Csak a var_dump jelenít meg nekem unikód nélküli objektumot.

Var_dump nélkül ugyanúgy teli van unikódokkal a stringem.

Nekem egy unikód nélküli json string kell, de azt meg nem csinál a var_dump. Mi több, a var_dump nem is hagyományos értelemben vett függvény, hanem inkább a régi (Pascal-beli) eljáráshoz hasonlatos.

Úgy látszik, hogy kénytelen vagyok str_replace-el kicserélgetni az unkódolást.

 

Előzmény: NevemTeve (10199)
NevemTeve Creative Commons License 2019.10.03 0 0 10199

Ha ez egy json input, akkor a json_decode szépen megcsinálja belőle az utf8-at, pl:

be:
{"\u00e1rv\u00edzt\u0171r\u0151": "t\u00fck\u00f6rf\u00far\u00f3g\u00e9p"}

ki (var_dump):
object(stdClass)#3 (1) {
  ["árvíztűrő"]=>
  string(17) "tükörfúrógép"
}

Előzmény: szjozsi79 (10196)
szjozsi79 Creative Commons License 2019.10.03 0 0 10198

Ja és a json_decode sem teszi olvashatóvá.

Előzmény: szjozsi79 (10197)
szjozsi79 Creative Commons License 2019.10.03 0 0 10197

Úgy látom, itt meg a backslashek maradnak le.

Szóval az adott string egy json-string, ahol a string-értékeknél az idézőjelek között vannak ezek az unikódos vagy tudomisén milyen kódolású karakterek, tehát pl. \u0123

Előzmény: szjozsi79 (10196)
szjozsi79 Creative Commons License 2019.10.03 0 0 10196

Adott egy string, ahol az ékezetes karakterek helyett uNNN-ek vannak.

Nem tudom miféle kódolás ez, nyilván én is használom, pl. új sor esetén: rn. Vagy nem is kódolás?

De képtelen vagyok olvashatóvá tenni, próbáltam már mindenféle függvényt UTF8 encode, decode, html_entity encode, decode, iconv és egyéb kulcsszavakkal számtalan függvényt, amit csak találtam a témában és nem megyek semmire semelyikkel.

PHP-t konzol módban használom.

Mi a kulcsa?

Uzer1 Creative Commons License 2019.09.07 0 0 10196

Sziasztok!!!

A Hengersor nevű suliba mennék esti teljesen ingyenes programozó / szoftverfejlesztő OKJ -s képzésre, de nem vagyunk elegen, hogy induljon a képzés. Ha valaki szeretne ingyen tanulni, mint én, akkor hívja fel a sulit telefonon, vagy írjon nekik e-mail-t, hogy esti szoftverfejlesztő OKJ -ra szeretne járni. Teljesen ingyenes. Köszi a többiek nevében is ha csatlakozol, vagy ha szólsz az ismerőseidnek, akiket esetleg érdekelhet a képzés. Sose késő :)

Üdv!

hellsing Creative Commons License 2019.06.19 0 0 10195

'reggel! Teoretikus kérdés: a tárhelyem kezelője nem engedélyezi, hogy a MySQL adatbázisban tárolt eljárásokat használjak. Meg tudná mondani valaki, hogy miféle biztonsági kockázatot jelentene a szolgáltatónak, ha engedélyezné ezt? Szerintem ha ilyen eszközökkel biztonságosabbá teszem a saját oldalamat, az win - win helyzet.

GreenIT Creative Commons License 2019.06.15 0 0 10194

Igen, olyan programozo kell, akinek van benne gyakorlata.

 

Előzmény: RockKéró (10193)
RockKéró Creative Commons License 2019.06.06 0 0 10193

Szia,

 

https://www.espocrm.com/

Ha még aktuális a CRM kérdés, szabadon módosítható a kód is.

 

Üdv, RK.

Előzmény: GreenIT (10191)

Ha kedveled azért, ha nem azért nyomj egy lájkot a Fórumért!