Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Zamiana <? na <?php
tikky
post
Post #1





Grupa: Zarejestrowani
Postów: 112
Pomógł: 1
Dołączył: 2.10.2007

Ostrzeżenie: (0%)
-----


Witam.

Wybaczcie, że temat trochę off topic.


Mam do zainstalowania sklep internetowy shoper.pl ale wewnątrz niego wszystkie pliki php zaczynają się od:
  1. <?
a nie od
  1. <?php
Mój serwer to WampServer działający na windowsie.

Pytanie: Jakim narzędziem, softem zamienić grupowo w wielu plikach <? na <?php lub drugie rozwiązanie jak zmienić konfigurację WAMP'a aby czytał pliki <? jako PHP

Pozdrawiam

Tikky
Go to the top of the page
+Quote Post
Piniek
post
Post #2





Grupa: Przyjaciele php.pl
Postów: 463
Pomógł: 49
Dołączył: 27.12.2007
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


W ustawieniach PHP włącz short_open_tag i asp_tag
Go to the top of the page
+Quote Post
erix
post
Post #3





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Mass Text Replacer

A lepiej jest jednak używać pełnego otwarcia bloku skryptowego zamiast skróconych, gdyż niektóre hostingi mają poblokowane takie zmiany.
Go to the top of the page
+Quote Post
WebCM
post
Post #4





Grupa: Zarejestrowani
Postów: 375
Pomógł: 20
Dołączył: 28.07.2006

Ostrzeżenie: (0%)
-----


Lepiej stosować <?php zamiast <?, a na końcu nie zamykać skryptu ?>, jeśli po nim nie ma kodu HTML.

Znajdź program V-Grep i zamień "<? " na "<?php " (wyrażenia regularne można wyłączyć) w plikach .php.
Go to the top of the page
+Quote Post
.radex
post
Post #5





Grupa: Zarejestrowani
Postów: 1 657
Pomógł: 125
Dołączył: 29.04.2006

Ostrzeżenie: (0%)
-----


Cytat(WebCM @ 22.12.2008, 11:23:26 ) *
Lepiej stosować <?php zamiast <?, a na końcu nie zamykać skryptu ?>, jeśli po nim nie ma kodu HTML.

Znajdź program V-Grep i zamień "<? " na "<?php " (wyrażenia regularne można wyłączyć) w plikach .php.


No właśnie lepiej zamykać skrypt "?>"
Go to the top of the page
+Quote Post
mike
post
Post #6





Grupa: Przyjaciele php.pl
Postów: 7 494
Pomógł: 302
Dołączył: 31.03.2004

Ostrzeżenie: (0%)
-----


Cytat(.radex @ 22.12.2008, 11:29:57 ) *
No właśnie lepiej zamykać skrypt "?>"
No właśnie nie (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif)
Dużo bezpieczniej jest nie zamykać plików z kodem PHP za pomocą ?> w ogóle.
Go to the top of the page
+Quote Post
phpion
post
Post #7





Grupa: Moderatorzy
Postów: 6 072
Pomógł: 861
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




Cytat(.radex @ 22.12.2008, 13:29:57 ) *
No właśnie lepiej zamykać skrypt "?>"

Pupa Jaś:
http://framework.zend.com/manual/en/coding...matting.general
Cytat
For files that contain only PHP code, the closing tag ("?>") is never permitted. It is not required by PHP, and omitting it prevents the accidental injection of trailing white space into the response.
Go to the top of the page
+Quote Post
tikky
post
Post #8





Grupa: Zarejestrowani
Postów: 112
Pomógł: 1
Dołączył: 2.10.2007

Ostrzeżenie: (0%)
-----


Włączyłem short_open_tag i asp_tag i działa.|
Swoją drogą ściągnę V-Grep i sprawdzę.


A wracając do zamykania lub nie zamykania ?>. Jaką korzyść da nie zamykanie? lub jakie zagrożenie ma jeśli zamknę.
Czy chodzi tu o prędkość przetwarzania skryptów, bezpieczeństwo czy raczej sprawę standaryzacji?
Go to the top of the page
+Quote Post
Crozin
post
Post #9





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

Ostrzeżenie: (0%)
-----


Wyobraź sobie taką sytuacje:
index.php:
  1. <?php
  2.  
  3. require 'a.php';
  4. require 'b.php';
  5. require 'c.php';
  6.  
  7. setcookie('abc', 'value', time() + 123456789);
  8. ?>
Powiedzmy, że pliki a i c.php są "ok", a plik b.php to:
  1. <?php
  2.  
  3. //jakis kod
  4.  
  5. ?>
Jaki będzie wynik działania index.php? Bład. Ciastko się nie wyśle - powód? Cannot send session cookie - headers already sent by...

