前提・実現したいこと
wordpressでphpをつかって連想配列からキーを値に変換しようとしています。
しかし、キーと値がどちらも日本語で同じ値となっています。使用エンコードはUTF-8です
キーから値を取り出そうとしたら値が取り出せませんでした。
該当のソースコード
php
1$array = array( 2 'i'=>'い', 3 'う'=>'う', 4 'e'=>'え' 5);
試したこと
このとき、キーを'う'で値を得ようとしたら値が取り出せませんでした。
i,eは問題なく値を取り出せました。
キーと値が同じだと取り出せないのでしょうか?
当方が何かミスをしているのでしょうか?
どなたか分かる方ご教授お願いします。
ご指摘によりソースコードを公開します。実際には文字列が違いますが守秘義務のためです。ロジックは変更ありません。
とあるサイトで交通経路の大項目と小項目をURLから日本語に組み立ててTITLEタグに埋めこむPHPです。
ただどういうわけか、一部の項目が日本語のままURLに出てきます。修正が膨大になるためやむおえず、そのまま組み立てていますが
これが値が取れずemptyになります。
問題が出るURL
https://www.foobaa.com/small_category/自転車/
https://www.foobaa.com/large_category/airplane+taxi/?small_category=徒歩
呼び出し元
header.php
<title><?php custum_wp_title();?></title>ソースコード
php
1<?php 2// $sep セパレータ文字列 規定値は全角スペース 3// $display タイトルを表示する(true)か、PHP 文字列として使えるようにタイトルの値を返す(false)か。規定値はtrue 4// $suffix タイトルの末尾に追加する文字列 規定値はNULLで追加文字列無し 5function custum_wp_title($sep=" ", $display=true, $suffix="") { 6 $category_array = [ 7 "car"=>"車", 8 "buss"=>"バス", 9 "airplane"=>"飛行機", 10 "taxi"=>"タクシー", 11 "super-express"=>"新幹線", 12 "train"=>"在来線", 13 "express"=>"特急", 14 "自転車"=>"自転車", 15 "徒歩"=>"徒歩", 16 "スケボー"=>"スケボー" 17 ]; 18 19// echo (empty($_SERVER['HTTPS']) ? 'http://' : 'https://').$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']; 20// echo $_SERVER['REQUEST_URI']; 21 $uri_array = explode('/', $_SERVER['REQUEST_URI']); 22// var_dump($uri_array); 23 if ( !( in_array('large_category', $uri_array) || in_array('small_category', $uri_array) ) ) { 24 wp_title( '|', true, 'right' );bloginfo( 'name' ); 25 return; 26 } 27 28 if (in_array('large_category', $uri_array)) { 29 $array_index = array_search('large_category', $uri_array); 30 $large_categories = explode('+', $uri_array[$array_index+1]); 31 $echo_string =""; 32 foreach ($large_categories as $value) { 33 $echo_string .= $category_array[$value] . $sep; 34 } 35 } elseif (in_array('small_category', $uri_array)) { 36 $array_index = array_search('small_category', $uri_array); 37 $large_categories = explode('/', $uri_array[$array_index+1]); 38 $echo_string =""; 39 foreach ($large_categories as $value) { 40 $echo_string .= $category_array[$value] . $sep; 41 } 42 } 43 44 if (!empty( $_SERVER['QUERY_STRING']) ) { 45 $query_array = explode('=', $_SERVER['QUERY_STRING']); 46 $query_index = array_search('small_category', $query_array); 47 $echo_string .= $category_array[$query_array[$query_index+1]]; 48 $echo_string .= $sep; 49 } 50 51 if( !empty($suffix) ) { 52 $echo_string .= $suffix; 53 } 54 55 if ($display) { 56 echo $echo_string; 57 } else { 58 return $echo_string; 59 } 60} 61?>
よろしくお願いします。
回答3件
あなたの回答
tips
プレビュー