html 태그 사이에 문자열을 추출하고 google api를 사용하여 다른 언어로 변환하고 html 태그로 문자열을 추가하려고합니다. 예를 들어PHP에서 html 태그 사이의 문자열 추출
, 내가 문자열을 추출 할
<b>This is an example</b>
"이것은 예입니다"및 기타 언어로 변환 한 후 다시 굵은 태그 문자열을 추가합니다.
누구든지이 작업을 진행할 수 있습니까?
감사 레카
html 태그 사이에 문자열을 추출하고 google api를 사용하여 다른 언어로 변환하고 html 태그로 문자열을 추가하려고합니다. 예를 들어PHP에서 html 태그 사이의 문자열 추출
, 내가 문자열을 추출 할
<b>This is an example</b>
"이것은 예입니다"및 기타 언어로 변환 한 후 다시 굵은 태그 문자열을 추가합니다.
누구든지이 작업을 진행할 수 있습니까?
감사 레카
Here's a working example 다음은 Google API를 사용하여 서버 측을 번역 한 것입니다. 이 함수는 문자열을 입력으로 사용하고 변환하기 전에 문자열을 HTML 태그에서 제거합니다.
언어는 인수로 전달됩니다.
<?php
// This function translates a string $source written in the $fromLang languages to the $toLang language.
function translateTexts($source, $fromLang, $toLang)
{
/* Language choices: 'AFRIKAANS' : 'af', 'ALBANIAN' : 'sq', 'AMHARIC' : 'am', 'ARABIC' : 'ar', 'ARMENIAN' : 'hy', 'AZERBAIJANI' : 'az', 'BASQUE' : 'eu', 'BELARUSIAN' : 'be', 'BENGALI' : 'bn', 'BIHARI' : 'bh', 'BRETON' : 'br', 'BULGARIAN' : 'bg', 'BURMESE' : 'my', 'CATALAN' : 'ca', 'CHEROKEE' : 'chr', 'CHINESE' : 'zh', 'CHINESE_SIMPLIFIED' : 'zh-CN', 'CHINESE_TRADITIONAL' : 'zh-TW', 'CORSICAN' : 'co', 'CROATIAN' : 'hr', 'CZECH' : 'cs', 'DANISH' : 'da', 'DHIVEHI' : 'dv', 'DUTCH': 'nl', 'ENGLISH' : 'en', 'ESPERANTO' : 'eo', 'ESTONIAN' : 'et', 'FAROESE' : 'fo', 'FILIPINO' : 'tl', 'FINNISH' : 'fi', 'FRENCH' : 'fr', 'FRISIAN' : 'fy', 'GALICIAN' : 'gl', 'GEORGIAN' : 'ka', 'GERMAN' : 'de', 'GREEK' : 'el', 'GUJARATI' : 'gu', 'HAITIAN_CREOLE' : 'ht', 'HEBREW' : 'iw', 'HINDI' : 'hi', 'HUNGARIAN' : 'hu', 'ICELANDIC' : 'is', 'INDONESIAN' : 'id', 'INUKTITUT' : 'iu', 'IRISH' : 'ga', 'ITALIAN' : 'it', 'JAPANESE' : 'ja', 'JAVANESE' : 'jw', 'KANNADA' : 'kn', 'KAZAKH' : 'kk', 'KHMER' : 'km', 'KOREAN' : 'ko', 'KURDISH': 'ku', 'KYRGYZ': 'ky', 'LAO' : 'lo', 'LATIN' : 'la', 'LATVIAN' : 'lv', 'LITHUANIAN' : 'lt', 'LUXEMBOURGISH' : 'lb', 'MACEDONIAN' : 'mk', 'MALAY' : 'ms', 'MALAYALAM' : 'ml', 'MALTESE' : 'mt', 'MAORI' : 'mi', 'MARATHI' : 'mr', 'MONGOLIAN' : 'mn', 'NEPALI' : 'ne', 'NORWEGIAN' : 'no', 'OCCITAN' : 'oc', 'ORIYA' : 'or', 'PASHTO' : 'ps', 'PERSIAN' : 'fa', 'POLISH' : 'pl', 'PORTUGUESE' : 'pt', 'PORTUGUESE_PORTUGAL' : 'pt-PT', 'PUNJABI' : 'pa', 'QUECHUA' : 'qu', 'ROMANIAN' : 'ro', 'RUSSIAN' : 'ru', 'SANSKRIT' : 'sa', 'SCOTS_GAELIC' : 'gd', 'SERBIAN' : 'sr', 'SINDHI' : 'sd', 'SINHALESE' : 'si', 'SLOVAK' : 'sk', 'SLOVENIAN' : 'sl', 'SPANISH' : 'es', 'SUNDANESE' : 'su', 'SWAHILI' : 'sw', 'SWEDISH' : 'sv', 'SYRIAC' : 'syr', 'TAJIK' : 'tg', 'TAMIL' : 'ta', 'TATAR' : 'tt', 'TELUGU' : 'te', 'THAI' : 'th', 'TIBETAN' : 'bo', 'TONGA' : 'to', 'TURKISH' : 'tr', 'UKRAINIAN' : 'uk', 'URDU' : 'ur', 'UZBEK' : 'uz', 'UIGHUR' : 'ug', 'VIETNAMESE' : 'vi', 'WELSH' : 'cy', 'YIDDISH' : 'yi', 'YORUBA' : 'yo', 'UNKNOWN' : '' */
// Creating the query URL
$url = "http://ajax.googleapis.com/ajax/services/language/translate?v=1.0&q=" . urlencode($source) . "&langpair=" . $fromLang . "%7C" . $toLang;
// send translation request
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$response = curl_exec($ch);
curl_close($ch);
// now, process the JSON string
$json = json_decode($response, true);
// If response status is okay
if ($json['responseStatus'] == 200)
{
$translated = $json['responseData']['translatedText'];
} else
{
$translated = "****Error. Couldn't translate.****";
}
// return translated text
return $translated;
}
// Get the string you want to translate
$string = "<b>This is an example</b>";
// Strip the HTML tags from the strip and translate it.
echo translateTexts(strip_tags($string), 'en', 'es');
?>
위 코드를 실행하면 헤더에 적절한 자체 식별 코드를 추가해야합니다.
참고 문헌 :
Google Translation API section for Flash and Non-Javascript Interfaces
PHP cUrl examples
json_decode()
strip_tags()
코드 주셔서 감사합니다. 잘 처리되고 있습니다. – Rekha
@rekhasatjvika - 정말 좋습니다! 코드가 작동하고 문제가 해결 된 경우 답변의 위 및 아래 투표 바로 아래에있는 체크 표시의 개요를 클릭하여 동의해야합니다. –
$text = '<b>This is an example</b>';
$strippedText = strip_tags($text);
echo $strippedText; // This is an example
가장 간단한 방법은 DOM은 HTML 태그의 내용을 얻기 위해 구문 분석을 사용하는 것입니다. 그러나 내용을 가져올 태그를 지정해야합니다. 예를 들어, table이나 tr의 내용은 원하지 않지만 td의 내용을 원할 수 있습니다. 다음은 모든 b 태그의 내용을 가져 와서 그 사이의 텍스트를 바꾸는 예제입니다.
$dom_doc = new DOMDocument();
$html_file = file_get_contents('file.html');
// The next line will likely generate lots of warnings if your html isn't perfect
// Put an @ in front to suppress the warnings once you review them
$dom_doc->loadHTML($html_file);
// Get all references to <b> tag
$tags_b = $dom_doc->getElementsByTagName('b');
// Extract text value and replace with something else
foreach($tags_b as $tag) {
$tag_value = $tag->nodeValue;
// get translation of tag_value
$translated_val = get_translation_from_google();
$tag->nodeValue = $translated_val;
}
// save page with translated text
$translated_page = $dom_doc->saveHTML();
편집 : file_get_contents의 수정 된 맞춤법이 추가되었습니다. $ translated_val 후
좀 더 컨텍스트를 제공해야합니다. 이 문자열은 어디에 표시됩니까? – Artefacto
본 적이 있습니까? http://code.google.com/apis/ajax/playground/?exp=language#translate –