python socket发送二进制消息

    对于文本协议,就不多说了,Python是很好处理,但是当要传输二进制数据时,如果不熟悉的话,就达不到想要的效果了。如:要传输0b1000000011001100到服务器,转化为十六进制数据0x80cc,传到服务器后,就变成38306363这样的了。实际上是因为在传输时,是以字符串的形式传输的,因此值就变了。
    网络上大多数是建议用struct,我用了一下,如果我们的二进制数据变成十六进制的字符串是'80cc89a7' 这样的形式,如果使用struct感觉不是很方便,直接使用unhexlify把数据格式化一下,然后[……]

阅读全文

drupal 分页无法显示的原因之一

drupal的分页方法,就是查询数据时,用pager_query($sql, $step, 0)代替db_query($sql),然后再调用theme(‘pager’, NULL, $step, 0)来产生分页,不过有的时候会发现theme(‘pager’, NULL, $step, 0)根本没有产生分页,可能导致这个问题的原因是pager_query参数不全造成的,可以给pager_query加上第4个参数来解决这个问题。如:

  $sql = ‘SELECT * from {drupal4you}  WHERE 1=1 ORDER BY {drupal4you}.nid DESC’;[……]

阅读全文

drupal自定义用户注册参数

drupal用户注册时,默认只需要提供用户名和密码即可。很多时候这个是完全不够用的,我们还希望在用户注册时记录更多的信息,比如生日,性别和自我介绍等等。这个时候就需要hook_user了:

function yourmodulename_user($op, &$edit, &$user, $category = NULL) {
  switch ($op) {
  //注册时扩展的字段
  case ‘register’:
  $fields[‘personal_profile’][‘custom1’] = array(
    ‘#title’ => t(‘自定义字段1’),
    ‘#type’ => ‘textfield’,
  );
  $fields[‘personal_profile’][‘custom2’] = array(
    ‘#title’ => t(‘自定义字段2’),
    ‘#type’ => ‘textfield’,
  );
  return $fields;

  [……]

阅读全文