このスクリプトは、コードでbb-codeのようなタグを使用できるように作成しました。最良の方法を決定し、 bbタグを動的に置き換える方法を尋ねた後、多くの時間を費やしましたか?、preg_replace_callbackを使用することにしました。
ただし、同じ行に複数のアイテムがある場合は問題があります
Man [forvo=man,nl]
Mannen [forvo=mannen,nl]
上記の部分は機能しますが、以下は機能しません。
Kip [forvo=kip,nl] - Kippen [forvo=kippen,nl]
Bal [forvo=bal,nl] - Ballen [forvo=ballen,nl]
Vrouw [forvo=vrouw,nl] - Vrouwen [forvo=vrouwen,nl]
file_get_contents()の使用は推奨されるオプションではないことは知っていますが、1行に複数のForvoタグを使用する場合は、preg_replace_callbackの別の解決策も見つける必要がありますか?
<?php
// Replace forvos in the lesson
$lesson_body = $lesson['Lesson']['body'];
function forvize($match) {
$word = $match[1];
$language = $match[2];
$link = "http://apifree.forvo.com/action/word-pronunciations/format/js-tag/word/".$word."/language/".$language."/order/rate-desc/limit/1/key/API_KEY/";
$link = file_get_contents($link);
return $link;
}
//URL's
$lesson_body = preg_replace_callback("/\[forvo\=(.*),(.*)\]/", 'forvize', $lesson_body);
?>