Tag சென்னை: சரம்

PHP இல் ஒரு உள்ளூர் கோப்பு ஒரு சரம் சேமிக்க எப்படி?

இந்த என் மேதாவி தொடரில் இரண்டாவது ஒன்றாகும்.

என் தீம் Tweaker நிரலாக்க போது, நான் இந்த பிரச்சினை முழுவதும் வந்தது. நான் என் PHP திட்டத்தில் என் சர்வரில் ஒரு சரம் இருந்தது (மாற்றி அமைக்கப்படும் நடைதாளுடன், உண்மையில்), மற்றும் நான் பயனர் ஒரு கோப்பு தனது கணினியில் அது சேமிப்பு விருப்பம் கொடுக்க வேண்டும். நான் இந்த ஒரு பொதுவான பிரச்சனை என்று நினைத்தேன், மற்றும் அனைத்து பொதுவான பிரச்சினைகள் ஐ மூலம் தீர்க்கப்பட. ஆனாலும், இதோ இதோ, நான் ஒரு திருப்திகரமான தீர்வு காண முடியவில்லை. நான் என் சொந்த காணப்படும், மற்றும் நான் இங்கே பகிர்ந்து, அனைத்து எதிர்கால கூகுளாளர் நலனுக்காக இன்னும் வந்து போக.

நாம் தீர்வு போக முன், பிரச்சினை என்ன புரிந்து கொள்வோம். பிரச்சனை இரண்டு கணினிகள் இடையே தொழிலாளர் பிரிவு உள்ளது — ஒரு சர்வர் ஆகும், எங்கே உங்கள் வேர்ட்பிரஸ் மற்றும் PHP இயங்கும் முடியும்; மற்ற எங்கே பார்க்கும் நடைபெற்று வாடிக்கையாளர்களின் கணினி உள்ளது. நாம் பற்றி பேசுகிறீர்கள் சரம் சர்வரில் உள்ளது. நாம் வாடிக்கையாளர் கணினியில் ஒரு கோப்பு அதை காப்பாற்ற வேண்டும். அது செய்ய ஒரே வழி ஒரு HTML பதில் என சரம் சேவை மூலம் ஆகிறது.

முதல் பார்வையில், இந்த ஒரு முக்கிய பிரச்சனை போல இல்லை. அனைத்து பிறகு, சர்வர்கள் தொடர்ந்து வாடிக்கையாளர்களுக்கு சரங்களை மற்றும் தரவு அனுப்ப — என்று நாம் உலாவி எதையும் பார்க்க எப்படி, நீங்கள் படித்து என்ன உட்பட. அது சரம் சேமிக்க விரும்புகிறது என்று தான் எந்த PHP நிரல் இருந்தது என்றால், அது ஒரு பிரச்சனை இல்லை என்று. நீங்கள் சர்வரில் ஒரு கோப்பு ஒரு சரம் அடை மற்றும் கோப்பு பணியாற்ற முடியும்.

நீங்கள் முழு உலக உங்கள் சர்வரில் கோப்புகளை சரங்களை குவிக்கும் ஒரு வழி கொடுக்க விரும்பவில்லை என்றால் ஆனால் நீங்கள் என்ன செய்கிறீர்கள்? சரி, நீங்கள் இந்த மாதிரி ஏதாவது செய்ய முடியும்:

<?php
header('Content-Disposition: attachment; filename="style.css"');
header("Content-Transfer-Encoding: ascii");
header('Expires: 0');
header('Pragma: no-cache');
print $stylestr ;
?>

அப்படி, வெறும் சரம் $ stylestr கணக்கிடுகிறது என்று உங்கள் foo.php இந்த குறியீடு வைத்து நீங்கள் செய்த. ஆனால் எங்கள் பிரச்சனையில் நாம் வேர்ட்பிரஸ் நீட்சியாக கட்டமைப்பை வேலை என்று, மற்றும் தலைப்பு பயன்படுத்த முடியாது() அழைப்புகள். நீங்கள் அதை செய்ய முயற்சி போது, நீங்கள் அந்த தலைப்பு ஏற்கனவே கனா செய்யப்படுகிறது என்று பிழை செய்தி கிடைக்கும். இந்த சிக்கல், நான் பயன்படுத்த வேண்டும் என்று கூடுதல் ஒன்று தனித்துவமான தீர்வு காணப்படும். இது ஒன்று மறந்து விட்டீர்களா, ஆனால் நான் அதை ஒரு பொதுவான நுட்பமாகும் யூகிக்கிறேன். தீர்வு ஒரு வெற்று iFrame வரையறுக்க மற்றும் PHP செயல்பாடு எழுத வேண்டும் என்ன அதன் மூல அமைக்க உள்ளது. IFrame ஒரு முழு HTML மூலத்தை எதிர்பார்க்கிறது என்பதால், நீங்கள் அனுமதி (உண்மையில், கட்டாயம்) தலைப்பு கொடுக்க() கட்டளைகளை. குறியீடு துணுக்கை போன்ற ஏதாவது தெரிகிறது:

