Wordpress $ wpdb-> get_results(...)问题与比较字符串

时间:2014-02-16 06:31:58

标签: php wordpress phpbb3

我试图遍历phpbb表中名为phpbb_posts的行,并在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”表达式没有运行。

1 个答案:

答案 0 :(得分:0)

你不能这样做:

if($ wp_post_title_string == $ phpbb_post_title_string){}

我认为strcmp()不合适。它将字符串转换为编码数字。

http://us1.php.net/strcmp

同时检查大小写,空格和不同的编码。

首先执行strtolower()和trim(),看看你得到了什么。

看起来你的主题和头衔也在崩溃,所以不要认为它们会匹配。