<? fungerar inte

Tråden skapades och har fått 6 svar. Det senaste inlägget skrevs .
1

Jag har installerat PHP5 på min lilla iMac och det verkar fungera bra förutom en grej.
Det verkar endast som att:

<?php

taggen funkar, alltså inte
<?

för att initiera php kod. Jag har tonvis med gammal kod som innehåller båda varianterna så att göra find/replace känns inte så lustigt.

Känns som att det är något i apache:n som ska konfigureras men vet inte vad och var.

Nån som sett detta förr?

  • Medlem
  • Malmö
  • 2006-10-08 14:55
Ursprungligen av SugarDad:

för att initiera php kod. Jag har tonvis med gammal kod som innehåller båda varianterna så att göra find/replace känns inte så lustigt.

Vet tyvärr inte vad det beror på, men om du inte hittar någon annan lösning skulle du kunna lösa det genom att göra find/replace på "<?" till "<?php" och sedan från "<?phpphp" till "<?php"... då ska båda fallen täckas. (tvärtom från "<?php" till "<?" och sedan "<?" till "<?php" bör också fungera).

Men jag hoppas att du lyckas lösa det "på riktigt" förstås.

  • Medlem
  • 2006-10-08 15:19

Det är väl i php.ini som inställningen ligger, om jag minns rätt.

Tänk bara på att <?-taggar för php-kod inte är någon bra idé om man vill leverera xhtml-dokument eftersom den taggen redan används i xml. Använder man <?php i stället slipper man det problemet, det är därför som det är det rekommenderade sättet.

I php.ini ska det stå "short_open_tag = On".

  • Medlem
  • Mölndal
  • 2006-10-08 19:34

För att göra sökningen lätt, använd valfritt program som klarar regular expressions (och multi-line mode) (t ex BBEdit, TextMate eller SubEthaEdit). Sök efter

^<\?$

i samtliga filer och ersätt med

<?php

Klart.

Av anledningen Samuel K nämner är <%php rekommenderat, tycker du ska försöka följa det om det går.

Senast redigerat 2006-10-08 21:42

vilken respons, man tackar!

short_open_tag var satt till off så det löste problemet, åtminstone tillfälligt.

Ska fundera på att byta alla taggar till <?php för framtida kompatibilitet.

1
Bevaka tråden