Jump to content
  • 0

Опять кодировки


Zverushka
 Share

Question

http://zverushka.bl.ee/city.php

<?php  foreach ($cities as $city) {    if ($cur_letter != $city[1]) {      if ($cur_letter != "А") {        echo "</li>";      }      ?>      <li>        <h4>        <?php        $cur_letter = $city[1];        echo $cur_letter;        ?>      </h4>      <ul class="list-cities">        <?php    }    ?>     <li><a href="#">      <?php      echo $city;      ?>    </a></li>    <?php  }  ?>

$city выводит как город, а вот первая буква получается неопознанный знак вопроса.

Как вывести первую букву?

Link to comment
Share on other sites

9 answers to this question

Recommended Posts

  • 0

Что есть $city[1] - не понятно. 

По практике, такие баги получаются, когда используется функция substr для обрезания строки. К примеру: 

substr ($word , 0 , 1 );

Если, так, то используйте вместо  subst  mb_subst

 

 

 

Еще как вариант, выставить в .htaccess кодировку

AddDefaultChatset ваша_кодировка
Link to comment
Share on other sites

  • 0
Первый байт строки. Автор, похоже, начинал с паскаля.

 

Я руководствовалась этим сайтом http://ru2.php.net/manual/en/function.substr.php

Где сказано 

// Accessing single characters in a string// can also be achieved using "square brackets"$string = 'abcdef';echo $string[0];                 // aecho $string[3];                 // decho $string[strlen($string)-1]; // f

Меня ввели в заблуждение? Это вообще официальные руководство по php ?

У меня кстати сначало было [0] - но сортировка не производилось, когда изменила на [1] города разделились по первой букве. Не знаю почему, может как-то связано с количеством байт, занимаемых одной буквой?

Edited by Zverushka
Link to comment
Share on other sites

  • 0

Я руководствовалась этим сайтом http://ru2.php.net/manual/en/function.substr.php

Меня ввели в заблуждение? Это вообще официальные руководство по php ?

как сказали выше:

 

Если, так, то используйте вместо subst mb_substr

а дальше почитать не судьба была на этом же сайте?

For getting a substring of UTF-8 characters, I highly recommend mb_substr<?php        $utf8string = "cakeæøå";        echo substr($utf8string,0,5);        // output cake#        echo mb_substr($utf8string,0,5,'UTF-8');        //output cakeæ?>
Link to comment
Share on other sites

  • 0

@rus, я конечно извиняюсь, но не первый раз использую mb_string - но почему-то с первого раза все мои попытки были безуспешными. Уж не знаю, где допускала ошибку - но были такие же крякозяблы. А на второй раз сработало :)

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy