hbsprogram.com

thủ thuật wordpress ,vps và mình thích thì mình viết thôi

Short url có tác dụng rất lớn trong việc gửi link cho mọi người .Short url có những ưu điểm sau :

  1. Short url ngắn hơn link gốc
  2. Đếm được số lượt xem link mình gửi
  3. Google index nhanh hơn

Dưới đây là các bước tạo 1 trang short url :

Bước 1 : Tạo google api key :

Các bạn làm theo các bước trong video sau

https://www.youtube.com/watch?v=LnnV007_fZ4&feature=youtu.be

1 : Tạo project 

2 Enable short url api

3 Create key

Sau đó chúng ta có 1 key

Bước 2 : Code php

Mình code theo mô hình mvc bằng yii2 .

Tạo model :

<?php
namespace frontend\models;
use yii\base\Model;

class ShorturlForm extends Model
{
	public $input;
	public $output;
	public $key;
	public function rules()
	{
		return [
		    [['input','output'],'string','min'=>'4','message'=>'Chuỗi nhập vào quá ngắn'],
			[['input'],'required'],
			['key','string'],
		];
	}
	public function attributeLabels()
	{
		return [
		    'input'=>'Nhập link đầu vào',
		     'key'=>'Key lấy từ google console nếu không để trống',
		];
	}
}

Tiếp theo controller mình code như sau :

<?php
namespace frontend\controllers;
use yii\web\Controller;
use frontend\models\ShorturlForm;
use yii\filters\AccessControl;

class ShorturlController extends Controller {
	function behaviors() {
		return [ 
				'access' => [ 
						'class' => AccessControl::className (),
						'rules' => [ 
								[
								'allow' => true,
								'actions'=>['index'],
								'roles' => ['?'],
								],
						] 
				] 
		];
	}
	
	public function actionIndex() {
		$model = new ShorturlForm ();
		if ($model->load ( \Yii::$app->request->post () ) && $model->validate ()) {
			/*
			 * Các bước lấy api key lấy ở
			 * vào http://code.google.com/apis/console/
			 * enable api short url api
			 * Tạo key
			 *
			 */
			if ($model->key)
			{
				$apiKey= $model->key;
			}
			else 
			{
				// key mặc định
				$apiKey = 'AIzaSyDtFbpsN53_PDdmLfUoJajDIhCHU-*****';
			}
			$model->output = ShorturlController::shorturl ( $model->input, $apiKey );
			return $this->render ( 'view', [ 'model' => $model ] );
		} else {
			// nhập dữ liệu vào
			return $this->render ( 'view', [ 'model' => $model ] );
		}
	}
	public function actionError()
	{
		$exception = Yii::$app->errorHandler->exception;
		echo $exception;die;
	}
	
	public function shorturl($longUrl, $apiKey) {
		// *** No need to modify any of the code line below. ***
		$postData = array ('longUrl' => $longUrl,'key' => $apiKey );
		$jsonData = json_encode ( $postData );
		$curlObj = curl_init ();
		curl_setopt ( $curlObj, CURLOPT_URL, 'https://www.googleapis.com/urlshortener/v1/url?key=' . $apiKey );
		curl_setopt ( $curlObj, CURLOPT_RETURNTRANSFER, 1 );
		curl_setopt ( $curlObj, CURLOPT_SSL_VERIFYPEER, 0 );
		curl_setopt ( $curlObj, CURLOPT_HEADER, 0 );
		curl_setopt ( $curlObj, CURLOPT_HTTPHEADER, array (
				'Content-type:application/json' 
		) );
		curl_setopt ( $curlObj, CURLOPT_POST, 1 );
		curl_setopt ( $curlObj, CURLOPT_POSTFIELDS, $jsonData );
		$response = curl_exec ( $curlObj );
		$json = json_decode ( $response );
		curl_close ( $curlObj );
		return $json->id;
	}
}

Tạo view mình tạo 1 view như sau :

<?php
use yii\helpers\Html;
use yii\widgets\ActiveForm;
?>
<?php 
 $form = ActiveForm::begin()
?>
 <?php 
 if ($model->output)
 	{
 	?>
 	<h3>Short url của link : <?= $model->input ?> là : <?= Html::a($model->output,$model->output,['target'=>'_blank'])?></h3>
 	
 	<?php 
 	}
 	?>
 
<?= $form->field($model, 'input')->textInput(['placeholder' => "Nhập link cần short url"])?>
<?= $form->field($model, 'key')->textInput(['placeholder' => "Nhập key của google console nếu không để trống"])?>
 <div class="form-group">
        <?= Html::submitButton('Shor link', ['class' => 'btn btn-primary'])?>
    </div>
 <?php 
 $form->end();
 ?>

Demo cho các bạn thực tập ở link https://demo.hbsprogram.com/shorturl

Nếu hay thì bạn chia sẻ bài viết .Mọi thắc mắc liên hệ qua skype : hien_cpa

Leave a Reply

Your email address will not be published. Required fields are marked *