public static string Spin(string content)
{
const char OPEN_BRACE = '{';
const char CLOSE_BRACE = '}';
const char DELIMITER = '|';
var start = content.IndexOf(OPEN_BRACE);
var end = content.IndexOf(CLOSE_BRACE);
if (start == -1 && end == -1 || start == -1 || end < start)
{
return content;
}
if (end == -1)
{
throw new ArgumentException("Unbalanced brace.");
}
var substring = content.Substring(start + 1, content.Length - (start + 1));
var rest = Spin(substring);
end = rest.IndexOf(CLOSE_BRACE);
if (end == -1)
{
throw new ArgumentException("Unbalanced brace.");
}
var splits = rest.Substring(0, end).Split(DELIMITER);
var item = splits[Randomizer.Next(0, splits.Length)];
return content.Substring(0, start) + item + Spin(rest.Substring(end + 1, rest.Length - (end + 1)));
}
เป็นฟังก์ชั่นแปลง spin format text ให้เป็นข้อความที่ถูก spin แล้วน่ะครับ
เช่น {hi|hello|howdy} the {world|earth|planet} = hello the earth, hi the world, howdy the earth
ขอบคุณล่วงหน้าครับ
ช่วยแปลง function จาก c# เป็น php ให้หน่อยครับ
{
const char OPEN_BRACE = '{';
const char CLOSE_BRACE = '}';
const char DELIMITER = '|';
var start = content.IndexOf(OPEN_BRACE);
var end = content.IndexOf(CLOSE_BRACE);
if (start == -1 && end == -1 || start == -1 || end < start)
{
return content;
}
if (end == -1)
{
throw new ArgumentException("Unbalanced brace.");
}
var substring = content.Substring(start + 1, content.Length - (start + 1));
var rest = Spin(substring);
end = rest.IndexOf(CLOSE_BRACE);
if (end == -1)
{
throw new ArgumentException("Unbalanced brace.");
}
var splits = rest.Substring(0, end).Split(DELIMITER);
var item = splits[Randomizer.Next(0, splits.Length)];
return content.Substring(0, start) + item + Spin(rest.Substring(end + 1, rest.Length - (end + 1)));
}
เป็นฟังก์ชั่นแปลง spin format text ให้เป็นข้อความที่ถูก spin แล้วน่ะครับ
เช่น {hi|hello|howdy} the {world|earth|planet} = hello the earth, hi the world, howdy the earth
ขอบคุณล่วงหน้าครับ