나는 recurisve SpinTax 프로세서를 here처럼 사용 해왔다. 그리고 더 작은 문자열에 잘 적용된다. 그러나 문자열이 20KB를 넘으면 메모리 부족이 발생하여 문제가되고 있습니다.PHP Spintax 프로세서
나는이 같은 문자열이있는 경우 :
{Hello|Howdy|Hola} to you, {Mr.|Mrs.|Ms.} {Smith|Williams|Austin}!
을 나는 문자열을 통해 재귀 (위의 링크에서 볼 수 있듯이 기술을 사용하여 임의 합친 단어의 조합, 그리고 하지을 갖고 싶어 중괄호 안에 더 이상 단어가 없을 때까지) 어떻게해야합니까?
나는 이런 식으로 뭔가에 대해 생각했다 :
$array = explode(' ', $string);
foreach ($array as $k=>$v) {
if ($v[0] == '{') {
$n_array = explode('|', $v);
$array[$k] = str_replace(array('{', '}'), '', $n_array[array_rand($n_array)]);
}
}
echo implode(' ', $array);
을하지만 spintax에 대한 옵션 사이에서-공백이 때 떨어져 떨어진다. RegEx
여기 해결책이지만, 그것을 구현하는 방법을 모르겠다. 과은 훨씬 더 효율적인 성능을 가지고있다.
감사합니다.
감사합니다. Madara의 답변에서 말했듯이 메모리 오류가 발생하여 40KB 파일을 처리하는 데 걸리는 시간이 .0002590 초가되었습니다. 놀랄 만한! 감사합니다 – David