1

単純な HTML DOM を使用して Web ページから取得した名前を分割しようとしていますが、リスト機能と分解機能ではうまくいきません。私がやりたいのは、名前 {firstname middle(optional) lastname} を取り、それらを分割することだけです。ミドルネームは一部の名前にのみ表示されますが、それを処理できればボーナスになります.

コードは次のとおりです。

    <?php

    $data = new simple_html_dom();  
    $data->load_file("http://www.ratemyprofessors.com/ShowRatings.jsp?tid=861228");
    $profName= $data->find("//*[@id=profName]", 0);
    $profName = strip_tags($profName);
    echo "Full Name: " . $profName = trim($profName);
    list($first, $last) = explode(' ', "$profName ");
    echo "first name: " .  $first;
    echo "last name: " . $last;
?>

私の出力は次のとおりです。

Full Name: Jennifer Aaker
firstname: Jennifer Aaker
lastname: 
4

2 に答える 2

3

試してみてください:

list($first, $last) = explode("&nbsp;", $profName);
于 2012-09-08T21:14:17.077 に答える
0

これは、トリックを実行する必要がある単純な関数です。

function first_last($s) {
    /* assume first name is followed by a whitespace character. take everything after for last. middle initial will be returned as part of last. */
    $pos = strpos($s,' ');
    if ($pos == FALSE) { // if space is not found... call if first name
        return array($s,''); 
    }
    $first = substr($s, 0 , $pos);
    $last = substr($s,$pos + 1);    
    return array($first,$last);
}

// test
$s2 = 'john stewart';
list($first,$last) = first_last($s2);
于 2013-10-07T17:01:35.917 に答える