<iframe id="saveCSS" src="about:blank" style="visibility:hidden;border:none;height:1em;width:1px;"></iframe>
<script type="text/javascript">
var fram = document.getElementById("saveCSS");
<?php echo 'fram.src = "' . $styleurl .'"' ;
?>

இப்போது கேள்வி, மூல என்ன இருக்க வேண்டும்? வேறு வார்த்தைகளில் கூறுவதானால், $ styleurl என்ன ஆகிறது? தெளிவாக, அது உங்கள் சர்வரில் ஒரு நிலையான கோப்பு இருக்க போகிறது. இந்த பதவியை நோக்கம் அது அனைத்து சர்வர் ஒரு கோப்பு இருக்க வேண்டும் இல்லை என்று காட்ட உள்ளது. அது ஒரு இரண்டு பகுதியாக பதில். நீங்கள் வேர்ட்பிரஸ் வரம்புக்குள் வேலை என்பதை நினைவில் கொள்ள வேண்டும், மற்றும் நீங்கள் தனியே PHP கோப்புகளை செய்ய முடியாது. நீங்கள் செய்ய முடியும் மட்டும் தான் இருக்கும் PHP கோப்புகளை வாதங்கள் சேர்க்க உள்ளது, அல்லது கூடுதல் நீங்கள் உருவாக்கப்பட்ட. நீங்கள் முதல் செய்ய எனவே பின்வருமாறு ஒரு submit 'பொத்தானை:

<form method="post" action="<?php echo $_SERVER["REQUEST_URI"]?>">
<div class="submit">
<input type="submit" name="saveCSS" title="Download the tweaked stylesheet to your computer" value="Download Stylesheet" />
</div>

பொத்தானை பெயர் பண்பு என்று குறிப்பு “saveCSS.” இப்பொழுது, குறியீடு பகுதியாக என்று சமர்ப்பிக்கிறார் கையாளுகிறது, நீங்கள் போன்ற ஏதாவது செய்ய:

<?php
if (isset($_POST['saveCSS']))
$styleurl = get_option('siteurl') . '/' . "/wp-admin/themes.php?page=theme-tweaker.php&save" ;

?>

இது உங்கள் iFrame ஆதாரமாக கொடுக்க வேண்டும் என்று $ styleurl உள்ளது, முன்னோக்கி. அது உங்கள் pluging பக்கம் URL அதே என்று குறிப்பு, நீங்கள் சேர்க்க முடிந்தது என்று தவிர “?காப்பாற்ற” அது இறுதியில். அடுத்த தந்திரம் என்று வாதம் கைப்பற்ற மற்றும் அது கையாள வேண்டும். என்று, நீங்கள் வேர்ட்பிரஸ் ஏபிஐ செயல்பாட்டை பயன்படுத்த, add_action என:

<?php
if (isset($_GET['save'] ))
add_action('init', array(&$thmTwk, 'saveCSS'));
else
remove_action('init', array(&$thmTwk, 'saveCSS'));
?>

இந்த உங்கள் சொருகி ஆரம்பம் பகுதியாக ஒரு செயல்பாடு saveCSS சேர்க்கிறது. இப்போது நீங்கள் இந்த செயல்பாடு வரையறுக்க வேண்டும்:

<?php
function saveCSS() {
header('Content-Disposition: attachment; filename="style.css"');
header("Content-Transfer-Encoding: ascii");
header('Expires: 0');
header('Pragma: no-cache');
$stylestr = "Whatever string you want to save";
ob_start() ;
print $stylestr ;
ob_end_flush() ;
die() ;
}
?>

இப்போது நாம் கிட்டத்தட்ட வீட்டில் இலவச இருந்தால். புரிந்து கொள்ள மட்டும் தான் நீங்கள் அந்த உள்ளது செய்ய டை வேண்டும்(). உங்கள் செயல்பாடு இறக்க என்றால், அது உங்கள் காப்பாற்ற கோப்பில் வேர்ட்பிரஸ் உருவாக்கப்பட்ட பொருட்களை மீதமுள்ள வெளியே கக்கும், உங்கள் சரம் $ stylestr அதை சேர்ப்பதன்.

அது சிக்கலான இருக்கலாம். சரி, நான் அதை ஒரு பிட் சிக்கலாக உள்ளது யூகிக்கிறேன், ஆனால் நீங்கள் அதை செயல்படுத்த மற்றும் அது இயங்கும் பெற ஒருமுறை, நீங்கள் (மற்றும் செய்ய) அது பற்றி மறக்க. குறைந்தது, நான் செய்கிறேன். நான் இங்கே அது posted அதனால் தான், எனவே அடுத்த முறை நான் வேண்டும் என்று அது செய்ய, நான் அதை பார்க்க முடியும்.