Posted on

vue上手记录

以前说起web前端开发,首先想到的是html+css+js,后来有了jQuery和bootstrap这样的傻瓜式工具,再后来兴起vue和React这样的框架,感觉前端发展太过迅速,不学习已经跟不上脚步了。

近几年移动端崛起,桌面端不断弱化,除了双端原生APP开发,跨端的技术就看前端怎么发展了。html5目前看来已经凉了大半,微信小程序和小游戏异军突起,vue和React这样的开源框架究竟能不能一统江湖,就要看主导厂家构建的生态系统了。

看一个技术能不能长久发展,有没有前途,最重要的还要看其市场大小和上手难度,比如js构建下的全栈技术生态是目前最热门的技术,另外热门的技术都是多面手,python在后端开发、机器学习、数据科学都有应用。

vue十分简单,如果有基本的js知识,十分容易上手。

但是必须学习许多新概念,比如渐进式、渲染、组件、vuex、node、npm、vue-cli、webpack等等,这些东西或者是vue自己创造的词,或者是其它前端工具使用的工具,对于我这个只会用前端三语言加一个记事本做开发的人来说,还是不小的挑战。

Posted on

php爬虫采集填坑

大多数早期的个人站长应该都听说过火车头采集器这款软件吧?当年做个人网站和seo的风潮正兴,但是没有内容是个大问题,而且个人站长主要专注于运营,对技术关注度不高,于是火车头这类傻瓜式的采集软件才会兴起。

现在各类编程语言都可以写爬虫来采集内容入库,好处是定制化程度、效率和灵活度比较高。这次用php来采集,主要使用了snoopy这个类、preg函数和正则表达式。

1.出现乱码问题,使用mb_convert_encoding转换为utf-8

2.snoopy类的用法,

include "Snoopy/Snoopy.class.php";
$snoopy = new Snoopy;

$snoopy->fetch("http://url");
$out = $snoopy->results;

3.正则表达式

推荐《正规表达式必知必会》

Posted on

后端工程师如何快速搭建前端页面

大部分的后端工程师每天和业务逻辑与数据库打交道,写不出有设计感的前端页面,只是略懂前端的3大语言,那么试试bootstrap这个前端框架吧。

在页面的head处插入下面代码就可以使用bootstrap了:

<link rel="stylesheet" href="https://cdn.bootcss.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">

这是bootstrap这个前端框架的优点,自动适用pc、手机、平板界面。.container 类用于固定宽度并支持响应式布局的容器。

栅格系统用于通过一系列的行(row)与列(column)的组合来创建页面布局,你的内容就可以放入这些创建好的布局中。列(column)数是12。类前缀.col-xs-  .col-sm-  .col-md-  .col-lg- 同一行(row)后面跟的数字加起来要等于12.

包括菜单、输入框、导航等现成可用的组件。

实现一些动画和交互效果。

框架提供一些常用示例的现成代码页面,可以查看源码学习使用,也可修改后直接用到自己的项目中。
 

Posted on

创建自己的wordpress主题模板

wordpress作为一个成功的php开发的cms程序,适用面非常广,除了常见的blog系统,还被用在企业站、新闻站、门户站等许多领域。可以说使用场景由主题模板决定,所以才显得主题特别重要。

1.建立一个最简单的wordpress主题。

主题文件放在wp-content/themes/中 ,每个主题一个文件夹。

每个主题必须包含的2个文件:

1.)style.css

样式表,文件开头写明主题信息,以便在wp后台做出区别。

2.)index.php

默认模板文件,如果其他模板文件缺失,默认以此文件渲染页面。

2.其他模板文件

模板文件是html代码、模板标签和php代码的混合。不同的模板文件影响页面不同地方的布局和设计。

1.)front-page.php

主页文件。不管后台如何设置,如果此文件存在,以此文件为准。

2.)home.php

默认主页文件。如果后台不设置为主页为静态页面,默认用此模板显示。

3.)header.php

包含document type、meta标签、链接到样式表和js文件。

4.)single.php

请求一篇文章时被应用。

5.)single-{post-type}.php

用于自定义文章类型的文章显示。

6.)page.php

用于显示单个页面。

7.)archive.php

