• User Attivo

    Aiuto per uso classe per testo alternativo.

    Ciao, sono riuscito a trovare su un importante sito di classi PHP la classe "alter" che esegue la funzione di creare stringhe di testo alternative prelevandole da un testo scritto utilizzando i caratteri speciali "{", "}" e "|", per esempio:

    {Ciao|Buongiorno}, mi chiamo {Paolo|Giorgio}

    tramite questo formato, la classe genera una frase selezionando a caso la prima o la seconda parola rinchiusa nelle prime parentesi graffe, riporta tale e quale "mi chiamo" ed effettua un'altra selezione tra il secondo gruppo di parole, uno dei risultati potrebbe essere:

    Ciao, mi chiamo Giorgio
    oppure
    Buongiorno, mi chiamo Paolo

    chi si occupa di SEO sicuramente conoscerà script di questo tipo che vengono chiamati in inglese "content spinner" or "unique article generator".

    Considerato che non ho conoscenze di php, vorrei sapere se qualcuno è disposto a creare uno script che colleghi questa classe ad un formulario con un solo campo di testo e che tramite il tasto di invio, ricaricando lo schermo, proponga una nuova frase a seconda dei parametri inseriti, questa è la classe intera:

    <?
    // Class dealing with alternative strings:
    // version 1.6 - now with regexps
    // String Syntax: some text (h|e|e|l|l|l|l|o| |,|world) some text    
    class alternate {
      var $s;
    var $pattern;
    
            function ms () {
    //seeding
    	    list($usec, $sec) = explode(' ', microtime());
    	    return (float) $sec + ((float) $usec * 100000);
    		srand(make_seed());
    
    			}
    	function bracket ($str) {
    	//returns bracket code
    	 if (!strcmp($str,"(")) {return 1;}
    	 elseif (!strcmp($str,")")) {return -1;} else {return 0;}
    
    				}
    
    	function alternate ($s="") {
    	$this->ms();
    	$this->s=$s;
    	$this->pattern="/\(([^\(]*?)\)/m";
    	while (preg_match($this->pattern,$this->s)!=0)
    	$this->s=preg_replace_callback ($this->pattern, 
    	create_function (
    	'$matches', 
    	'$store=explode("|",$matches[1]);
    	$store=explode("|",$matches[1]);
    	$rand_key=$store[array_rand($store,1)];
    	return $rand_key;'),
    	$this->s);
       }
    }
    
    
    $alter=new alternate ("Running script\n((ha\nil|cr\ny|hello), (world|gold|silver)|how do you (do|did|man)?|anybody here?)");
    echo $alter->s;
    
    ?>
    

    P.S.: la classe non sembra più supportata dal suo creatore.