php - faner/indents blokering kode på windows server

Indlæg af Hanne Mølgaard Plasc

Problem



Jeg har følgende kode, og det fungerer godt på min lokale xampp og test linux webhosting:


<?php
// include config file
include('config.php');

// get page intel
$\_PAGE = switchPage($\_GET);

// require language file
require\_once("languages/".$\_PAGE['language'].".lang.php");

// include header file
include('includes/header.inc.php');
?>

            <section id="main" class="clearfix">

                <?php
                // include correct page
                include($\_PAGE['include\_path']);
                ?>

            </section>

<?php
// include footer file
include('includes/footer.inc.php');
?>


Min klient har en Windows-server med PHP 5.2.6 installeret. Værtsfirmaet hævder, at faner/streger som brugt i følgende snipet ud af koden ikke virker på en Windows Php hosting.


            <?php
            // include correct page
            include($\_PAGE['include\_path']);
            ?>


Så de hævder min kode er ikke gyldig PHP kode .. Kan nogen råd venligst? Jeg ønsker ikke at omskrive min kode bare på grund af alle de streger, jeg bruger til at holde min kode ren og læsbar.

Bedste reference



  Så de hævder min kode er ikke gyldig PHP kode .. Kan nogen råd venligst?



På den ene side er de fulde af den. Den er gyldig kode.


På den anden side vil den kode kunne være problematisk - hvis det var åbningen <?php -taggen i begyndelsen af ​​en fil. Dette er # 2 årsag til den berygtede 'kan ikke sende overskrifter, overskrifter allerede sendt' fejl, som PHP kan generere. Hver PHP-fil skal ikke have nogen whitespace før åbningen af ​​PHP-tag.


Denne tag er midt i dokumentet, og dermed ikke er et problem.

Andre referencer 1


Det gør ingen forskel, hvis du bruger faner eller mellemrum. Det er stadig gyldigt php.

Andre referencer 2


Måske hvad der sker er, at du slutter hver linje med linjepostkarakter (det er hvad Linux bruger) i stedet for en vognretur + linjepost (windows).


Hvis de nye linjetegn ignoreres, vil al koden i en fil ende på en linje og forårsage alle slags problemer (f.eks. En kommentar som '//hallo' halvvejs ned på en side vil ende med at kommentere al den kode, der følger ).


Prøv at konvertere filen til Windows-format (CR + LF). Du kan gøre det med en god tekst editor som Notepad ++.


Og som andre har sagt, hvordan du indrykker din kode, betyder det ikke noget.