Rumah pembangunan bahagian belakang tutorial php fsockopen顺利,fwrite失败的原因有哪些

fsockopen顺利,fwrite失败的原因有哪些

Jun 13, 2016 pm 01:23 PM
amp limit out quot

fsockopen成功,fwrite失败的原因有哪些?

经过本地和一台WINDOWS服务器测试都很稳定。

但在LINUX服务器上,fsockopen每次也是成功的,但fwrite却多数都失败,很久才成功一次。。

谁遇到过这样的情况吗。。
另外//注释标记那一部分,谁能解释下。。

代码如下:

PHP code
<!--

Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

-->
$matches = parse_url($url);
    !isset($matches['host']) && $matches['host'] = '';
    !isset($matches['path']) && $matches['path'] = '';
    !isset($matches['query']) && $matches['query'] = '';
    !isset($matches['port']) && $matches['port'] = '';
    $host = $matches['host'];
    $path = $matches['path'] ? $matches['path'].($matches['query'] ? '?'.$matches['query'] : '') : '/';
    $port = !empty($matches['port']) ? $matches['port'] : 80;
    if($post) {
        $out = "POST $path HTTP/1.0\r\n";
        $out .= "Accept: */*\r\n";
        $out .= "Accept-Language: zh-cn\r\n";
        $out .= "Content-Type: application/x-www-form-urlencoded\r\n";
        $out .= "User-Agent: $_SERVER[HTTP_USER_AGENT]\r\n";
        $out .= "Host: $host\r\n";
        $out .= 'Content-Length: '.strlen($post)."\r\n";
        $out .= "Connection: Close\r\n";
        $out .= "Cache-Control: no-cache\r\n";
        $out .= "Cookie: $cookie\r\n\r\n";
        $out .= $post;
    } else {
        $out = "GET $path HTTP/1.0\r\n";
        $out .= "Accept: */*\r\n";
        $out .= "Accept-Language: zh-cn\r\n";
        $out .= "User-Agent: $_SERVER[HTTP_USER_AGENT]\r\n";
        $out .= "Host: $host\r\n";
        $out .= "Connection: Close\r\n";
        $out .= "Cookie: $cookie\r\n\r\n";
    }
    
    $fp = @fsockopen(($ip ? $ip : $host), $port, $errno, $errstr, $timeout);
    
    if(!$fp) {
        return '';//note $errstr : $errno \r\n
    } else {
        stream_set_blocking($fp, $block);
        stream_set_timeout($fp, $timeout);var_dump($fp);
        @fwrite($fp, $out);
//注释标记
        /*$status = stream_get_meta_data($fp);
        if(!$status['timed_out']) {
            while (!feof($fp)) {
                if(($header = @fgets($fp)) && ($header == "\r\n" ||  $header == "\n")) {
                    break;
                }
            }

            $stop = false;
            while(!feof($fp) && !$stop) {
                $data = fread($fp, ($limit == 0 || $limit > 8192 ? 8192 : $limit));
                $return .= $data;
                if($limit) {
                    $limit -= strlen($data);
                    $stop = $limit 
Salin selepas log masuk





------解决方案--------------------
检查文件的读写性。
------解决方案--------------------
PHP code

/* 对于楼主的应用, 这里得到的是TCP套接字的一些信息 */
        $status = stream_get_meta_data($fp);
/* 这里是检查TCP连接是否超时 */
        if(!$status['timed_out']) {
/* 如果没有超时, 那么就读取数据, 直到碰到文件结束符 */
            while (!feof($fp)) {
/* 由于这里是读取HTTP头信息, 空行标识头信息结束, 因此需要break */
                if(($header = @fgets($fp)) && ($header == "\r\n" ||  $header == "\n")) {
                    break;
                }
            }
/* 这里是读取HTTP的body, 个人认为这里的处理有一些粗糙, 至少先看看HTTP响应头中有没有Content-Length根据它进行处理, 如果没有再如下读取 */
            $stop = false;
            while(!feof($fp) && !$stop) {
/* 读取最多8192字节($limit递减) */
                $data = fread($fp, ($limit == 0 || $limit > 8192 ? 8192 : $limit));
/* 将读取到的内容连接到返回字符串中 */
                $return .= $data;
                if($limit) {
                    $limit -= strlen($data);
                    $stop = $limit <font color="#e78608">------解决方案-------------------- <div class="clear">
                 
              
              
        
            </div></font>
Salin selepas log masuk
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
2 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Repo: Cara menghidupkan semula rakan sepasukan
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Cara mendapatkan biji gergasi
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Antara muka output audio digital pada papan induk-SPDIF OUT Antara muka output audio digital pada papan induk-SPDIF OUT Jan 14, 2024 pm 04:42 PM

Urutan talian sambungan SPDIFOUT pada papan induk Baru-baru ini, saya menghadapi masalah mengenai urutan pendawaian wayar. Saya menyemak dalam talian Beberapa maklumat mengatakan bahawa 1, 2, dan 4 sepadan dengan keluar, +5V, dan tanah manakala maklumat lain mengatakan bahawa 1, 2, dan 4 sepadan dengan keluar, tanah dan +5V. Cara terbaik ialah menyemak manual papan induk anda Jika anda tidak menemui manual, anda boleh menggunakan multimeter untuk mengukurnya. Cari tanah dahulu, kemudian anda boleh menentukan susunan pendawaian yang lain. Cara menyambung pendawaian VDG papan induk Apabila menyambungkan pendawaian VDG papan induk, anda perlu palamkan satu hujung kabel VGA ke antara muka VGA monitor dan hujung satu lagi ke antara muka VGA kad grafik komputer. Sila berhati-hati untuk tidak memasukkannya ke dalam port VGA motherboard. Setelah disambungkan, anda boleh

Penjelasan terperinci tentang cara menggunakan ambil dan had dalam Laravel Penjelasan terperinci tentang cara menggunakan ambil dan had dalam Laravel Mar 10, 2024 pm 05:51 PM

"Penjelasan terperinci tentang cara menggunakan ambil dan had dalam Laravel" Dalam Laravel, ambil dan had ialah dua kaedah yang biasa digunakan, digunakan untuk mengehadkan bilangan rekod yang dikembalikan dalam pertanyaan pangkalan data. Walaupun fungsi mereka adalah serupa, terdapat beberapa perbezaan halus dalam senario penggunaan tertentu. Artikel ini akan menganalisis penggunaan kedua-dua kaedah ini secara terperinci dan memberikan contoh kod khusus. 1. Kaedah Ambil Dalam Laravel, kaedah ambil digunakan untuk mengehadkan bilangan rekod yang dikembalikan, biasanya digabungkan dengan kaedah orderBy.

Apakah maksud antara muka keluar dan masuk? Apakah maksud antara muka keluar dan masuk? Sep 28, 2021 pm 04:39 PM

Antara muka keluar merujuk kepada antara muka keluaran, dan antara muka masuk merujuk kepada antara muka masukan. Antara muka keluar secara amnya mewakili antara muka keluaran talian sumber audio, yang digunakan untuk menyambungkan beban, seperti pembesar suara, fon kepala, dsb. manakala antara muka masuk secara amnya mewakili antara muka input talian sumber audio, yang digunakan untuk menyambungkan pemain CD, mudah alih telefon, pemain MP3, komputer, dsb.

php提交表单通过后,弹出的对话框怎样在当前页弹出,该如何解决 php提交表单通过后,弹出的对话框怎样在当前页弹出,该如何解决 Jun 13, 2016 am 10:23 AM

php提交表单通过后,弹出的对话框怎样在当前页弹出php提交表单通过后,弹出的对话框怎样在当前页弹出而不是在空白页弹出?想实现这样的效果:而不是空白页弹出:------解决方案--------------------如果你的验证用PHP在后端,那么就用Ajax;仅供参考:HTML code

Apakah syiling AMP? Apakah syiling AMP? Feb 24, 2024 pm 09:16 PM

Apakah itu AMP Coin? Token AMP telah dicipta oleh pasukan Synereo pada tahun 2015 sebagai mata wang dagangan utama platform Synereo. Token AMP bertujuan untuk memberikan pengguna pengalaman ekonomi digital yang lebih baik melalui pelbagai fungsi dan kegunaan. Tujuan Token AMP Token AMP mempunyai pelbagai peranan dan fungsi dalam platform Synereo. Pertama, sebagai sebahagian daripada sistem ganjaran mata wang kripto platform, pengguna dapat memperoleh ganjaran AMP dengan berkongsi dan mempromosikan kandungan, mekanisme yang menggalakkan pengguna untuk mengambil bahagian secara lebih aktif dalam aktiviti platform. Token AMP juga boleh digunakan untuk mempromosikan dan mengedarkan kandungan pada platform Synereo. Pengguna boleh meningkatkan keterlihatan kandungan mereka pada platform dengan menggunakan token AMP untuk menarik lebih ramai penonton melihat dan berkongsi

Perbandingan fungsi dan penggunaan ambil dan had dalam Laravel Perbandingan fungsi dan penggunaan ambil dan had dalam Laravel Mar 09, 2024 pm 09:09 PM

Ambil dan hadkan ialah dua kaedah yang biasa digunakan dalam Laravel untuk mengehadkan bilangan set hasil pertanyaan. Walaupun ia mempunyai persamaan tertentu dalam fungsi, ia berbeza dalam penggunaan dan beberapa butiran. Artikel ini akan menjalankan perbandingan terperinci tentang fungsi dan penggunaan kedua-dua kaedah ini, dan menyediakan contoh kod khusus untuk membantu pembaca memahami dengan lebih baik perbezaan antara mereka dan cara menggunakannya dengan betul. 1.kaedah ambil Kaedah ambil adalah dalam pembina pertanyaan LaravelEloquent

Apakah yang perlu saya lakukan jika sistem win10 saya ranap dan memaparkan kehabisan memori? Apakah yang perlu saya lakukan jika sistem win10 saya ranap dan memaparkan kehabisan memori? Feb 09, 2024 pm 03:00 PM

Sistem Win10 ranap dan memaparkan memori di luar Baru-baru ini, ramai pengguna telah menemui gesaan ini apabila menggunakan komputer mereka, yang memerlukan restart yang kerap untuk membaiki Jadi bagaimana kita harus menangani masalah ini, tutorial win10 ini ada di sini langkah operasi dengan majoriti pengguna, dengan harapan dapat membantu lebih ramai rakan menyelesaikan masalah mereka. Apa yang perlu dilakukan jika sistem win10 ranap dan memaparkan memori di luar 1. Klik kanan komputer ini pada desktop dan pilih "Properties" dalam senarai pilihan. 2. Selepas memasuki antara muka tetingkap baharu, klik pilihan "Tetapan Sistem Lanjutan" di sudut kiri atas. 3. Dalam tetingkap yang terbuka, tukar kepada "

Cara menggunakan had dan langkau fungsi Stream dalam Java untuk operasi strim Cara menggunakan had dan langkau fungsi Stream dalam Java untuk operasi strim Jun 26, 2023 pm 03:55 PM

StreamAPI telah diperkenalkan dalam Java 8, yang boleh memudahkan operasi koleksi. Kelas Strim menyediakan banyak kaedah berfungsi untuk beroperasi pada strim, termasuk penapisan, pemetaan, penggabungan dan banyak lagi. Antaranya, had dan langkau adalah dua fungsi yang digunakan untuk mengehadkan bilangan elemen dalam operasi aliran. 1. Fungsi had Fungsi had digunakan untuk mengehadkan bilangan elemen dalam aliran Ia menerima parameter jenis panjang n, yang mewakili bilangan had. Selepas memanggil fungsi had, aliran baharu dikembalikan, yang hanya mengandungi

See all articles