file_get_contents (): oqim PHP xatti-harakati qanday o'zgarganini qidirishni qo'llab-quvvatlamaydi?

PHP bu haqda qanday o'zgargan?

PHP versiyasidan qaysi biri bu?


Ogohlantirish: file_get_contents (): oqim qidirishni qo'llab-quvvatlamaydi   /simple_html_dom.php

     

Ogohlantirish: file_get_contents (): Oqimdagi -1 pozitsiyasini topib bo'lmadi   /simple_html_dom.php


include('parser/simple_html_dom.php');
$url = "https://en.wikipedia.org/wiki/Stack_Overflow";
$html = file_get_html($url);
if ($html !== false) {
  foreach($html->find('div#mw-content-text') as $item){
    $item->plaintext;
  }
}
14
PHP 7.1 da bu ko'rsatkichlar, lekin 7.0 da d 5.6 ish jarima.
qo'shib qo'ydi muallif Jorny, manba

7 javoblar

Men sahifani bir tizimdan ikkinchisiga ko'chirsam, bir xil muammo yuzaga kelgan bo'lsa, ofset moslamasini o'chirib, simple_html_dom.php faylini o'zgartirishga muvaffaq bo'ldim (men uchun hech qanday muammo tug'dirmagan) ).

simple_html_dom.php ning 75-satrida:

$contents = file_get_contents($url, $use_include_path, $context, $offset);

Malumotni $ offset ga olib tashladim:

$contents = file_get_contents($url, $use_include_path, $context);

Mening sahifam yaxshi ishlamaydi. Boshqa hech narsa uchun javobgarlikni o'z zimmasiga olmaydi! :)

71
qo'shib qo'ydi
Ajoyib! .. Siz mening kunimni saqlab qoldingiz, ovoz berdingiz
qo'shib qo'ydi muallif NomanJaved, manba
Siz mening kunimni saqlab qoldingiz, ovoz berdingiz
qo'shib qo'ydi muallif Eric, manba
Albatta siz eng yaxshisiz
qo'shib qo'ydi muallif Brian Leishman, manba
Bu ishlaydi, lekin nima uchun?
qo'shib qo'ydi muallif Andrew, manba
Siz menga ayting-chi !? php7 + da yana kamroq kulgili narsa uchun lol +1
qo'shib qo'ydi muallif norcal johnny, manba
Oddiy, ammo porloq! Genius!
qo'shib qo'ydi muallif Kalle H. Väravas, manba
Kunni saqlab qoldi, Genius.
qo'shib qo'ydi muallif arslaan ejaz, manba
Ovoz berildi, bu juda yaxshi ishlaydi va qabul qilingan javob bo'lishi kerak :)
qo'shib qo'ydi muallif Woody, manba

O'zgartirish

function file_get_html(..., $offset = -1,...)

uchun

function file_get_html(..., $offset = 0,...)

oddiy_html_dom.php da

13
qo'shib qo'ydi
Bu ishlaydi, lekin nima uchun?
qo'shib qo'ydi muallif Andrew, manba
Rahmat qilamiz
qo'shib qo'ydi muallif Mujtaba Haroon, manba

simple_html_dom.php faylida $ offset ni qidiring va uni olib tashlang - bu 75 va 76-satrlarda bo'lishi kerak. Hamma narsa yaxshi ishlaydi.

4
qo'shib qo'ydi

Sotuvchi fayllarini tahrirlashning hojati yo'q. Faqat sizning so'rovlaringizni o'zgartiring:

$html = HtmlDomParser::file_get_html( "https://www.google.com/");

quyidagilar:

$html = HtmlDomParser::file_get_html( "https://www.google.com/", false, null, 0 );

"0" bu muammoni keltirib chiqaradigan ofsetdir. Odatiy bo'lib, oddiy HTML DOM "-1" dan foydalanadi, lekin uni siz o'zgartiradigan parametr sifatida qabul qiladi.

3
qo'shib qo'ydi
Bu men uchun to'g'ri javob.
qo'shib qo'ydi muallif Sithu, manba

See file_get_contents(): stream does not support seeking PHP

Uzoq fayl bilan ishlayapsiz. Seeking faqat mahalliy fayllar uchun quvvatlanadi.

file_get_html dan foydalanishdan oldin faylni mahalliy fayl tizimingizga nusxalashingiz kerak. Mahalliy aholi uchun yaxshi ishlashi kerak.

3
qo'shib qo'ydi
Changelogga ko'ra, php.net/manual/en/function.file- get-contents.php faylida masofadan fayllarni izlash bilan bog'liq hech qanday o'zgarish yo'q. Shuning uchun siz ilgari faqat mahalliy fayllar bilan ishlashni xohlaysiz deb taxmin qilmoqdaman (yoki siz qaerda dovonga mos ravishda uzoq fayllar uchun kichik intervallarda ishlay olasizmi?).
qo'shib qo'ydi muallif le_m, manba
PHP xatti-harakati o'zgartirilmaganmi? Ushbu xususiyatlar o'tmishdan o'zgarmaganmi?
qo'shib qo'ydi muallif re1, manba
rahmat. > Ba'zan izlanishlar, doc ma'lumotlariga ko'ra, masofaviy fayllar uchun kichik intervallarda ishlashi mumkin
qo'shib qo'ydi muallif re1, manba

Others have shared the solution, but no one has shared why. I don't know specifically why this is different between PHP 7.0 & 7.1, but the PHP.net docs for this function say:

Uzoq fayllar bilan qidirish (offset) qo'llab-quvvatlanmaydi. Qilishga urinish   Mahalliy bo'lmagan fayllarni qidirib olish kichik ofset bilan ishlashi mumkin, lekin bu   chunki u buffered oqimda ishlaydi.

Men uchun 75 funktsiyadagi file_get_contents da offset parametrini olib tashlash va/yoki 70-satrda file_get_html funktsiyasida ofsetni 0 ga sozlashni tasdiqlashim mumkin.

O'ylaymanki, offset parametri hech qachon mahalliy fayllar bilan ishlatilmasligi kerak edi:

Dastlabki oqimda o'qish boshlangan joyda ofset. Salbiy   strelka oqimlari oqim oxiridan hisoblashadi.

Umid qilamanki bu har qanday tartibsizlikni tozalaydi. Tashqi manbalar yordamida, boshidanoq oqimlarni boshlash mantiqan.

1
qo'shib qo'ydi

$ Offset = 0 ni tanlang

Bu ishlayapti!

0
qo'shib qo'ydi
PhP |BotsUz
PhP |BotsUz
93 ishtirokchilar

Phpni o'rganishni Hohlasangiz https://t.me/joinchat/AAAAAE-KRc5dd5tPMmGmWA A'zo bo'lin