Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / вызов функции одного php скрипта из другого / 9 сообщений из 9, страница 1 из 1
31.10.2016, 15:20
    #39338007
nikomp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вызов функции одного php скрипта из другого
Есть скрипт
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
<?php
function test() {
    if ($_SERVER['REQUEST_METHOD'] == 'GET') {

.................................        
        	echo json_encode($data,JSON_UNESCAPED_UNICODE);


        }
}
test() ;  

?>



возвращает данные
[{"speed":"1.5789"},{"speed":"2.6667"},{"speed":"2.6667"},{"speed":"0.4000"},{"speed":"1.5000"},{"speed":"0.3333"},{"speed":"2.2500"},{"speed":"1.0000"},{"speed":"1.1429"},{"speed":"1.3333"},{"speed":"0.3000"},{"speed":"0.6000"},{"speed":"3.0000"},{"speed":"0.5000"},{"speed":"2.0000"}]

пробую обратиться к функции test() из другого скрипта

Код: php
1.
2.
3.
4.
5.
6.
<?php
    include('getSpeedDeveloper.php');
    $json =getSpeedDeveloper() ;
    $obj =(array) json_decode($json,true);
    echo $obj[1];
?>



возвращаются опять все значения, а мне нужно получить доступ к конкретному значению по индексу. Прошу подскажите как это реализовать?
...
Рейтинг: 0 / 0
31.10.2016, 16:05
    #39338079
nikomp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вызов функции одного php скрипта из другого
Решение

Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
<?php
function test() {
    if ($_SERVER['REQUEST_METHOD'] == 'GET') {
.......................................
        
        	return json_encode($data,JSON_UNESCAPED_UNICODE);


        }
}
test() ;  

?>



во втором скрипте



Код: php
1.
2.
3.
4.
5.
6.
<?php
    include ('getSpeedDeveloper.php');
    //include('getSpeedDeveloper.php');
    $obj = (array) json_decode(test(),true);
    echo $obj[0]['speed'];
?>
...
Рейтинг: 0 / 0
31.10.2016, 16:06
    #39338081
nikomp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вызов функции одного php скрипта из другого
хотел жирным выделить, надо так:

Код: php
1.
return json_encode($data,JSON_UNESCAPED_UNICODE);
...
Рейтинг: 0 / 0
01.11.2016, 15:51
    #39339056
nikomp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вызов функции одного php скрипта из другого
снова запутался.

есть php скрипт 1.php, в нем объявлена функция test(). Он вызывается из html так
Код: html
1.
2.
3.
4.
5.
6.
7.
8.
var xhttp= new XMLHttpRequest();
			

			var uri='http://logjob1.h1n.ru/getSpeedDeveloper.php';
			var res=encodeURI(uri);

			xhttp.open('GET',res,false);
			xhttp.send();



должен вернуть значения через echo.

есть скрипт 2.php он вызывает функцию test() из 1.php, орбрабатывает данные и выдает свой результат.
Проблема в том, что в скрипте 2.php при обращении к функции test() я получаю результат самой функции, который выдается по echo + обработанные данные. Как оставить только обработанные данные?
...
Рейтинг: 0 / 0
01.11.2016, 16:54
    #39339148
vkle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вызов функции одного php скрипта из другого
nikompесть php скрипт 1.php, в нем объявлена функция test(). Он вызывается из html так
Код: html
1.
2.
3.
4.
5.
6.
7.
8.
var xhttp= new XMLHttpRequest();
			

			var uri='http://logjob1.h1n.ru/getSpeedDeveloper.php';
			var res=encodeURI(uri);

			xhttp.open('GET',res,false);
			xhttp.send();

Тут вызывается getSpeedDeveloper.php. По крайней мере, в этом коде про 1.php ничего не сказано.

Ну ладно, предположим, это одно и то же.


nikompесть скрипт 2.php он вызывает функцию test() из 1.php, орбрабатывает данные и выдает свой результат. Проблема в том, что в скрипте 2.php при обращении к функции test() я получаю результат самой функции, который выдается по echo + обработанные данные.Ну, это понятно. Что-то вроде
Код: php
1.
2.
3.
4.
5.
6.
7.
<?php
// 2.php
include '1.php';
$a = test();
echo $a;
// тут обработка данных
echo 'свой результат';



nikompКак оставить только обработанные данные?Убрать echo $a;
Не?
Тогда ищите echo в других местах.
...
Рейтинг: 0 / 0
01.11.2016, 18:58
    #39339288
vkle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вызов функции одного php скрипта из другого
Как вариант, можно очистить буфер вывода перед отдачей своих (обработанных) данных.
...
Рейтинг: 0 / 0
01.11.2016, 22:15
    #39339412
nikomp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вызов функции одного php скрипта из другого
vkle,
не совсем так

скрипт 1.php
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
<?php
function test() {
    if ($_SERVER['REQUEST_METHOD'] == 'GET') {

.................................        
        	return json_encode($data,JSON_UNESCAPED_UNICODE);


        }
}
echo test() ;  

?>



echo test() - чтоб можно было получить результат из html, иначе ничего не возвращается.

скрипт 2.php

Код: php
1.
2.
3.
4.
5.
6.
<?php
    include ('getSpeedDeveloper.php');
    //include('getSpeedDeveloper.php');
    $obj = (array) json_decode(test(),true);
    echo $obj[0]['speed'];
?>



при выполнении этого скрипта получаю в результат данные из 1.php от команды echo test() + данные от команды echo $obj[0]['speed']; из второго скрипта, хотя вроде бы вызывал только функцию test(). Такое ощущение, что по команде include у меня выполнился весь скрипт 1.php.

Ничего лучшего не смог придумать как передать из html в строке с GET запросом доп. параметр, который анализирую в скрипте 1.php. Если параметр есть выполняю echo test() иначе нет.

Если знаете более правильный вариант, прошу поделиться, мне интересно.
...
Рейтинг: 0 / 0
01.11.2016, 22:16
    #39339413
nikomp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вызов функции одного php скрипта из другого
getSpeedDeveloper.php = 1.php
...
Рейтинг: 0 / 0
01.11.2016, 22:24
    #39339416
vkle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вызов функции одного php скрипта из другого
nikompТакое ощущение, что по команде include у меня выполнился весь скрипт 1.php.Ощущение? Хм, вообще-то, инклюд для того и делается, чтобы включить код одного файла в состав другого. В подключаемом файле имеется определение функции, имеется вызов этой функции и имеется вывод результата функции. Отделите мух от котлет. Убирайте этот вывод, оставляйте только одно определение функции - и будет Вам счастье. А для обработки запросов делайте другой файл, где инклюдится этот 1.php и выводится результат. Ну, или наоборот, определение функции в другой файл выносите - как удобнее.
...
Рейтинг: 0 / 0
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / вызов функции одного php скрипта из другого / 9 сообщений из 9, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]