Kirjoittaja Aihe: php8.3 utf8_encode() deprecated, Pihole nurin.  (Luettu 222 kertaa)

Mistofelees

  • Käyttäjä
  • Viestejä: 674
    • Profiili
php8.3 utf8_encode() deprecated, Pihole nurin.
« : 20.12.24 - klo:00.49 »
php8.2 alkaen  utf8_encode() deprecated
Huomasin tämän, kun PiHole kieltäytyi toimimasta uudessa serverissä.
Enkä varmasti ole ainoa, joka kiroaa PiHolen kaatumista.

Minkä ihmeen takia PHP:n kehittelijät poistavat komentoja ja/tai korvaavat niitä toisilla ?
Onko se typeryyttä vai ajattelemattomuutta.

Kun Split() tilalle tuli explode(), minun käsiini kaatui iltapäivällä  kahden aikoihin kaikki firman toimistohenkilökunnan koneet, jotka seisoivat, kun pari sataa php scritiä alkoi yhtäkkiä herjata. Palkanlasku-päivä edessä ja itsellä loma alkamassa aamulla ja lentoliput varattuna. Meinasi harmittaa ja tulla kiire.

Eikö tuota split() -> explode() olisi voinut hoitaa siten, että splitin nimi olisi säilynyt, vaikka sen takana oleva ohjelma olisi vaihdettu.
Nyt en ole vielä löytänyt, onko tälle utf8_encode() komennolle korvaajaa.

Ja PHP:n sivuilta näkyy, että taivaanrannassa on jo odottamassa seuraava pommi, php8.4

Itse aion poistaa 8.3 ja pistää tilalle 7.3
« Viimeksi muokattu: 20.12.24 - klo:00.52 kirjoittanut Mistofelees »

nm

  • Käyttäjä
  • Viestejä: 16445
    • Profiili
Vs: php8.3 utf8_encode() deprecated, Pihole nurin.
« Vastaus #1 : 20.12.24 - klo:01.04 »
php8.2 alkaen  utf8_encode() deprecated

Funktio on poistumassa, mutta sen pitäisi kyllä toimia edelleen normaalisti, varoituslokia lukuun ottamatta. Se tulee poistumaan PHP 9.0:ssa.

Omassa koodissa voit korvata utf8_encoden ohjeen mukaan esimerkiksi mb_convert_encoding-funktiolla:

https://www.php.net/manual/en/function.utf8-encode.php
https://php.watch/versions/8.2/utf8_encode-utf8_decode-deprecated

Pi-hole ei kaadu tuohon deprecated-varoitukseen, vaan siinä on jokin muu ongelma tai puuttuva riippuvuus. Varmista ainakin, että php-sqlite3 on asennettuna, kuten tässä tapauksessa:
https://discourse.pi-hole.net/t/webinterface-broken-since-upgrade-to-php8-2/67206

Mistofelees

  • Käyttäjä
  • Viestejä: 674
    • Profiili
Vs: php8.3 utf8_encode() deprecated, Pihole nurin.
« Vastaus #2 : 21.12.24 - klo:02.19 »
Tarkistin kaikki php:n palikat. Olivat asennettuna, myös sqlite.
Pihole toimi hetken, mutta oli sitten täysin mykkänä.
- Dasboardin laskurit ja graaafit lähtivät toimimaan, mutta jämähtivät hetken päästä. Rebootin jälkeen sama toistui.
- Jossain logissa oli kymmeniä mainintoja tuosta "utf8_encode() deprecated"
 (En nyt löydä lainkaan samannäköistä logia)

Poistin php8.3 ja asensin 7.3
Pihole lähti toimimaan ilman muita toimenpiteitä. ja on nyt toiminut siitä alkaen.

Antaa olla noin. Kokeilen myöhemmin uudestaan.