Kodunu tekrarlamak için değil sipariş nasıl adamlar, PHP ve JavaScript arasında bir sabitler dosyayı paylaşmak için önerirsiniz? XML dosyası? PHP içeride JavaScipt'i karıştırma doğru çözüm olmaz varsayarak yaşıyorum!? Teşekkürler
http://php.net/manual/en/book.json.php
Ben kullanımı json söyleyebilirim. Bu javascript yerli ve php için bir ayrıştırıcı kütüphanesi var.
aşağıdakileri dikkate alın:
json:
{constants : { var1 : "value 1", var2 : "value 2", var3 : "value 3"}}
ve sonra php içine okuyun:
$const = json_decode(json_string);
Bu size $ const-> {'var1'} "değeri 1" dönen gibi özelliklere sahip nesne $ const verir.
JavaScript bu olacaktır:
var const = eval(json_string);
ve size "1 değerini" const.constants.var1 == verecekti.
Js reel kolay uygulamasıdır:
<script type="text/javascript" src="json_constants_file.js"></script>
Html çıktı eklendiğinde size anında sabiteleri, çocuklar gibi diğer nesnelerle nesne var.
PHP ve JavaScript her iki tarafından paylaşılacak config değişkenler kolayca evet, XML olarak saklanan olabilir. JS doğal onu kolları, ve PHP json_decode
a> ile bir dizi haline döner - bu ayrıştırmak için az çaba gerektirir JSON olsa da, daha iyi bir çözüm olabilir.
Sen benim yaklaşım deneyebilirsiniz. Ben php ve js dosyası ile kullanmak için ortak bir yapılandırma dosyası oluşturduk.
Bu hüner atın:
PHP Class Config File:
<?php
/** Class Start **/
class Config {
/********************************/
/* Page Config Info */
/********************************/
// page title
const PAGE_TITLE = 'Welcome in Code Era!';
// base url
const BASE_URL = 'http://www.myapp.com/';
/********************************/
/* Database Config Info */
/********************************/
// mysql host server
const SERVER = '10.102.23.141';
// database user name
const USER = 'root';
// database password
const PASSWORD = '';
// mysql database name
const DATABASE = 'sample';
/********************************/
/* Share Message */
/********************************/
// Facebook Share Message
const FB_SHARE_MESSAGE = 'This gonna my share message';
// Facebook Share Title
const FB_SHARE_TITLE = 'This gonna my share title';
// Facebook Share Caption
const FB_SHARE_CAPTION = 'This gonna my share caption';
}
/** Class End **/
?>
JavaScript File:
// global config var
var config = {} || '' || null;
/**
* Get Config data with Ajax Response Data
* custom ajax method
* return ajax response and use/store as javascript var
* extend jQuery Ajax and change it
* @param qs -> query string {q:value}
* @returns result mix|multitype
*/
$.extend({
getConfig : function (qs) {
var result = null;
$.ajax({
url : 'GetConfig.php',
type : 'POST',
data : qs,
dataType : "json",
async : false,
success : function (data) {
result = data;
},
error : function ajaxError(jqXHR, exception) {
if (jqXHR.status === 0) {
alert('Not connected.\nVerify your network.');
} else if (jqXHR.status === 404) {
alert('The requested page not found. [404]');
} else if (jqXHR.status === 500) {
alert('Internal Server Error [500].');
} else if (exception === 'parsererror') {
alert('Requested JSON parse failed.');
} else if (exception === 'timeout') {
alert('Time out error.');
} else if (exception === 'abort') {
alert('Ajax request aborted.');
} else {
alert('Uncaught Error.\n' + jqXHR.responseText);
}
}
});
return result;
}
});
// Collect all Class Constant data on page load
var CONFIG = (function() {
var private = $.getConfig({config_item : ''});
return {
get: function(name) { return private.data[name]; }
};
})();
/**
* Facebook Share Content example code
* with using class constant
*/
function fbShare() {
var feed = {
method : 'feed',
link : CONFIG.get('BASE_URL'),
name : CONFIG.get('FB_SHARE_TITLE'),
caption : CONFIG.get('FB_SHARE_CAPTION')
};
function callback(response) {
if (response && response.post_id !== undefined) {
alert('Thank you for sharing the content.');
}
}
FB.ui(feed, callback);
}
How to Use in JavaScript:
var fbShareMessage = CONFIG.get('FB_SHARE_MESSAGE');
Without CONFIG.get function example:
var fbShareMessage = $.getConfig({config_item : 'FB_SHARE_MESSAGE'}).data;
PHP Code for GetConfig.php File:
<?php
/**
* Get Config php file
* request a config item from javascript/ajax
* return json data
*/
// check request with ajax only
if (empty($_SERVER['HTTP_X_REQUESTED_WITH']) || strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) != 'xmlhttprequest') {
exit;
}
// include class config
require_once '../class/class.config.php';
// get all constant from class config
$configConstant = new ReflectionClass('Config');
// store as array in var
$configConstantArray = ($configConstant->getConstants());
// safe and private request item
$black_list_constant = 'SERVER|USER|PASSWORD|DATABASE';
$black_list_object = explode('|',$black_list_constant);
// make return jason format
$result = array();
// get action from ajax
$action = $_POST['config_item'];
switch ($action) {
case '':
$result["status"]= TRUE;
foreach ($black_list_object as $index => $value){
if(array_key_exists($value, $configConstantArray)){
unset($configConstantArray["$value"]);
}
}
$result["data"]= $configConstantArray;
$result["msg"]= 'Response 200 OK';
echo json_encode($result);
break;
default:
// check valid action
if(array_key_exists($action,$configConstantArray) && in_array($action,$black_list_object)){
$result["status"]= FALSE;
$result["data"]= null;
$result["msg"]= 'Response 201 FAIL';
echo json_encode($result);
}else{
$result["status"]= TRUE;
$result["data"]= $configConstantArray["$action"];
$result["msg"]= 'Response 200 OK';
echo json_encode($result);
}
break;
}
İşte bu. Birisine yardımcı olacak, umarım :)