Problem s eregi()

7 отговора 241 прегледа
#1

Problem s eregi()

hosting dostavchika mi si upgradna PHP versiata na 4.3.3 i v momenta imam problem s eregi(). Okaza se 4e na po-stara versia komandata se izpylnava korektno. Dali e vypros na nastroiki na PHP-to ili ima problem s tazi versia?
Eto i krtkata PHP programa koiato ne raboti na tazi versia:

<?
$GrabStart = "<table"; //- HTML-a otkoito pochva gepeneto
$GrabEnd = "</table>"; //- HTML-a s koto svyrshva gepeneto

$OpenFile = fopen("[линк]", "r"); $RetrieveFile = fread($OpenFile, 200000);
$GrabData = eregi("$GrabStart(.*)$GrabEnd", $RetrieveFile, $DataPrint);
fclose($OpenFile);

echo $DataPrint[0];
?>

programkata vzema opredelena 4ast ot html stranicata na poso4enia url adres.
Ako znaete ne6to za problema molia da mi pomognete ili da mi predlojite drugo re6enie.

Blagodaria v avans

Отговор
в отговор на CusE #2

Re: Problem s eregi()

хм, аз не загрявам защо това въобще е работило досега :)
когато четеш от network stream четенето спира в момента, когато поредния пакет стане достъпен. т.е. по твоя начин ще прочетеш само част от файла. целият файл се прочита така:

$OpenFile = fopen("[линк]", "r");
$RetrieveFile = "";
do {
$data = fread($OpenFile, 8192);
if (strlen($data) == 0) {
break;
}
$RetrieveFile .= $data;
} while (true);
fclose($OpenFile);

а щом ти трябва съдържанието на файла в низ, защо да не използваш направо:

$RetrieveFile = file_get_contents("[линк]");


Отговор
в отговор на CusE #3

Re: Problem s eregi()

аз мисля, че това по принцип не е правилно...
$GrabData = eregi("$GrabStart(.*)$GrabEnd", $RetrieveFile, $DataPrint);

(.*) - това според мен означава всички символи, включително и $GrabEnd

мисля, че трябва да се измъдри нещо от рода на (^$GrabEnd) на мястото на (.*) ама не съм наясно с точния синтаксис. смисъла е "всичко различно от $GrabEnd)

поне аз така виждам нещата....

[линк]
Отговор
в отговор на CusE #4

сигурен ли си, че е с eregi?

Макар и да не ми харесва как е написан, при мен този код работи.

По-вероятно са ти сетнали allow-url-fopen на off.

[линк]

Everything louder than everything else...
Отговор
в отговор на neuroshocked #5

хубав цикъл

Ако всеки цикъл го пишеш така, евала ти праскам.

Everything louder than everything else...
Отговор
в отговор на Dakota #6

Re: хубав цикъл

кой, аз ли? всъщност кода го изплагиатствах оттук:
[линк]
все пак благодаря за похвалата :)

p.s. при мен първоначалният код не работи. поради причината, която вече изтъкнах.

Отговор
в отговор на Dakota #7

Re: сигурен ли си, че е с eregi?

предполагам че проблема е в eregi() тъй като файла съм сигурен че се чете, поне като принтна $RetrieveFile ми показва всичко от А до Я.

Отговор
в отговор на neuroshocked #8

Re: Problem s eregi()

благодаря Ви много.
Реших си проблема успешно.

Отговор