2015-11-26 6 views
9

मैंने अपाचे को दोबारा इंस्टॉल किया है, और PHP 5.3 से 5.6 तक स्विच किया है। सब कुछ काम करता है, को छोड़कर मैं यह त्रुटि, प्राप्त ob_start() बुला जब:आउटपुट बफरिंग डिस्प्ले हैंडलर में आउटपुट बफरिंग का उपयोग नहीं कर सकता

Cannot use output buffering in output buffering display handlers 

मैं PHP में उत्पादन बफरिंग सक्षम करने के लिए कोशिश की, लेकिन मैं अभी भी इस त्रुटि मिलती है:

output_buffering = 4096 
+0

क्या आपने वेबसर्वर को पुनरारंभ किया है? बेशक – Calimero

+0

। कई बार –

+0

प्रयुक्त php.ini में स्मृति सीमा क्या है, मुझे लगता है कि यदि आप इसे उच्च मान पर सेट करते हैं तो यह काम करेगा। – Wolfeh

उत्तर

1

शायद आप एक बफरिंग समारोह का उपयोग कर रहे आउटपुट बफरिंग कॉलबैक में जो php ob_start output_callback प्रलेखन में उल्लिखित संभव नहीं है। यदि नहीं, तो यह आपके द्वारा उपयोग किए जाने वाले आउटपुट-हैंडलर होना चाहिए, अपनी php.ini जांचें और यदि संभव हो तो इसका मान "none" पर सेट करने का प्रयास करें।

1

शायद यह नमूना कोड आप मदद कर सकते हैं:

ob_start(); 
echo "test"; 
$content = ob_get_contents(); 
ob_end_clean(); 
var_dump($content); 
4

आप एक बफर कॉलबैक के अंदर एक उत्पादन बफर शुरू करने के लिए कोशिश कर रहे हैं। यदि आप इस कोड का उपयोग करते हैं, तो यह उस त्रुटि को उत्पन्न करेगा। लेकिन अगर आप कॉलबैक फ़ंक्शन से ob_start() हटाते हैं तो यह ठीक है।

<?php 
error_reporting(-1); 

function callback($buffer){ 
    //you can't call ob_start here 
    ob_start(); 
    return (str_replace("apples", "oranges", $buffer)); 
} 

ob_start("callback"); 

?> 
<html> 
<body> 
<p>It's like comparing apples to oranges.</p> 
</body> 
</html> 
<?php 
ob_end_flush(); 
संबंधित मुद्दे