Kirjoittaja Aihe: PHP tempuilee  (Luettu 2216 kertaa)

Mistofelees

  • Käyttäjä
  • Viestejä: 641
    • Profiili
PHP tempuilee
« : 04.07.14 - klo:16.27 »
Siirsin palvelimen uuteen aliverkkoon.
Siirrossa ei muutettu yhdenkään tiedoston sisältöä.
Siirron jälkeen yksi html- (php) sivu kieltäytyy toimimasta, enkä löydä itse mitään järkevää syytä.

\var\log\apache2\error.log:ssa on ilmoitus:
PHP Parse error:  syntax error, unexpected ',' in /home/www/TESTAREA/index.php on line 146, referer: http://handy/

Vastaava rivi 144 html-sivulla:
$chars = preg_split("/\//", $polku, -1, PREG_SPLIT_NO_EMPTY);

Tämä scripti on aiemmin toiminut täysin ongelmitta samoin kahdessa muussa serverissä se toimii nytkin.
Ohjelma toimii, jos poistan tuon rivin, mutta tietenkin tämän rivin toiminto jää pois.
Kirjoitin käsin tuon rivin uudestaan, sama virhe

Tämä toimii:
$chars = preg_split('/\//', $polku);

Tämä ei toimi:
$chars = preg_split('/\//', $polku, -1);

Tämä ei toimi:
$chars = preg_split('/\//', $polku, PREG_SPLIT_NO_EMPTY);

Aivan kuin php hylkisi selvän komennon normaalia, ohjeen mukaista rakennetta
Mitä ihmettä on voinut tapahtua ?

nm

  • Käyttäjä
  • Viestejä: 16232
    • Profiili
Vs: PHP tempuilee
« Vastaus #1 : 04.07.14 - klo:16.44 »
En osaa arvata ongelman varsinaista syytä, mutta toimiiko tämä rivi:

Koodia: [Valitse]
$chars = preg_split('/\//', $polku, NULL, PREG_SPLIT_NO_EMPTY);
Millaisia muutoksia aliverkon vaihdossa tehtiin? Säilyivätkö järjestelmään asennetut ohjelmistot muuttumattomina vai vaihtuiko esim. PHP:n versio?

Mistofelees

  • Käyttäjä
  • Viestejä: 641
    • Profiili
Vs: PHP tempuilee
« Vastaus #2 : 07.07.14 - klo:08.20 »
En osaa arvata ongelman varsinaista syytä, mutta toimiiko tämä rivi:

Koodia: [Valitse]
$chars = preg_split('/\//', $polku, NULL, PREG_SPLIT_NO_EMPTY);

TÄMÄ TOIMII !!

Tein uuden kokeilun.
merkitsin tämän antamasi rivin kommentiksi ja palautin alkuperäisen ja nyt sekin toimii.
Mitä ihmettä ?

Millaisia muutoksia aliverkon vaihdossa tehtiin? Säilyivätkö järjestelmään asennetut ohjelmistot muuttumattomina vai vaihtuiko esim. PHP:n versio?
Aliverkon vaihdossa koneen johdot irroitettiin seinästä ja kone kannettiin uuteen paikkaan. Johdot pistettiin seinään kiinni ja käynnistettiin kone.
Kone ottaa osoitteensa DHCP:llä, joten sinnekään ei tehty mitään.
Kuten sanoin, koneessa ei tehty mitään =  PHP ei vaihtunut, eikä mitään ohjelmistoja tai asetuksia muutettu. Koneessa ei ajettu edes 'apt-get upgrade'
« Viimeksi muokattu: 07.07.14 - klo:08.35 kirjoittanut Mistofelees »

Mistofelees

  • Käyttäjä
  • Viestejä: 641
    • Profiili
Vs: PHP tempuilee
« Vastaus #3 : 17.09.14 - klo:10.26 »
En osaa arvata ongelman varsinaista syytä, mutta toimiiko tämä rivi:

Koodia: [Valitse]
$chars = preg_split('/\//', $polku, NULL, PREG_SPLIT_NO_EMPTY);

TÄMÄ TOIMII !!
Tein uuden kokeilun.
merkitsin tämän antamasi rivin kommentiksi ja palautin alkuperäisen ja nyt sekin toimii.
Mitä ihmettä ?

Ja taas sama juttu.
Kokeilin kaikki mahdolliset kombinaatiot preg_splitistä ja ainoastaan tämä toimi:
$chars = preg_split("/\//",$polku);

Kyllästyin ja lisäsin loppukoodiin koukun:

foreach($chars as $osa){
   if ($osa > ''){
      # tehdään jotain
   }
}

Serverissä on "Ubuntu 10.04.4 LTS", enkä päivitä, ennenkuin saan pari muuta palvelinta varmasti toimimaan.
Parissa muussa omassa serverissä, jossa on aivan sama php-ohjelma, mutta uudempi Ubuntu, tuo alkuperäinen toimii. Samoin eräällä ulkopuolisella palvelimella (Red Hat 4.1.2-54),

Mistofelees

  • Käyttäjä
  • Viestejä: 641
    • Profiili
Vs: PHP tempuilee
« Vastaus #4 : 17.09.14 - klo:12.33 »
Heti perään seuraava ongelma PHP:ssä

str_replace tekee aivan samaa, kuin preg_split

" PHP Parse error:  syntax error, unexpected ',' in /var/www/TESTAREA/editori.php" sanoo /var/log/apache2/error.log. Sivu tulee blankkona ruudulle

- Johtuuko tämä nyt jostain päivityksestä ? Ongelmat tulivat viime apt-get update / upgraden jälkeen. Ubuntu srv 10.04

Lisäys:
Ongelma korjaantui.
- Apt-get remove php5
- reboot
- apt-get install php5

Ilmeisesti vika oli jossain kajahtaneessa päivityksessä.
« Viimeksi muokattu: 18.09.14 - klo:15.49 kirjoittanut Mistofelees »