PHP

2010-10-15 5 views
8

के माध्यम से एक जावास्क्रिप्ट फ़ाइल पार्स करें मेरे पास एक जावास्क्रिप्ट फ़ाइल है जहां मैं कुछ PHP कोड शामिल करना चाहता हूं। समस्या यह है कि मेरे पास PHP पर कुछ परिभाषित हैं जो मैं जेएस पर भी उपयोग करना चाहता हूं।PHP

क्या HTML में .js फ़ाइल को शामिल करने का कोई तरीका है सर्वर को पहले php का उपयोग करके (क्लाइंट को डाउनलोड करने से पहले) की व्याख्या करने की अनुमति देता है?

धन्यवाद :)

+0

आपने बताया कि एक PHP शामिल है या कुछ आपके लिए समस्याएं पैदा कर रहा है। उस पर विस्तार करने की देखभाल? – JAL

+0

अतीत में मैंने वास्तव में ठंडे फ़ंक्शन को जावास्क्रिप्ट कार्यों का उत्पादन किया है। मैंने यह विशेष रूप से उपयोगी पाया जब मेरे पास फ़ील्ड की एक चर संख्या थी और अलग-अलग नाम फ़ील्ड थे, और कुछ ब्राउज़र आधारित कार्यक्षमता की आवश्यकता थी। – Jay

+0

@Alex कि मैं एक टूटी हुई आवश्यकता के साथ बेवकूफ था;) चीयर्स – DiogoNeves

उत्तर

28
<script src="/path/to/my/file.php"></script> 

file.php में आप भी सही हेडर उत्पादन करना चाहते हैं, कुछ भी outputting से पहले आप निम्नलिखित होना चाहिए:

header("Content-Type: application/javascript"); 

संपादित करें: @Tony_A के रूप में बताया, यह application/javascript होना चाहिए। मैं इसे के रूप में ज्यादा मायने रखता है जब मैं 2010 :)

+3

+1 विभाजित कर रहे हैं, तो मैं कुछ बार विफल होने में कामयाब रहा लेकिन मेरी गलती वह –

+0

शीर्षलेख का उल्लेख करने के लिए बाल – DiogoNeves

+0

को उत्साहित करती है, मैंने अभी इस तरह के एक प्रश्न का उत्तर दिया और इस प्रश्न का संदर्भ दिया गया। देखा कि आप एक अच्छा उत्तर बैज से 1 दूर थे, इसलिए मैंने आपकी मदद की। :) –

7

नहीं परीक्षण किया है, लेकिन यह शायद काम करता है: फाइल एक्सटेंशन के रूप में स्क्रिप्ट .php देने के लिए

<script lang="text/javascript" src="path/to/your/script.php" ></script> 

प्रयास करें।

+0

हाँ, यह ठीक काम करता है। – JAL

+0

यदि आपके PHP कोड मान्य जावास्क्रिप्ट वाक्यविन्यास है तो इसमें केवल काम करने का मौका होगा। – Jay

+0

यह मेरे लिए काम नहीं कर रहा है, लेकिन मैंने यह भी देखा कि मुझे एक और PHP की आवश्यकता है जो समस्याएं पैदा कर रहा है :) – DiogoNeves

1

<script> global_one = '<?php echo $global_one; ?>';</script> त्वरित उदाहरण में इस पोस्ट ने लिखा है नहीं लगता है;) आप अन्य सभी जावास्क्रिप्ट से पहले अपने html <head> में रखते हैं फ़ाइलें global_one चर सभी js लिए उपलब्ध हो जाएगा फ़ाइलें।

0

हाँ, बस एक php फ़ाइल है कि जावास्क्रिप्ट आउटपुट परवाह नहीं करता है, तो स्क्रिप्ट फ़ाइल .js में समाप्त होता है, .php लिख सकते हैं और आप सामान्य रूप से अपने पृष्ठ में शामिल,

<?php $f=40; ?> 
<script type='text/javascript> 
    var f=<?php echo $f;?>; 
</script> 

ग्राहक की तरह या जो भी, बस माइम प्रकार और सामग्री के बारे में।

तुम भी अपाचे निर्देशों इस्तेमाल कर सकते हैं, शायद एक .htaccess फ़ाइल में,, PHP, या filename.js filename.php करने के लिए प्रत्यक्ष अनुरोध के रूप में एक निश्चित .js फ़ाइल पर कार्रवाई करने के लिए इसे बताने के लिए हालांकि यह आवश्यक नहीं है।

11

निश्चित रूप से, इसे js.php फ़ाइल बनाकर आसानी से। यदि संभव हो

, हालांकि, एक वैकल्पिक विचार करें: लायें बाहरी स्क्रिप्ट फ़ाइल शामिल करने से पहले पीएचपी जावास्क्रिप्ट में परिभाषित करता है:

<script> 
define1 = <?php echo YOUR_DEFINE1; ?> 
define2 = <?php echo YOUR_DEFINE2; ?> 
</script> 
<script src="....."> // This script can now use define1 and define2 

इस तरह, बाहरी जावास्क्रिप्ट अभी भी एक स्थिर सामग्री के रूप में परोसा जा सकता है और नहीं करता है ' PHP के माध्यम से चलाने की जरूरत नहीं है। वह कम संसाधन गहन है।

6

आप इसे सर्वर स्तर पर भी कर सकते हैं। आप अपाचे का उपयोग कर रहे कहो, तो आप अपने विन्यास को यह पंक्ति जोड़ सकते हैं (यहां तक ​​कि अपनी .htaccess करना होगा):

AddType application/x-httpd-php .js

तुम भी सीएसएस या यहाँ तक कि सादे ol 'एचटीएमएल पृष्ठों के साथ ऐसा कर सकता है।

मुझे यकीन है कि अन्य सर्वर सॉफ़्टवेयर की समान क्षमताएं हैं।

+0

भेज देगा यह एक अच्छा विचार नहीं है। न केवल धीमा होगा (आपकी सभी .js फ़ाइलों को PHP के माध्यम से पार्स किया जाएगा चाहे वे कोड हों या नहीं) लेकिन यह एक सुरक्षा भेद्यता भी हो सकती है। – Cfreak

11

जावास्क्रिप्ट-परीक्षण नामक एक PHP फ़ाइल बनाएं।php

<?php 
header('Content-type: application/javascript'); 

$php = 'Hello World'; 
echo "alert('$php');"; 
?> 

और फिर अपने php से लिंक के रूप में अगर यह एक जावास्क्रिप्ट फ़ाइल था:

<script type="text/javascript" src="javascript-test.php" /> 

आप अपने php फ़ाइल की जरूरत है एक .js विस्तार करने के लिए, कि आपका सर्वर कॉन्फ़िगरेशन में संभव है।

संबंधित मुद्दे