Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.04.2015, 16:15   #1
xclsv
Новичок
Джуниор
 
Регистрация: 10.04.2015
Сообщений: 3
По умолчанию strpos или неверный тип данных в переменной

Добрый день, друзья.
Я начинающий программист. Помогите, пожалуйста, найти ошибку.

PHP код:
 <?php

// чтение страницы после авторизации
function Read($url){
   
$ch curl_init();
   
curl_setopt($chCURLOPT_URL$url);
   
// откуда пришли на эту страницу
   
curl_setopt($chCURLOPT_REFERER$url);
   
//запрещаем делать запрос с помощью POST и соответственно разрешаем с помощью GET
   
curl_setopt($chCURLOPT_POST1);
   
curl_setopt($chCURLOPT_FOLLOWLOCATION1);
   
//отсылаем серверу COOKIE полученные от него при авторизации
   
curl_setopt($chCURLOPT_COOKIEFILE$_SERVER['DOCUMENT_ROOT'].'/cookie.txt');
   
curl_setopt($chCURLOPT_USERAGENT"Mozilla/4.0 (Windows; U; Windows NT 5.0; En; rv:1.8.0.2) Gecko/20070306 Firefox/1.0.0.4");

   
$result curl_exec($ch);

   
curl_close($ch);

   return 
$result;
}
// Твои параметры /
$url 'http://novosibirsk.drom.ru/mazda/cx-7/17639967.html';

// END >> Твои параметры /

// $result = Read($url);
$a Read($url);
if (
strpos($a'Mazda') != false ) {
 echo 
"+";
 } else {
 echo 
"-"; }
 
?>
Это простенький скрипт, который выдергивает содержимое страницы и выводит его на экран. Его писал не я. В довесок мне нужно узнать, есть ли определенный текст на странице или нет. Для этого я написал последнюю конструкцию if. Но она при любых раскладах выдает -, хотя в данном случае должна выдавать +. Подскажите, где я ошибся? Если честно, я даже не представляю как проверить себя и вывести результат работы функции Read на экран, т.к. браузер моментально определяет его как html и компилирует ) Заранее благодарен за ответы.
xclsv вне форума Ответить с цитированием
Старый 10.04.2015, 17:06   #2
Kostia
Участник клуба
 
Аватар для Kostia
 
Регистрация: 21.11.2007
Сообщений: 1,690
По умолчанию

Код:
<?php

// чтение страницы после авторизации
function Read($url)
{
	$ch = curl_init();
	curl_setopt($ch, CURLOPT_URL, $url);
	// откуда пришли на эту страницу
	curl_setopt($ch, CURLOPT_REFERER, $url);
	//запрещаем делать запрос с помощью POST и соответственно разрешаем с помощью GET
	curl_setopt($ch, CURLOPT_POST, 1);
	curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
	//отсылаем серверу COOKIE полученные от него при авторизации
	curl_setopt($ch, CURLOPT_COOKIEFILE, $_SERVER['DOCUMENT_ROOT'] . '/cookie.txt');
	curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/4.0 (Windows; U; Windows NT 5.0; En; rv:1.8.0.2) Gecko/20070306 Firefox/1.0.0.4");

	$result = curl_exec($ch);

	curl_close($ch);

	return $result;
}

// Твои параметры /
$url = 'http://novosibirsk.drom.ru/mazda/cx-7/17639967.html';

// END >> Твои параметры /
// $result = Read($url);
ob_start();
Read($url);
$a = ob_get_contents();
ob_end_clean();

if (strpos($a, 'Mazda') !== false)
{
	echo "+";
}
else
{
	echo "-";
}

curl_exec

Цитата:
Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки. Однако, если установлена опция CURLOPT_RETURNTRANSFER, при успешном завершении будет возвращен результат, а при неудаче - FALSE.
PHP скрипты можно запускать из под консоли.
Цитата:
$ php path/to/script.php
Kostia вне форума Ответить с цитированием
Старый 10.04.2015, 17:19   #3
xclsv
Новичок
Джуниор
 
Регистрация: 10.04.2015
Сообщений: 3
По умолчанию

Большое спасибо. Разобрался. А как быть с данными, которые подгружаются скриптами? К примеру "Задать вопрос продавцу" уже не ищется, хотя фактически там есть. Собственно поэтому и пришлось использовать curl, а не file_get_content.
xclsv вне форума Ответить с цитированием
Старый 10.04.2015, 18:04   #4
xclsv
Новичок
Джуниор
 
Регистрация: 10.04.2015
Сообщений: 3
По умолчанию

Вообще методом проб и ошибок обнаружил, что не ищутся кириллические данные ) Цифры и латиница ищутся и находятся )
Задачу я свою решил, но если мне кто-то объяснит, почему так, буду благодарен.
xclsv вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Аргументы имеют неверный тип Amberlina4ka БД в Delphi 1 25.01.2013 04:16
Ошибка ввода. Неверный тип Ёжик в тумане Общие вопросы Delphi 7 31.12.2012 11:28
Неверный тип переменной Region27 C++ Builder 2 20.06.2012 08:52
Тип переменной BloodyBlade Паскаль, Turbo Pascal, PascalABC.NET 3 24.09.2011 19:57
Тип переменной KoBRaAndrey Общие вопросы Delphi 2 06.10.2009 00:11