限制搜索域

时间:2017-03-22 18:37:39

标签: php search restrict

我有一个数据集,我正在搜索某些IPA symbols。我想根据下面代码中显示的$的值限制搜索域,但不知道如何。 编辑:$ where在哪里是“开始”“nucleui”和“coda”。 有谁知道如何限制搜索域?(下面的代码是在php但是文件链接到一个人可用于搜索数据集中的IPA符号的HTML文件。)编辑:请参阅底部添加的代码。

//set up variables
$words = $table[0]; //row 1 of table
$target = $table[1]; //row 2
$indices = array(); //used to store column numbers
$IPAstr = $_POST["ipa"];
$where = $_POST["where"];

//Find $IPAstr in $target
for($i=1; $i<count($target); $i++)
{
    if (mb_strpos($target[$i],$IPAstr) !== false)
        $indices[] = $i;        
}

//List realizations & count frequency
for($i=0; $i<count($indices); $i++)
{
    $index = $indices[$i];
    $ipalist = array();
    echo "<table border=1><tr><td>".$target[$index]." in " . $words[$index]."</td></tr><td>";
    //output each speaker and count frequency
    for ($j=2; $j<count($table); $j++) {
        echo ($j-1).": ".$table[$j][$index]."<br>";
        $ipalist[$table[$j][$index]]++;
    }
    echo "<br>";
    //output frequency list
    foreach($ipalist as $ipa=>$fre)
        echo "$ipa: $fre<br>";
    echo "</td></tr></table>";
}

//Code to help search for "onset" "nuclei" and "coda"
//list onsets only
echo "Onsets only<br>";
for($col=0; $col<count($table[0]); $col++) {
    $s = $table[0][$col];
    if (whichSyllPart($s) == 'o') echo "$s ";   
}

//list nuclei only
echo "Nuclei only<br>";
for($col=0; $col<count($table[0]); $col++) {
    $s = $table[0][$col];
    if (whichSyllPart($s) == 'n') echo "$s ";   
}

//list codas only
echo "Codas only<br>";
for($col=0; $col<count($table[0]); $col++) {
    $s = $table[0][$col];
    if (whichSyllPart($s) == 'c') echo "$s ";   
}

1 个答案:

答案 0 :(得分:0)

为了限制搜索域,您需要输入以下代码作为代码中“// Find $ IPAstr in $ target”部分的一部分。

//Find $IPAstr in $target
for($i=1; $i<count($target); $i++)
{
    if ($where == whichSyllPart($words[$i])){
        if (mb_strpos($target[$i],$IPAstr) !== false)
            $indices[] = $i;
    }
    else if ($where == "everywhere"){
        if (mb_strpos($target[$i],$IPAstr) !== false)
            $indices[] = $i;
    }
}

要运行此功能,您需要一个函数whichSyllPart()

function whichSyllPart($sy)
{
    $pt = $sy[strlen($sy)-1];
    return($pt);
} 

这会添加一个if / else if语句,其中包含whichSyllPart()函数,该函数根据$ where的值限制搜索。