Используя str_replace () и вернуть две разные версии - PullRequest
0 голосов
/ 18 марта 2011

У меня есть текстовое поле, где я могу ввести несколько доменных имен, чтобы проверить доступность. В моем сценарии ниже я заменяю пробел на «-». Но я также хочу версию доменного имени без «-».

Скажем, например, что я набираю:

доброе слово

Слово бога другого

Затем я хочу, чтобы скрипт возвратил оба:

а-хорошее слово

а-ругой бог-слово

А также:

agoodword

anothergodword

$domaininput = (isset($_POST['domainname'])) ? $_POST['domainname'] : '';
$change_space = str_replace(" ","-",$domaininput);
$change_new_line = str_replace("\n",",",$change_space);
$manydomains = explode("," , $change_new_line);
foreach ($manydomains as $domain){
//some code
}

Как это можно сделать в PHP?

Ответы [ 3 ]

0 голосов
/ 18 марта 2011
$manydomains = ... // as above...

// Get alternatives by removing dashes:
$alternatives = explode(",", str_replace("-", "", $change_new_line));

// If a domain name did not contain a dash, there will be duplicates in
// $manydomains and $alternatives.  array_unique() takes care of those.
$manydomains = array_unique(array_merge($manydomains, $alternatives));
0 голосов
/ 18 марта 2011

, если вы еще не получили его на работу, здесь грубая функция для выполнения задания, плюс он будет возвращать только уникальные домены

function getDomains($domaininput){
    function domainA($domaininput){
        $return = str_replace(" ","-",$domaininput);
        return $return;
    }
    function domainB($domaininput){
        $return = str_replace("-","",$domaininput);
        return $return;
    }
    $domaininput = str_replace("\n",",",$domaininput);
    $return = domainA($domaininput)."\n";
    $return .=domainB($return);
    $return = str_replace("\n",",",$return);
    $return = trim($return,'-,');
    $return = explode(",",$return);
    $return = array_unique($return);
    return $return;
}


$manydomains = getDomains($domaininput);
0 голосов
/ 18 марта 2011

Попробуйте:

$domaininput = (isset($_POST['domainname'])) ? $_POST['domainname'] : '';
$change_space = str_replace(" ","-",$domaininput);
$change_space .= str_replace(" ", "", $domaininput);
$change_new_line = str_replace("\n",",",$change_space);
$manydomains = explode("," , $change_new_line);
foreach ($manydomains as $domain){
//some code
}
...