使用php中的ucfirst将数据库中的城市名称大写?

使用php中的ucfirst将数据库中的城市名称大写?,php,ucfirst,Php,Ucfirst,是否可以使用例如ucfirst使{CITY}输出大写?这段代码可以用某种方式修改成大写吗 <?php $city_meta = get_option('city_meta' ); $city_description = get_option('city_description' ); $default_api = get_option('default_api' ); /* Update Settings */ if(isset($_POST['submit_changes']))

是否可以使用例如ucfirst使{CITY}输出大写?这段代码可以用某种方式修改成大写吗

<?php   
$city_meta = get_option('city_meta' );
$city_description = get_option('city_description' );
$default_api = get_option('default_api' );

/* Update Settings */
if(isset($_POST['submit_changes'])){ 
    update_option('city_meta',$_POST['city_meta']);
    update_option('city_description',$_POST['city_description']);

    $info =weatherCity::getCities();
    //$info =array_slice($info, 0, 3);  
    $sr=0;
    foreach($info as $key=>$value):
        $postTitle = 'Väder '.$value->name;
        global $wpdb;
        $pageInfo=$wpdb->get_row("SELECT ID FROM `".$wpdb->prefix."posts` WHERE post_title = '" . $postTitle . "' AND `post_type`='page' ");

        if(!empty($pageInfo)):  

            $metaTitle=$_POST['city_meta'];
            $metaDesc=$_POST['city_description'];

            $metaTitle=str_replace('{CITY}',$value->name,$metaTitle);
            $metaDesc=str_replace('{CITY}',$value->name,$metaDesc);

            update_post_meta($pageInfo->ID,'_yoast_wpseo_title',$metaTitle);
            update_post_meta($pageInfo->ID,'_yoast_wpseo_metadesc',$metaDesc);

            $sr++;
        endif;
    endforeach;



    set_error_message( _e('City Meta Settings has been updated succesfully','weather'),'0');
    foreceRedirect(admin_url('admin.php?page=city_meta') );
    exit;
}

?>
您可以使用ucwords()

这将大写字符串中每个单词的第一个字符

Net链接


有几种方法,在我看来,最优雅的方法是使用css文本转换属性capitalize
文本转换:capitalize因为它不改变数据

但是,是的,
ucfirst()
也应该做这项工作,但是在这里,数据将被更改以供进一步处理

您还可以在mysql查询中完成这项工作

在您的示例中,如果要使用
ucfirst()
,则应替换该行

  $metaTitle=str_replace('{CITY}',$value->name,$metaTitle);
  $metaDesc=str_replace('{CITY}',$value->name,$metaDesc);


谢谢,@dotkomm和@Harvey Fletcher是你的回答组合解决了这个问题

解决方案如下所示:

$metaTitle=str_replace('{CITY}', ucwords($value->name),$metaTitle);
$metaDesc=str_replace('{CITY}', ucwords($value->name),$metaDesc);

当然但是你不会得到一个看起来合适的城市名称,例如:
“纽约”
里约热内卢
拉巴斯
恩贾梅纳
亚的斯亚贝巴
太子港
科威特城
吉隆坡
西班牙港
,谢谢,使用第二个示例修复了它,但将ucfirst()更改为ucwords(),感谢您使用ucwords的想法,这与dotkomm的replyNice结合使用修复了它!请您(如果您有足够的声誉)对我们的答案进行投票,以表示您的感谢?谢谢。不幸的是我的销售代表太少了=(
 $metaTitle=str_replace('{CITY}', ucfirst($value->name),$metaTitle);
 $metaDesc=str_replace('{CITY}', ucfirst($value->name),$metaDesc);
$metaTitle=str_replace('{CITY}', ucwords($value->name),$metaTitle);
$metaDesc=str_replace('{CITY}', ucwords($value->name),$metaDesc);