PHP Nasıl çalışır?

7 Cevap

Hepimiz PHP Javascript gibi çalışır fikri üzerine kurulmuştur StackOverflow birçok soru gördük. Kişi açıkça PHP Preproccessor olduğunu anlamıyor ve sadece sayfasından önce nerede çalıştığını gönderilir.

Bu açık bir örnek kullanıcı düğmeye bastığında runCommand() yayınlanmaz aşağıdaki kodu bulunmaktadır.

<a href="<?php runCommand(); ?>">Click Me!</a>

Bu Javascript gibi olur

<a href="javascript:runCommand();">Click Me!</a>

Ben sadece basit bir PHP çalışır 'nasıl' farkında değilsiniz yeni insanlar vardır bunun gibi birçok soru gördüm.

Benim soru: Where is a great resource that explains how PHP works?.

Onları doğru yolda devam alabilirsiniz bir sayfaya yönlendirme insanlar ve ne olmak bir Preproccessor demek bilmek mümkün olmak istiyorum.

(This also allows me to be lazy and not have to write an explanation every time it comes up, but don't tell anyone!)

Bunu iyi tanımlayan bir yer bilmiyorsanız, kendi yorumunu sağlamak için çekinmeyin.

Carl Smotricz belirttiği gibi, tarayıcının dışında kullanılan PHP bir parçası var. Ama esas olarak, bir kullanıcı bir web sayfası isteklerini ve genellikle HTML, bir şeyler almak için bekleyen bir Apache enviorment bahsediyorum.

7 Cevap

Wikipedia her zaman büyük bir bilgi kaynağıdır. Öneririz:

Server-side scripting

vs

Client-side scripting


Ve Wikipedia ayrıca has pictures:

enter görüntü açıklaması here

Bu PHP nasıl çalıştığını anlamayan biri olduğunuzu olabilir. PHP tam bir dili tercümanı olduğunu ve bir Web sunucusu dışında bir tarayıcı olmadan PHP betikleri çalıştırmak için tamamen mümkündür: komut satırında veya bir IDE veya diğer GUI ortamında.

Eğer konuşmak hangi PHP önişlemci bu özel sınırlı amaç için PHP yorumlayıcısı çağıran bir Apache modülü sadece fonksiyonudur.

PHP kodu sunucu tarafında yorumlanır Bir tek PHP kodu çıktı istemciye göndermek olacaktır.

Bir PHP dosyası istenirse Yani, web sunucusu, PHP yorumlayıcısı için PHP kodu gönderir çıkış için bekler ve sonra tekrar istemciye çıktı gönderir.

In short, PHP belongs to the server, it usually then outputs HTML but it's not here for that (or at least, not only for that). The user browser "sees" only what remains after php did its thing.

Javascript belongs to the client (aka browser): it usually handles the DOM created by parsing the HTML, which is (possibly) produced by executing PHP. Javascript can behave differently in different browsers (everyone who has written JS scripts know about cross-browser problems, do you remember IE6?) Javascript can't handle database all by itself; It has to rely on a sever-side language (php, maybe? ;) (except if talking about node.js)

BTW, AJAX PHP yapar tam olarak ne olduğunu anlamak için iyi bir referans olacak ve JS ne olabilir.

Önemli bir ayrım, bir tarayıcıda JavaScript olay odaklı olmasıdır. Bir tıklama işleyici, örneğin, hemen sayfayı yükler gibi yürütülmez nedeni budur. Bu dom programlama olay güdümlü tarzı değildi javascript, ya o tıklama yanıt bekliyor olamazdı.

Ben gerçekten bu dönem 'Önişlemci' ile kastedilen budur sanmıyorum. istemci / sunucu tarafında ayrım daha önemlidir. Örneğin, PHP gibi aynı görevleri yaparken başka bir sunucu tarafı dil bir önişlemci olarak bahsedilerek duymuş?

php tipik sunucu tarafında senaryoda istekleri http yanıt verir. Tarayıcınız bu yanıtı okur ve bunu render ve istemci tarafında tepki gömülü herhangi bir ek dinamik çalışan scriptler sorumludur. O aslında bu senaryoda emek bölümüdür.

PHP sayfası istemci tarafında gönderilmeden önce tüm php kodu yürütülür demektir sunucu taraflı bir betik dilidir. Bu nedenle görmek asla

<?php ... ?> 

sayfa kaynak.

On high abstraction level... You can consider web server (hardware) as component of four different parts. Webserver(software, for example Apache), File system, database and PHP plugin.

Yani, örneğin web sunucusuna sayfa isteği (bazı sayfa için ... / example.php) gönderdiği zaman Apache dosya sistemi bu sayfayı bulmak için çalışacağız ve sayfa varsa o tüm yürütür php plugin arayacak

<?php ... ?> 

(Tabii db sorguları dahil) kodu. Bu sayfa JavaScript aracılığıyla sayfa ile işleyebilirsiniz istemci tarafında geri gönderildikten sonra, CSS aracılığıyla tasarlanmış ...

Daha on: https://www.youtube.com/watch?v=PemsuAfc7Jw