2014-02-16 5 views
0

phpbb_posts라는 phpbb 테이블의 행을 반복하고 phpbb의 "post_subject"열에서 각 항목을 추출하고 해당 값을 미리 정의 된 문자열과 비교하려고합니다. WordPress의 PHP 파일에 있지만 몇 가지 문제가 있습니다 - 표현은 사실로 평가하지 않습니다.

내 phpBB의 테이블은 WP의 데이터베이스에 설치되어 있으므로 값에 대한 모든 액세스 권한이 있습니다.

내가 겪고있는 문제를 보여주기 위해 아래 코드를 참조하십시오.

function matchPhpBBTopic() 
{ 
    global $wpdb; 

    $wp_post_title_string = get_the_title(); 

    $result = $wpdb->get_results("SELECT * FROM phpbb_posts"); 

    foreach($result as $row) 
    {  
    $phpbb_post_title_array = array($row->post_subject); 
    $phpbb_post_title_string = implode("", $phpbb_post_title_array); 

    // One of the values in $row->post_subject contains 
    // the value in $wp_post_title_string 
    if (strcmp($wp_post_title_string, $phpbb_post_title_string) == 0) 
    { 
     // This line never runs but the $wp_post_title_string value 
     // is there, in the table, I've printed it and it's there 
     echo 'We found a match!<br>'; 
    }                    
    } 
} 

어떤 도움을 주시면 감사하겠습니다. 즉 그래서

, 나는 주제 WP에 게시를하고 난 정확히 동일한 주제의 phpBB에 게시 을 가지고 있고 나는 phpBB를의 테이블을 통해 반복 할 내가 항목을 찾을 때, 나는 몇 가지 코드를 실행하려면 . "if"표현식이 실행되지 않는 이유를 이해할 수 없습니다.

답변

0

당신은 할 수 없습니다 :

경우 ($의 wp_post_title_string == $의 phpbb_post_title_string) {}

난을 strcmp()가 적절하다 생각하지 않습니다. 문자열을 인코딩 번호로 변환합니다.

http://us1.php.net/strcmp

또한 하부 및 상부 케이스, 공간, 및 다른 인코딩 확인.

먼저 strtolower() 및 trim()을 수행하고 얻은 결과를 확인하십시오.

제목과 제목이 너무 복잡해 보이는 것처럼 보이므로 일치하지 않을 것으로 생각됩니다.

+0

안녕하세요, 예, 실제로 == 및 ==== 및 trim()을 시도했습니다. 값을 출력하기 때문에 테이블에 값이 있음을 알 수 있습니다 (위의 예제에 나와 있습니다). 그래서 $ wp_post_title_string은 "Test"를 포함하고 $ phpbb_post_title_string은 "Test"를 포함합니다. 공백이나 다른 문자 대/소문자는 없지만 사실대로 되돌릴 수는 없습니다. 나는 이유를 모른다. 나는 strpos()를 시도해 보았지만 문자열을 찾지 못했다. 이상하다. – rwx

+0

그러나 strpos ($ wp_post_title_string, "Test")를 실행하면 true를 반환하지만 $ phpbb_post_title_string에 "Test"가 포함되어 있어도 strpos ($ wp_post_title_string, $ phpbb_post_title_string)를 수행하면 false를 반환합니다. 여기서 무슨 일이 일어나고있는거야? 내가 뭘 놓치고 있니? – rwx

+1

foreach 루프의 처음 두 줄을 읽습니다. 배열을 생성하고 배열을 파싱하는 것입니다. 루프를 입력하고 죽을 때마다 var_dump 두 값을 시도하십시오. 그들이 무엇인지 정확히 알 수 있습니다. if ($ wp_post_title_string == $ row [ 'post_subject']) 루프에서 처음 두 줄을 제거합니다. var_dump를 수행 할 때 아마 배열 일 가능성이있는 객체 표기법을 사용하기 때문에 하나의 변수가 여전히 배열이거나 정의되지 않은 것입니다. – Darius