Javascript php script

2 Cevap php

Ben javascript benzer bir şey yazmaya çalışıyorum

function Spin($txt){

$test = preg_match_all("#\{(.*?)\}#", $txt, $out);

if (!$test) return $txt;

$toFind = Array();
$toReplace = Array();

foreach($out[0] AS $id => $match){
$choices = explode(”|”, $out[1][$id]);
$toFind[]=$match;
$toReplace[]=trim($choices[rand(0, count($choices)-1)]);
}

return str_replace($toFind, $toReplace, $txt);

Ama nereden başlayacağınızı emin değil - herkes bana yardımcı olabilir ki orada varsa, lütfen yardım!

Ben bir girdi olarak şu var:

{Keyword 1 | anahtar kelime 2 | keyword 3} {kelime 1 | word 2 | 3 kelime} {test 1 test 2 test 3}

Senaryonun amacı birleştirmek için

  • [Anahtar kelime 1] [kelime 1] [Test 1]
  • [Anahtar kelime 2] [ve kelime 2] [test 2]
  • [Anahtar kelime 3] [ve kelime 3] [Test 3]

Ben {dize 1} hiç orada nerede kırmak ilk dize almak için bir dizi oluşturmak için nasıl emin değilim bir | daha sonra dize 2 {2} dizesini almak ve de onu kırmak | ve {3} dize ve en kırmak |

ve sonra dizeleri birleştirmek için ...

2 Cevap

Giriş ne de çıkış ne bana mantıklı, ama iyi, bu doğru yönde içine itmek gerekir:

var input = '{keyword 1 | keyword 2 | keyword 3} {word 1 | word 2 | word 3} {test 1, test 2, test 3}';
var matches = input.match(/\{(.*?)\}/ig); // grab stuff in curly braces
var choices = matches[0].replace('{', '') // remove left curly brace
                        .replace('}', '') // remove right curly brace
                        .split(' | ');    // split into array

choices daha sonra bir dizi olacak

['keyword 1', 'keyword 2', 'keyword 3']

Siz kelime ve testler için aynı yapabileceğini ve uygun gördüğünüz gibi daha sonra bu birleştirebilirsiniz.

Dize split yöntemi arayın

diziler ve yöntemini katılmak

Javascript için ara bölme ve JavaScript google (ayrı sorgu) katılmak. W3Schools bağlantıları oldukça yararlıdır