mega94

Рейтинг
79
Регистрация
15.05.2014
Rokkkin:
Тоже самое 403 Forbidden
Хитрить здесь не надо, нужно просто посмотреть какие заголовки отправляет браузер и отправлять такие же.

А примерчик не на бросите?

livetv:
Если потом по этому редиректу нужно перейти, то можно сказать, чтобы это делал сам curl:


curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_MAXREDIRS, 4);

Спасибо. Парсинг у меня идет через simple html dom =)

я что то не понимаю что тут я делаю не так?


$ch = curl_init();
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 0); //Устанавливаем параметр, чтобы curl возвращал данные, вместо того, чтобы выводить их в браузер.
curl_setopt($ch, CURLOPT_URL, 'http://topvideo.tj/serials/511180.html');
$data = curl_exec($ch);
curl_close($ch);
preg_match("/Location (.*\n)/U", $data, $matches);
print_r($matches);



---------- Добавлено 13.08.2016 в 21:21 ----------

тему можно закрыт нашел функцию для парсинга редиректа:


// тестируем URL
$urls = array(
"http://topvideo.tj/serials/511180.html",
);
foreach ($urls as $url) {
//echo "URL: $url\n";
$ch = curl_init();
// указываем url
curl_setopt($ch, CURLOPT_URL, $url);
// нам не нужно содержание страницы
curl_setopt($ch, CURLOPT_NOBODY, 1);

// нам необходимо получить HTTP заголовки
curl_setopt($ch, CURLOPT_HEADER, 1);

// возвращаем результаты вместо вывода
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$output = curl_exec($ch);
curl_close($ch);
// был ли HTTP редирект?
if (preg_match("!Location: (.*)!", $output, $matches)) {
return $matches[1];
}else{
return $url;
}
}
Gerga:
mega94, например так

$values = $_POST['value'];
if ( is_array( $values ) ) {
$out = '';
foreach ( $values AS $key=>$val ) {
$key_c = array_keys( $values[$key] );
$out .= isset($key_c[0]) ? '<Configurator Pid="'.$key.'" Vid="'.$key_c[0].'"/>' : '';
}
echo $out;
}

Спасибо, я совсем забыл про ключ и значения ((

Sigmo#ID:
Возможно:
print_r($res['xmlListrotected'][0]);

Нет это точно объект, там через методы. Вот класс

Сделал ответь такой:


UnboundedElementsIterator Object
(
[xmlListrotected] => SimpleXMLElement Object
(
[@attributes] => Array
(
[Sign] => смн
 => TJS
)

[0] => 43
)

[elementsTyperotected] => Array
(
[type] => complexType
[name] => OtapiMoney
)

[position:UnboundedElementsIteratorrivate] => 0
)
D_1:
У Вас объект, а не массив. Нужно извлекать методами класса

А как правильно выводит если данные хранятся в

$res = $item->GetMoney();
Сам класс
ps axf:
в этом куске у вас обрывок от джейсона и не объявлен массив.
начало должно выглядеть так:


концовка


выделил жирным недостающее.

Спасибо помогло.

admak:
Это джейсон-представление понимают многие(например JS), но не PHP.
Обработка джейсона в пхп - это еще ТАААА нелепая и долгая история. При малейшем чихе эта твАрынка безвучно дохнет. :(

Чтобы "чудо-парсер" json_decode съел данные, нужно привести в понятный ему вид, например руками привер первую строчку.
Было


Надо


т.е.
1. никаких одинарных кавычек - только двойные
2. все ключи в двойные кавычки
3. убрать начало "window.intelSearchData = "

Как по мне, то намного проще распарсить это самому при помощи регулярок - будет более предсказуемый результат.

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

---------- Добавлено 04.04.2016 в 13:41 ----------

что то не получается вот

LovelAss:
preg_match_all и json_encode вам в помощь.
json_encode

не помогает

Всего: 167