{"id":28332,"date":"2024-03-16T10:09:31","date_gmt":"2024-03-16T10:09:31","guid":{"rendered":"https:\/\/www.silicloud.com\/blog\/how-to-achieve-streaming-output-in-php\/"},"modified":"2024-03-22T13:11:55","modified_gmt":"2024-03-22T13:11:55","slug":"how-to-achieve-streaming-output-in-php","status":"publish","type":"post","link":"https:\/\/www.silicloud.com\/blog\/how-to-achieve-streaming-output-in-php\/","title":{"rendered":"How to achieve streaming output in PHP?"},"content":{"rendered":"<p>In PHP, the flush() function can be used to achieve streaming output. Streaming output refers to sending data to the client gradually as it is being generated, instead of waiting for all data to be generated before sending.<\/p>\n<p>Here is a simple example demonstrating how to use streaming output to print a series of numbers line by line.<\/p>\n<pre class=\"post-pre\"><code><span class=\"hljs-meta\">&lt;?php<\/span>\r\n<span class=\"hljs-title function_ invoke__\">ob_implicit_flush<\/span>(<span class=\"hljs-literal\">true<\/span>); <span class=\"hljs-comment\">\/\/ \u5f00\u542f\u81ea\u52a8\u5237\u65b0\u7f13\u51b2\u533a<\/span>\r\n<span class=\"hljs-title function_ invoke__\">ob_end_flush<\/span>(); <span class=\"hljs-comment\">\/\/ \u6e05\u7a7a\u7f13\u51b2\u533a\u5e76\u5173\u95ed\u7f13\u51b2\u533a\u8f93\u51fa<\/span>\r\n\r\n<span class=\"hljs-keyword\">for<\/span> (<span class=\"hljs-variable\">$i<\/span> = <span class=\"hljs-number\">1<\/span>; <span class=\"hljs-variable\">$i<\/span> &lt;= <span class=\"hljs-number\">10<\/span>; <span class=\"hljs-variable\">$i<\/span>++) {\r\n    <span class=\"hljs-keyword\">echo<\/span> <span class=\"hljs-variable\">$i<\/span>; <span class=\"hljs-comment\">\/\/ \u8f93\u51fa\u5f53\u524d\u6570\u5b57<\/span>\r\n    <span class=\"hljs-keyword\">echo<\/span> <span class=\"hljs-string\">\"&lt;br&gt;\"<\/span>; <span class=\"hljs-comment\">\/\/ \u8f93\u51fa\u6362\u884c\u7b26<\/span>\r\n    <span class=\"hljs-title function_ invoke__\">flush<\/span>(); <span class=\"hljs-comment\">\/\/ \u5237\u65b0\u8f93\u51fa\u7f13\u51b2\u533a\uff0c\u5c06\u6570\u636e\u53d1\u9001\u7ed9\u5ba2\u6237\u7aef<\/span>\r\n    <span class=\"hljs-title function_ invoke__\">sleep<\/span>(<span class=\"hljs-number\">1<\/span>); <span class=\"hljs-comment\">\/\/ \u4f11\u77201\u79d2\uff0c\u6a21\u62df\u751f\u6210\u4e0b\u4e00\u4e2a\u6570\u5b57\u7684\u8fc7\u7a0b<\/span>\r\n}\r\n<span class=\"hljs-meta\">?&gt;<\/span>\r\n<\/code><\/pre>\n<p>In the example above, we first enable automatic buffer flushing with the ob_implicit_flush(true) function, then we clear and close the output buffer with the ob_end_flush() function. Next, we use a loop to output numbers line by line, and use the flush() function to refresh the output buffer and send the data to the client. After each output, the program sleeps for 1 second using the sleep(1) function to simulate the process of generating the next number.<\/p>\n<p>It is important to note that streaming output may be restricted or not available in certain server environments. If encountering any issues, consider adjusting server configurations or using alternative technologies to achieve real-time data output.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In PHP, the flush() function can be used to achieve streaming output. Streaming output refers to sending data to the client gradually as it is being generated, instead of waiting for all data to be generated before sending. Here is a simple example demonstrating how to use streaming output to print a series of numbers [&hellip;]<\/p>\n","protected":false},"author":10,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_import_markdown_pro_load_document_selector":0,"_import_markdown_pro_submit_text_textarea":"","footnotes":""},"categories":[1],"tags":[],"class_list":["post-28332","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v21.5 (Yoast SEO v21.5) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>How to achieve streaming output in PHP? - Blog - Silicon Cloud<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.silicloud.com\/blog\/how-to-achieve-streaming-output-in-php\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"How to achieve streaming output in PHP?\" \/>\n<meta property=\"og:description\" content=\"In PHP, the flush() function can be used to achieve streaming output. Streaming output refers to sending data to the client gradually as it is being generated, instead of waiting for all data to be generated before sending. Here is a simple example demonstrating how to use streaming output to print a series of numbers [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.silicloud.com\/blog\/how-to-achieve-streaming-output-in-php\/\" \/>\n<meta property=\"og:site_name\" content=\"Blog - Silicon Cloud\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/SiliCloudGlobal\/\" \/>\n<meta property=\"article:published_time\" content=\"2024-03-16T10:09:31+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-03-22T13:11:55+00:00\" \/>\n<meta name=\"author\" content=\"Jackson Davis\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@SiliCloudGlobal\" \/>\n<meta name=\"twitter:site\" content=\"@SiliCloudGlobal\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Jackson Davis\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"1 minute\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-achieve-streaming-output-in-php\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-achieve-streaming-output-in-php\/\"},\"author\":{\"name\":\"Jackson Davis\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/55a10b8b0457c35884c25677889ad350\"},\"headline\":\"How to achieve streaming output in PHP?\",\"datePublished\":\"2024-03-16T10:09:31+00:00\",\"dateModified\":\"2024-03-22T13:11:55+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-achieve-streaming-output-in-php\/\"},\"wordCount\":180,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#organization\"},\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-achieve-streaming-output-in-php\/\",\"url\":\"https:\/\/www.silicloud.com\/blog\/how-to-achieve-streaming-output-in-php\/\",\"name\":\"How to achieve streaming output in PHP? - Blog - Silicon Cloud\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#website\"},\"datePublished\":\"2024-03-16T10:09:31+00:00\",\"dateModified\":\"2024-03-22T13:11:55+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-achieve-streaming-output-in-php\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.silicloud.com\/blog\/how-to-achieve-streaming-output-in-php\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-achieve-streaming-output-in-php\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.silicloud.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"How to achieve streaming output in PHP?\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#website\",\"url\":\"https:\/\/www.silicloud.com\/blog\/\",\"name\":\"Silicon Cloud Blog\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#organization\"},\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#organization\",\"name\":\"Silicon Cloud Blog\",\"url\":\"https:\/\/www.silicloud.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png\",\"contentUrl\":\"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png\",\"width\":1024,\"height\":1024,\"caption\":\"Silicon Cloud Blog\"},\"image\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/SiliCloudGlobal\/\",\"https:\/\/twitter.com\/SiliCloudGlobal\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/55a10b8b0457c35884c25677889ad350\",\"name\":\"Jackson Davis\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/2fdb47d6df1226e92380d96973782572a97b0675d098bb914410dec348eb5d29?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/2fdb47d6df1226e92380d96973782572a97b0675d098bb914410dec348eb5d29?s=96&d=mm&r=g\",\"caption\":\"Jackson Davis\"},\"url\":\"https:\/\/www.silicloud.com\/blog\/author\/jacksondavis\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"How to achieve streaming output in PHP? - Blog - Silicon Cloud","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.silicloud.com\/blog\/how-to-achieve-streaming-output-in-php\/","og_locale":"en_US","og_type":"article","og_title":"How to achieve streaming output in PHP?","og_description":"In PHP, the flush() function can be used to achieve streaming output. Streaming output refers to sending data to the client gradually as it is being generated, instead of waiting for all data to be generated before sending. Here is a simple example demonstrating how to use streaming output to print a series of numbers [&hellip;]","og_url":"https:\/\/www.silicloud.com\/blog\/how-to-achieve-streaming-output-in-php\/","og_site_name":"Blog - Silicon Cloud","article_publisher":"https:\/\/www.facebook.com\/SiliCloudGlobal\/","article_published_time":"2024-03-16T10:09:31+00:00","article_modified_time":"2024-03-22T13:11:55+00:00","author":"Jackson Davis","twitter_card":"summary_large_image","twitter_creator":"@SiliCloudGlobal","twitter_site":"@SiliCloudGlobal","twitter_misc":{"Written by":"Jackson Davis","Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.silicloud.com\/blog\/how-to-achieve-streaming-output-in-php\/#article","isPartOf":{"@id":"https:\/\/www.silicloud.com\/blog\/how-to-achieve-streaming-output-in-php\/"},"author":{"name":"Jackson Davis","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/55a10b8b0457c35884c25677889ad350"},"headline":"How to achieve streaming output in PHP?","datePublished":"2024-03-16T10:09:31+00:00","dateModified":"2024-03-22T13:11:55+00:00","mainEntityOfPage":{"@id":"https:\/\/www.silicloud.com\/blog\/how-to-achieve-streaming-output-in-php\/"},"wordCount":180,"commentCount":0,"publisher":{"@id":"https:\/\/www.silicloud.com\/blog\/#organization"},"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.silicloud.com\/blog\/how-to-achieve-streaming-output-in-php\/","url":"https:\/\/www.silicloud.com\/blog\/how-to-achieve-streaming-output-in-php\/","name":"How to achieve streaming output in PHP? - Blog - Silicon Cloud","isPartOf":{"@id":"https:\/\/www.silicloud.com\/blog\/#website"},"datePublished":"2024-03-16T10:09:31+00:00","dateModified":"2024-03-22T13:11:55+00:00","breadcrumb":{"@id":"https:\/\/www.silicloud.com\/blog\/how-to-achieve-streaming-output-in-php\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.silicloud.com\/blog\/how-to-achieve-streaming-output-in-php\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.silicloud.com\/blog\/how-to-achieve-streaming-output-in-php\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.silicloud.com\/blog\/"},{"@type":"ListItem","position":2,"name":"How to achieve streaming output in PHP?"}]},{"@type":"WebSite","@id":"https:\/\/www.silicloud.com\/blog\/#website","url":"https:\/\/www.silicloud.com\/blog\/","name":"Silicon Cloud Blog","description":"","publisher":{"@id":"https:\/\/www.silicloud.com\/blog\/#organization"},"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.silicloud.com\/blog\/#organization","name":"Silicon Cloud Blog","url":"https:\/\/www.silicloud.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png","contentUrl":"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png","width":1024,"height":1024,"caption":"Silicon Cloud Blog"},"image":{"@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/SiliCloudGlobal\/","https:\/\/twitter.com\/SiliCloudGlobal"]},{"@type":"Person","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/55a10b8b0457c35884c25677889ad350","name":"Jackson Davis","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/2fdb47d6df1226e92380d96973782572a97b0675d098bb914410dec348eb5d29?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/2fdb47d6df1226e92380d96973782572a97b0675d098bb914410dec348eb5d29?s=96&d=mm&r=g","caption":"Jackson Davis"},"url":"https:\/\/www.silicloud.com\/blog\/author\/jacksondavis\/"}]}},"_links":{"self":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/28332","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/users\/10"}],"replies":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/comments?post=28332"}],"version-history":[{"count":1,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/28332\/revisions"}],"predecessor-version":[{"id":62623,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/28332\/revisions\/62623"}],"wp:attachment":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/media?parent=28332"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/categories?post=28332"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/tags?post=28332"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}