Loading...
Пацаны как вывести итоговый результат по GET или POST в url ?

Нужно в строку url после ввода perevod.php?text= Red по GET запросу и обработки данных добавлять значение YATranslate(''.$result.'') и выводить в url переданное в другую переменную, что бы на выходе был такой урл: perevod.php?text=Red&perevod=Красный

Вот код переводчика основанном на api Яндекса:

<?php
// Место для вашего API-ключа
$yandex_translate_key = 'trnsl.1.1.20191001T161315Z.26135b22070b04e9.836bbdd7bf45984fd95b005d4f6f798489c709fc';
$string = $_GET['text'];///заводим слово через GET
$result = htmlspecialchars($string);
function YATranslate ($string, $lang1='en', $lang2='ru') {
global $yandex_translate_key;
$request = @file_get_contents('https://translate.yandex.net/api/v1.5/tr.json/translate?key='.$yandex_translate_key.'&text='.$string.'&lang='.$lang2.'-'.$lang1);
if ($request) {
$array = json_decode($request, true);
$text = $array['text'][0];
} else {
$text = $string;
}
return $text;
}
// Переводим строку
echo YATranslate(''.$result.'');
?>


Помогите, а то туплю
<?php

// Место для вашего API-ключа
$yandex_translate_key = 'trnsl.1.1.20191001T161315Z.26135b22070b04e9.836bbdd7bf45984fd95b005d4f6f798489c709fc';
$string = $_GET['text'];///заводим слово через GET
$result = htmlspecialchars($string);
function YATranslate ($string, $lang1='en', $lang2='ru') {
global $yandex_translate_key;
$request = @file_get_contents('https://translate.yandex.net/api/v1.5/tr.json/translate?key='.$yandex_translate_key.'&text='.$string.'&lang='.$lang2.'-'.$lang1);
if ($request) {
$array = json_decode($request, true);
$text = $array['text'][0];
} else {
$text = $string;
}
return $text;
}
// Переводим строку
$text = YATranslate($result);
if (!empty($text) AND empty($_GET['perevod'])) {
header("Location: perevod.php?text=Red&perevod={$text}");
exit;
}

?>

________
посл. ред. 02.10.2019 в 10:33; всего 1 раз(а); by Mistika
пацаны не знают. спроси в d1nka
.http. (02.10.2019 в 10:30)
Пацаны как вывести итоговый результат по GET или POST в url ?

Нужно в строку url после ввода perevod.php?text= Red по GET запросу и обработки данных добавлять значение YATranslate(''.$result.'') и выводить в url переданное в другую переменную, что бы на выходе был такой урл: perevod.php?text=Red&perevod=Красный

Вот код переводчика основанном на api Яндекса:

<?php
// Место для вашего API-ключа
$yandex_translate_key = 'trnsl.1.1.20191001T161315Z.26135b22070b04e9.836bbdd7bf45984fd95b005d4f6f798489c709fc';
$string = $_GET['text'];///заводим слово через GET
$result = htmlspecialchars($string);
function YATranslate ($string, $lang1='en', $lang2='ru') {
global $yandex_translate_key;
$request = @file_get_contents('https://translate.yandex.net/api/v1.5/tr.json/translate?key='.$yandex_translate_key.'&text='.$string.'&lang='.$lang2.'-'.$lang1);
if ($request) {
$array = json_decode($request, true);
$text = $array['text'][0];
} else {
$text = $string;
}
return $text;
}
// Переводим строку
echo YATranslate(''.$result.'');
?>


Помогите, а то туплю


Во первых, про global. Зачем он там? Ключ можно передать в саму функцию. Во вторых, проверка get через isset.
VaDoSiQ (02.10.2019 в 11:17)
Во первых, про global. Зачем он там? Ключ можно передать в саму функцию. Во вторых, проверка get через isset.

Возможно $yandex_translate_key в других функциях ещё используется
.http. ,
Если ключ API больше не используется ни в каких других функциях, делай так:
<?php
function translate($text, $from = 'ru', $to = 'en') {
$curl = curl_init();

curl_setopt($curl, CURLOPT_URL, 'https://translate.yandex.net/api/v1.5/tr.json/translate?&key=trnsl.1.1.20191001T161315Z.26135b22070b04e9.836bbdd7bf45984fd95b005d4f6f798489c709fc&text=' . $text . '&lang=' . $from . '-' . $to . '&format=plain');
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);

$response = curl_exec($curl);

curl_close($curl);

$json = json_decode($response, true);

$data = [
'code' => isset($json['code']) ? $json['code'] : null,
'text' => isset($json['text'][0]) ? $json['text'][0] : null,
];

if($data['code'] == 200) {
return urldecode($json['text'][0]);
} elseif($data['code'] == 401) {
return 'Неправильный API-ключ.';
} elseif($data['code'] == 402) {
return 'API-ключ заблокирован.';
} elseif($data['code'] == 404) {
return 'Превышено суточное ограничение на объем переведенного текста.';
} elseif($data['code'] == 413) {
return 'Превышен максимально допустимый размер текста.';
} elseif($data['code'] == 422) {
return 'Текст не может быть переведен.';
} elseif($data['code'] == 501) {
return 'Заданное направление перевода не поддерживается.';
}
}

$text = isset($_GET['text']) ? urlencode(trim($_GET['text'])) : null;
$translate = isset($_GET['translate']) ? $_GET['translate'] : null;

if(!empty($text) and empty($translate)) {
header('location: ?text=' . urldecode($text) . '&translate=' . translate($text));
exit;
}
?>


Если используется, делай с global:
<?php
$key = 'trnsl.1.1.20191001T161315Z.26135b22070b04e9.836bbdd7bf45984fd95b005d4f6f798489c709fc';

function translate($text, $from = 'ru', $to = 'en') {
global $key;

$curl = curl_init();

curl_setopt($curl, CURLOPT_URL, 'https://translate.yandex.net/api/v1.5/tr.json/translate?key=' . $key . '&text=' . $text . '&lang=' . $from . '-' . $to . '&format=plain');
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);

$response = curl_exec($curl);

curl_close($curl);

$json = json_decode($response, true);

$data = [
'code' => isset($json['code']) ? $json['code'] : null,
'text' => isset($json['text'][0]) ? $json['text'][0] : null,
];

if($data['code'] == 200) {
return urldecode($json['text'][0]);
} elseif($data['code'] == 401) {
return 'Неправильный API-ключ.';
} elseif($data['code'] == 402) {
return 'API-ключ заблокирован.';
} elseif($data['code'] == 404) {
return 'Превышено суточное ограничение на объем переведенного текста.';
} elseif($data['code'] == 413) {
return 'Превышен максимально допустимый размер текста.';
} elseif($data['code'] == 422) {
return 'Текст не может быть переведен.';
} elseif($data['code'] == 501) {
return 'Заданное направление перевода не поддерживается.';
}
}

$text = isset($_GET['text']) ? urlencode(trim($_GET['text'])) : null;
$translate = isset($_GET['translate']) ? trim($_GET['translate']) : null;

if(!empty($text) and empty($translate)) {
header('location: ?text=' . urldecode($text) . '&translate=' . translate($text));
exit;
}
?>

________
посл. ред. 02.10.2019 в 13:38; всего 7 раз(а); by VaDoSiQ
Евгений (02.10.2019 в 11:28)
Возможно $yandex_translate_key в других функциях ещё используется

Возможно, но для чего? Это можно организовать все в одной функции.
Онлайн: 5
Время:
Gen. 0.1069
(c) Bym.Guru 2010-2026