当请求按分类、作者和日期显示文章时,应用此模板。当有category.phpauthor.php或者date.php更详细的模板时,覆盖它。

还有一些文件没有介绍。

3.模板层级

层级解释每一个页面在渲染时该应用哪个模板文件。

1.)主页

  1. front-page.php – 不管后台如何设置,只要存在此文件,主页会用此文件渲染。
  2. home.php – 没有找到front-page.php并且设置首页显示最新文章, 会用home.php渲染. 或者某个文章页被设置成了首页,会用此文件渲染。
  3. page.php – 当页面被设置成主页,会用page.php渲染。
  4. index.php – 以上文件都不存在时用此文件渲染。

2.)文章页

  1. single-{post-type}-{slug}.php – (Since 4.4) First, WordPress looks for a template for the specific post. For example, if post type is product and the post slug is dmc-12, WordPress would look for single-product-dmc-12.php.
  2. single-{post-type}.php – If the post type is product, WordPress would look for single-product.php.
  3. single.php – WordPress then falls back to single.php.
  4. singular.php – Then it falls back to singular.php.
  5. index.php – Finally, as mentioned above, WordPress ultimately falls back to index.php.

3.)页面

  1. custom template file – The page template assigned to the page. See get_page_templates().
  2. page-{slug}.php – If the page slug is recent-news, WordPress will look to use page-recent-news.php.
  3. page-{id}.php – If the page ID is 6, WordPress will look to use page-6.php.
  4. page.php
  5. singular.php
  6. index.php

4.)分类

  1. category-{slug}.php – If the category’s slug is news, WordPress will look for category-news.php.
  2. category-{id}.php – If the category’s ID is 6, WordPress will look for category-6.php.
  3. category.php
  4. archive.php
  5. index.php

5.)标签

  1. tag-{slug}.php – If the tag’s slug is sometag, WordPress will look for tag-sometag.php.
  2. tag-{id}.php – If the tag’s ID is 6, WordPress will look for tag-6.php.
  3. tag.php
  4. archive.php
  5. index.php

4.模板标签

模板标签用在主题模板中用于从数据库中取出内容。这些内容可以是任何信息:从博客标题到完整的边栏。
使用模板标签的原因:

  • 动态提取内容;
  • 可以用在多个主题模板中;
  • 把模板分离为更小、更容易理解的片段。

例子:get_header();the_title();bloginfo( ‘name’ );

5.循环

循环是wp默认输出文章的机制。
循环的例子:

<?php
    get_header();
    if ( have_posts() ) : while ( have_posts() ) : the_post();
        the_content();
    endwhile;
    else :
        _e( 'Sorry, no posts matched your criteria.', 'textdomain' );
    endif;
    get_sidebar();
    get_footer();
?>
循环中可以显示的标签:
  • next_post_link() – a link to the post published chronologically after the current post
  • previous_post_link() – a link to the post published chronologically before the current post
  • the_category() – the category or categories associated with the post or page being viewed
  • the_author() – the author of the post or page
  • the_content() – the main content for a post or page
  • the_excerpt() – the first 55 words of a post’s main content followed by an ellipsis (…) or read more link that goes to the full post. You may also use the “Excerpt” field of a post to customize the length of a particular excerpt.
  • the_ID() – the ID for the post or page
  • the_meta() – the custom fields associated with the post or page
  • the_shortlink() – a link to the page or post using the url of the site and the ID of the post or page
  • the_tags() – the tag or tags associated with the post
  • the_title() – the title of the post or page
  • the_time() – the time or date for the post or page. This can be customized using standard php date function formatting.

条件标签:

  • is_home() – Returns true if the current page is the homepage
  • is_admin() – Returns true if inside Administration Screen, false otherwise
  • is_single() – Returns true if the page is currently displaying a single post
  • is_page() – Returns true if the page is currently displaying a single page
  • is_page_template() – Can be used to determine if a page is using a specific template, for example: is_page_template('about-page.php')
  • is_category() – Returns true if page or post has the specified category, for example: is_category('news')
  • is_tag() – Returns true if a page or post has the specified tag
  • is_author() – Returns true if inside author’s archive page
  • is_search() – Returns true if the current page is a search results page
  • is_404() – Returns true if the current page does not exist
  • has_excerpt() – Returns true if the post or page has an excerpt

-end-