Gdzie jest błąd? W b.php jest enter (czyli do przeglądarki zostaną wysałane już nagłówki) na końcu - zauważyłeś go? Pewnie nie. Teraz wyobraź sobie, że masz 200 plików .php (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

Ten post edytował Crozin 22.12.2008, 12:04:20
Go to the top of the page
+Quote Post
szagi3891
post
Post #10





Grupa: Zarejestrowani
Postów: 109
Pomógł: 9
Dołączył: 12.03.2007
Skąd: kraków/tarnobrzeg/baranów/suchorzów

Ostrzeżenie: (0%)
-----


Bardzo słaby argument. A co jeśli plik b.php zawiera instrukcję typu :

  1. <?php
  2.  
  3. //instrukcje
  4. print 'lelele';
  5. ?>


Znacznie lepiej zmodyfikować plik główny dodając funkcje ob_start();

  1. <?php
  2.  
  3. require 'a.php';
  4. require 'b.php';
  5. require 'c.php';
  6.  
  7. setcookie('abc', 'value', time() + 123456789);
  8. ?>


W taki sposób nawet z dodatkowym enterem w pliku b.php kod główny zadziała.
Chyba że macie coś przeciwko stosowania funkcji ob_start() ?
Moim zdaniem lepiej domykać każde znaczniki zwłaszcza jeśli korzyści z niedomykania są wątpliwe.
Go to the top of the page
+Quote Post
erix
post
Post #11





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Cytat
Chyba że macie coś przeciwko stosowania funkcji ob_start() ?

Owszem, mam przeciwko, jeśli jest to pozbawione sensu tak, jak to w Twoim przypadku - obejście problemu, a nie jego rozwiązanie.
Go to the top of the page
+Quote Post
Crozin
post
Post #12





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

Ostrzeżenie: (0%)
-----


@szagi: jeżeli ktoś świadomie najpierw wyświetla jakiś tekst, a potem dopiero wysyła nagłówki (tu ciasteczka) świadczy to tylko o jego poziomie. (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
Go to the top of the page
+Quote Post
mike
post
Post #13





Grupa: Przyjaciele php.pl
Postów: 7 494
Pomógł: 302
Dołączył: 31.03.2004

Ostrzeżenie: (0%)
-----


Cytat(Crozin @ 23.12.2008, 08:10:38 ) *
@szagi: jeżeli ktoś świadomie najpierw wyświetla jakiś tekst, a potem dopiero wysyła nagłówki (tu ciasteczka) świadczy to tylko o jego poziomie. (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
Żeby nie było niejasności. Bardzo niskim poziomie (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif)

Pierwsze wersje PHP wysyłały do przeglądarki wszystko co było poza znacznikami <?php ... ?>. Dosłownie wszystko.
To rodziło problemy, kiedy ktoś wstawił sobie enter po znaczniku zamykającym kod PHP a później (w kolejnym bloku lub innym pliku) chciał przesłać nagłówki.
Z tego powodu twórcy PHP postanowili dopisać bajer żeby jedna pusta linia po tagu zamykającym była ignorowana. I tak też jest teraz. Zmiana była podyktowana wspomnianymi problemami oraz tym, że wg. wielu różnych standardów kodowania pojawia się zalecenie, żeby każdy plik kończyć pustą linią dlatego wiele edytorów doklejało tą linię.

No ale to jest kwestia jednej linii. A wyobraźmy sobie, że niechcący w projekcie liczącym setkę plików mamy po którymś znaczniku kończącym plik z kodem PHP dwie linie. Dostajemy gotowe Cannot add header information - headers already sent.

Dlatego właśnie kończenie bloku za pomocą ?> nic nie daje a jego pominięcie daje czasem bardzo dużo, więc często zalecane jest pomijanie ?>. Z pominięciem tagów kończących jest napisany na przykład Zend Framework oraz symfony.
Go to the top of the page
+Quote Post
chlebik
post
Post #14





Grupa: Zarejestrowani
Postów: 113
Pomógł: 5
Dołączył: 12.09.2006
Skąd: Pruszków/Warszawa

Ostrzeżenie: (0%)
-----


Zreszta ja gdzies czytalem, ze planowane jest w ogole wylaczenie opcji korzystania ze skroconej wersji znacznikow otwierajacych w wersji 6.0 (tak wiem, troche na nia jeszcze poczekamy). Gdzie niestety to juz sobie nie przypomne niestety - zatem moze lepiej pisac caly czas <?php (?>)
Go to the top of the page
+Quote Post
mike
post
Post #15





Grupa: Przyjaciele php.pl
Postów: 7 494
Pomógł: 302
Dołączył: 31.03.2004

Ostrzeżenie: (0%)
-----


Cytat(chlebik @ 23.12.2008, 11:07:57 ) *
Zreszta ja gdzies czytalem, ze planowane jest w ogole wylaczenie opcji korzystania ze skroconej wersji znacznikow otwierajacych w wersji 6.0 (tak wiem, troche na nia jeszcze poczekamy). Gdzie niestety to juz sobie nie przypomne niestety - zatem moze lepiej pisac caly czas <?php (?>)
PHP.net :: wiki :: todo:php60
Decyzje dotyczące tagów obejmujących kod PHP jeszcze się ważą :-)
Go to the top of the page
+Quote Post
nrm
post
Post #16





Grupa: Zarejestrowani
Postów: 627
Pomógł: 33
Dołączył: 1.05.2005
Skąd: Katowice

Ostrzeżenie: (0%)
-----


Cytat(mike @ 23.12.2008, 10:51:12 ) *
Z pominięciem tagów kończących jest napisany na przykład Zend Framework oraz symfony.

i Kohana (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 24.08.2025 - 17:14