Busgame

Busgame
Рейтинг
24
Регистрация
10.07.2011

Выдаются две вышеописанные ошибки, очищается файл.

даже с заменой режима на W, происходит то же самое $a = fopen("last.txt", "w");

<?php
$a = fopen("last.txt", "r");
$b = fread("last.txt", filesize("last.txt"));
$c = fwrite("last.txt", "$b++");
?>

Такой код вызывает ошибки:

Warning: fread(): supplied argument is not a valid stream resource in W:\domains\localhost\script1.php on line 3

Warning: fwrite(): supplied argument is not a valid stream resource in W:\domains\localhost\script1.php on line 4

Но в то же время, file_get_contents работает

Как я с этими правами на папки только не совокуплялся - все бестолку, стоит "Только чтение", но говорят, что для программ значения не имеет.

Возникла нужда в небольшом скрипте, который будет увеличивать значение переменной, каждый раз, когда к ней обращаются (точнее к файлу, где отображается ее значение).

В папке с самим скриптом лежит текстовый файл с именем last.txt, из переменной $a в него укладывается одна цифра, которая должна увеличиваться на 1, каждый раз, когда скрипт открывает этот файл (т.е. при обновлении страницы в браузере).

$a = 1;
if ($opens = fopen("last.txt", "w")){
$an = fwrite($opens, $a + 1);
}

Таким способом увеличить значение не получилось, но открыть файл и записать туда просто 1 (стартовое значение переменной $a) удалось. Очень прошу помощи, может быть, кто-то догадывается, как можно увеличивать значение переменной $a и заносить его в last.txt с каждым открытием (а лучше закрытием) этого файла?

Большое спасибо.

Точно также пробовал менять значение на $a++, не получалось.

P.S: пишу этот скрипт для дальнейшего использования в большем по объему скрипте. Потом файл сменю на БД.

Нанимать фрилансера нет желания, лучше самому попарится и опыта получить. И хотя часто сюда пишу, многое не получается, тем не менее все лучше делать самому. К тому же, кто не хочет - тот не отвечает.

По теме: если брать элементы массива по порядку рефрешом в php не получается, буду использовать крон, как советовали ранее.

Следующая проблема вот в чем: имеем массив ссылок, каждая из них пронумерована, нужно, чтобы с обновлением страницы в браузер выводилось по одной ссылке из массива в порядке возрастания.

Массив:

1 ссылка = 1

2 ссылка = 2

3 ссылка = 3

4 ссылка = 4

Ожидаемый вывод:

1 ссылка - обновляем страницу > 2 ссылка - и так далее

Подскажите пожалуйста, как с обновлением страницы увеличивать переменную на 1.

$a = 1;

$b = $a++; // прибавляется лишь один раз

+1 и просто ++ работает точно также. Поэтому немного стопорнулся.

Спасибо.

Вы меня запутали, потом распутали, а потом опять запутали. Но я распутался сам 😡 .

echo все таки $res2, где $res2 = curl_exec($ch) (второе выполнение курла); Так окей, это получилось, большое спасибо.

Не подскажете где можно подробнее почитать про "$links_arr[] = pq($link)->attr('href');" ?

Да, сработало. Но проблема в том, что в массиве первый элемент отображается как "/" (ссылка на главную страницу). Как заставить php считать его ссылкой, а не просто символом?

Наверное уже заколебал вас... Не хочет, зараза, выводить первую страницу в браузер(хотя массив получается читаемым).

foreach ($urlosearch as $link) {


$links_arr[] = pq($link)->attr('href');

}

$first = array_shift($links_arr);

curl_setopt($ch, CURLOPT_URL, $first);

curl_setopt($ch, CURLOPT_HEADER, 1);

$res2 = curl_exec($ch);

echo $res2;

Может еще разок подскажете?

Говорит, просто я сначала не понял контекста фразы:

лень лезть в библиотеку

при таком коде:

$htmldoc = phpQuery::newDocument($res); //выполнение поиска


$urlosearch = $htmldoc->find('a');

foreach ($urlosearch as $link) {

$links_arr[] = pq($link)->attr('href');

}

$firstlink = array_shift($links_arr[]);

$perehod = curl_setopt($ch, CURLOPT_URL, $firstlink);

echo $perehod;

также выдается ошибка, что код вне массива "Warning: array_shift() [function.array-shift]: The argument should be an array", ругается именно на "$firstlink = array_shift($links_arr[]);". По ходу дела зря я на библиотеки нарвался. Нужно было регулярки добивать.

Всего: 121