php 3g{WAp}网站编写注意事项

 更新时间:2016年11月25日 16:03  点击:1455
在二年前我就接触过了wap网站的制作了,今天 3g出来了现在我们来看看关于用php写wap站点时要注意的一些小细节吧。

(1) 使用“<?”和“?>”来包含PHP编写的WML程序行,格式为:

<?

……(程序行);

?>

(2) 其他WML标签和语句行一律使用PHP的echo关键字来声明,每个WML行的后面加上换行符“n”(根据需要,也可加多个)。其基本格式为:

echo("……(WML标签和语句行)n");

例如,下面的语句就是PHP编写WML语句行的典型例子:

echo("<?xml version="1.0"?>n");

而且,echo语句中的“WML标签和语句行”可以连写,以节省程序代码行。例如,下面的一行语句就连写了WML的3行标签语句:

echo ("<wml> <card> <p>");

3) 文件最后保存时采用的扩展名为“.php”或“.php3”,而不是“.wml”等扩展名。

4) 程序行语句均以分号( ; )结尾,这是与ASP编写WML程序不同的地方。

5) 声明脚本语言。这是对PHP编程的继承,向编译器声明当前程序采用的脚本语言为PHP,格式为:

<script language="PHP">

不过这一句可以省略,因为编译器能够自动识别PHP的脚本程序。

6) 使用PHP的header关键字来声明WML的文件类型,基本格式为:

header("Content-type: text/vnd.wap.wml");

上述格式是专为WAP浏览器识别而采取的书写格式。如果开发中用户想使用普通的浏览器,如IE浏览器来测试程序效果,则可在该语句的前面加上双斜线(//),格式为:

// header("Content-type: text/vnd.wap.wml");

这样,基于PC的浏览器将忽略程序中无法理解的WML标签,这时当前的程序实际上成为了HTML页面。当想在WAP设备或者模拟器上测试的时候,只需要去掉“//”,当前页面就会自动变成WML页面。

php 保存flash在线拍照发送过照片

<?php
//保存报像头上传的图片.

define('SD_ROOT', dirname(__FILE__).'/');
@header("Expires: 0");
@header("Cache-Control: private, post-check=0, pre-check=0, max-age=0", FALSE);
@header("Pragma: no-cache");


$pic_id = time();

//生成图片存放路径
$new_avatar_path = 'avatar_origin/'.$pic_id.'.jpg';

//将POST过来的二进制数据直接写入图片文件.
$len = file_put_contents(SD_ROOT.'./'.$new_avatar_path,file_get_contents("php://input"));

//原始图片比较大,压缩一下. 效果还是很明显的, 使用80%的压缩率肉眼基本没有什么区别
$avtar_img = imagecreatefromjpeg(SD_ROOT.'./'.$new_avatar_path);
imagejpeg($avtar_img,SD_ROOT.'./'.$new_avatar_path,80);
//nix系统下有必要时可以使用 chmod($filename,$permissions);

log_result('图片大小: '.$len);


//输出新保存的图片位置, 测试时注意改一下域名路径, 后面的statusText是成功提示信息.
//status 为1 是成功上传,否则为失败.
$d = new pic_data();
$d->data->photoId = $pic_id;
//$d->data->urls[0] = 'http://sns.com/avatar_test/'.$new_avatar_path;
$d->data->urls[0] = '/avatar_test/'.$new_avatar_path;
$d->status = 1;
$d->statusText = '上传成功!';

$msg = json_encode($d);

echo $msg;

log_result($msg);
function  log_result($word) {
 @$fp = fopen("log.txt","a"); 
 @flock($fp, LOCK_EX) ;
 @fwrite($fp,$word.":执行日期:".strftime("%Y%m%d%H%I%S",time())."rn");
 @flock($fp, LOCK_UN);
 @fclose($fp);
}
class pic_data
{
  public $data;
  public $status;
  public $statusText;
 public function __construct()
 {
  $this->data->urls = array();
 }
}

?>

很多朋友都是用js来实现级联菜单了,那样有一个不好就是更新可能要修改源码,现在提供的这款ajax+php是一个实时的,不好之处在于耗费服务器资源了。

main.php
<script language="javascript" src="initajax.js"></script><!--InitAjax()-->
<script>
<!--

function getoption(select1,target)
{
    if(select1.value!=0){
        //select1是提交数据的来源的select菜单名
        var url = "getoption.php?pid="+select1.value;//取得xml的url
        //alert(url);
        var ajax = InitAjax();
        var i = 0;
        ajax.open("GET", url, true);
        ajax.onreadystatechange = function() {
            //如果执行是状态正常,那么就把返回的内容赋值给指定的地方
            if (ajax.readyState == 4 && ajax.status == 200) {
                var obj = ajax.responseXML;
                var properties = obj.getElementsByTagName("property");
                var name,value;
                target.options.length = 1;
                for (var i=0,x=1;i<properties.length;i++,x++) {
                    name = properties[i].getElementsByTagName("name")[0].firstChild.nodeValue;
                    value = properties[i].getElementsByTagName("value")[0].firstChild.nodeValue;
                    target.options[x] = new Option();
                    target.options[x].text = name;
                    target.options[x].value = value;
                }
            }
        }
        ajax.send(null);
    }
}


<form method="post" name="form" action="index.php">
<select name="level1" onchange="getoption(document.form.level1,document.form.level2);"/>
<option selected="ture" value="0">===选择===</option>
<?
if ($nrows>0){
    for ($i=0;$i<$nrows;$i++){
        echo "<option value="{$results[ID][$i]}">{$results[NAME][$i]}</option>";
    }
}
?>
</select>
<select name="level2" onchange="getoption(document.form.level2,document.form.level3);">
<option selected="ture" value="0">===选择===</option>
</select>

iniajax.js:
function InitAjax()
{
    var ajax=false;
    try {
        ajax = new ActiveXObject("Msxml2.XMLHTTP");
    } catch (e) {
        try {
            ajax = new ActiveXObject("Microsoft.XMLHTTP");
        } catch (E) {
            ajax = false;
        }
    }
    if (!ajax && typeof XMLHttpRequest!='undefined') {
        ajax = new XMLHttpRequest();
    }
    return ajax;
}

getoption.php:
<?php
if($pid=$_GET["pid"])
{
    header("Content-type: text/xml;charset=GB2312");
    echo "<?xml version="1.0" encoding="GB2312"?>";
    include("./oracle.inc");
    $sql="select * from AJAXTEST where PARENTID = $pid";
    //echo $sql;
    $stmt=ociparse($handle,$sql);
    ociexecute($stmt);
    ocicommit($handle);
    ocilogoff();
    $nrows=ocifetchstatement($stmt,$results);
    echo "<properties>";
    //echo "<row>{$nrows}</row>";
    for ($i=0;$i<$nrows;$i++){
    echo "<property>";
    echo "<value>{$results[ID][$i]}</value>";
    echo "<name>{$results[NAME][$i]}</name>";
    echo "</property>";
    }
    echo "</properties>";
}
?>

php 图片上传源码下载[gif,jpg]

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>无标题文档</title>
<style type="text/css">
<!--
body,td,th {
 font-size: 12px;
 color: #FFFFFF;
}
body {
 background-color: #999;
 margin-left: 0px;
 margin-top: 0px;
}
a:link {
 color: #FFFFFF;
}
a:visited {
 color: #FFFFFF;
}
a:active {
 color: #FFFFFF;
}
-->
</style></head>

<body>
<?php
    $dest_folder   =  "/picture/";
 if(!file_exists($dest_folder)){
        mkdir($dest_folder);
 }
 foreach ($_FILES["pictures"]["error"] as $key => $error) {
     if ($error == UPLOAD_ERR_OK) {
  $houzhui=substr($_FILES["pictures"]["name"][$key],-4);
  if ($_FILES["pictures"]["size"][$key]<=1024*100) //100K
  {
  if ($houzhui==".jpg" or $houzhui==".gif")
  {
         $tmp_name = $_FILES["pictures"]["tmp_name"][$key];
         $name    = date("ymdhs")."_".mt_rand(10000,99999).$houzhui;
         $uploadfile = $dest_folder.$name;
         move_uploaded_file($tmp_name, $uploadfile);
  echo "<script>
  parent.img.value="".$uploadfile."";
  parent.sm1.disabled=false;
  </script>
  <div align=center>贴图上传成功。[<a href=upload.htm onclick="parent.sm1.disabled=true;">重新上传</a>]</div>";   
}
else
echo "<script>alert('对不起,您上传文件格式不对!请上传.gif或.jpg格式的图片文件!');history.go(-1);</script>";    
}
else
echo "<script>alert('对不起,您上传的文件太大了!请上传文件大小小于100k的图片文件!');history.go(-1);</script>"; 
  }
 }
?>
</body>
</html>

本代码的功能是把你要上传的图片保存到服务器,然后再把当前图重按比例生成一个小的缩略图哦。

 if($_FILES['image']['size']){
     if($_FILES['image']['type'] == "image/pjpeg"){
      $im = @imagecreatefromjpeg($_FILES['image']['tmp_name']);
      $n_bmp.='.jpg';
     }elseif($_FILES['image']['type'] == "image/x-png"){
      $im = @imagecreatefrompng($_FILES['image']['tmp_name']);
      $n_bmp.='.png';
     }elseif($_FILES['image']['type'] == "image/gif"){
      $im = @imagecreatefromgif($_FILES['image']['tmp_name']);
      $n_bmp.='.gif';
     }  
    ResizeImage($im,8888,8888,$n_bmp);    
       ImageDestroy ($im);
    $n_tag =1;
      
   }
    
function Uploadfile($str){
   
   $save_path = './product/';//文件保存目录路径
   
   $ext_arr   = array('rar','zip','jpg','gif','png','bmp');//定义允许上传的文件扩展名
   
   $max_size  = 1000000;//最大文件大小
   
   $file_rand ='';
   
   $file_ext  ='';
   
   @mkdir($save_path, 0777); //更改目录权限    
   
   if ($_FILES[$str]['name']) {//有上传文件时
    
    $file_name = $_FILES[$str]['name'];//原文件名
    
    $tmp_name = $_FILES[$str]['tmp_name'];//服务器上临时文件名
    
    $file_size = $_FILES[$str]['size'];//文件大小
    
    if (@is_dir($save_path) === false) {//检查目录
     alert("上传目录不存在。",'');
    }
    
    if (@is_writable($save_path) === false) {//检查目录写权限
     alert("上传目录没有写权限。",'');
    }
    
    if (@is_uploaded_file($tmp_name) === false) {//检查是否已上传
     alert("临时文件可能不是上传文件。",'');
    }
    
    if ($file_size > $max_size) {//检查文件大小
     alert("上传文件大小超过限制。",'');
    }
    
    $temp_arr = explode(".", $file_name);//获得文件扩展名
    $file_ext = array_pop($temp_arr);
    $file_ext = trim($file_ext);
    $file_ext = strtolower($file_ext);
    $file_rand= md5(date("Y-m-d"));
    if (in_array($file_ext, $ext_arr) === false) {//检查扩展名
     alert("上传文件扩展名是不允许的扩展名。",'');
    }
    
    if (move_uploaded_file($tmp_name, $save_path.$file_rand.'.'.$file_ext) === false) {//移动文件
     alert("上传文件失败。",'');
    }    
   } 
  return $save_path.$file_rand.'.'.$file_ext;
 }
 
 
 function ResizeImage($im,$maxwidth,$maxheight,$name){
   $width = imagesx($im);
   $height = imagesy($im);
  if(($maxwidth && $width > $maxwidth) || ($maxheight && $height > $maxheight)){
   if($maxwidth && $width > $maxwidth){
   $widthratio = $maxwidth/$width;
   $RESIZEWIDTH=true;
   }
   if($maxheight && $height > $maxheight){
   $heightratio = $maxheight/$height;
   $RESIZEHEIGHT=true;
   }
  if($RESIZEWIDTH && $RESIZEHEIGHT){
  if($widthratio < $heightratio){
   $ratio = $widthratio;
   }else{
   $ratio = $heightratio;
   }
  }elseif($RESIZEWIDTH){
   $ratio = $widthratio;
  }elseif($RESIZEHEIGHT){
   $ratio = $heightratio;
  }
  $newwidth = $width * $ratio;
  $newheight = $height * $ratio;
  if(function_exists("imagecopyresampled")){
  $newim = imagecreatetruecolor($newwidth, $newheight);
  imagecopyresampled($newim, $im, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);
  }else{
  $newim = imagecreate($newwidth, $newheight);
  imagecopyresized($newim, $im, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);
  }
  ImageJpeg ($newim,'./product_e/'.$name);
  ImageDestroy ($newim);
  }else{
  ImageJpeg ($im,'./product_e/'.$name);
  }
  }

[!--infotagslink--]

相关文章

  • 如何获取网站icon有哪些可行的方法

    获取网站icon,常用最简单的方法就是通过website/favicon.ico来获取,不过由于很多网站都是在页面里面设置favicon,所以此方法很多情况都不可用。 更好的办法是通过google提供的服务来实现:http://www.google.com/s2/favi...2014-06-07
  • Powershell实现编写和运行脚本

    本文为那些对学习 Windows PowerShell 命令行和脚本编写环境感兴趣的系统管理员提供了资源。也请告诉我们本网站如何才能对您更有用处。...2020-06-30
  • 总结android studio注意事项及打不开等问题解决方法

    经过一段时间的使用,总结了android studio打不开等问题的6种解决方法及android studio注意事项,希望对大家有所帮助。 1 首次运行,建立好项目需要下载一些东西,如果...2016-09-20
  • mac下Apache + MySql + PHP搭建网站开发环境

    首先为什不自己分别搭建Apache,PHP和MySql的环境呢?这样自己可以了解更多知识,说起来也更酷。可也许因为我懒吧,我是那种“既然有现成的,用就是了”的人。君子生非异也,善假于物也。两千年前的荀子就教导我们,要善于利用工具...2014-06-07
  • php实现网站留言板功能

    我要实现的就是下图的这种样式,可参考下面这两个网站的留言板,他们的实现原理都是一样的畅言留言板样式:网易跟帖样式:原理 需要在评论表添加两个主要字段 id 和 pid ,其他字段随意添加,比如文章id、回复时间、回复内容、...2015-11-08
  • 网站广告怎么投放最好?首屏广告投放类型优化和广告位布局优化的案例

    网站广告怎么投放最好?一个网站中广告位置最好的是哪几个地方呢,许多的朋友都不知道如何让自己的网站广告收效最好了,今天我们就一起来看看吧。 在说到联盟优化前,...2016-10-10
  • Illustrator文字转曲的操作方法与注意事项分享

    今天小编在这里就来给Illustrator的这一款软件的使用者们来说一说文字转曲的操作方法以及注意事项,各位想知道具体信息的使用者们,那么下面就快来跟着小编一起看看吧。...2016-09-14
  • 个人站长做网站应该考虑的一些问题

    个人网站建设应该考虑哪些问题呢?这个问题我们先在这里不说,下文会一一列出来,希望这些建义能帮助到各位同学哦。 我相信VIP成员里面有很多站长,每个人几乎都拥有一个...2016-10-10
  • 分享利用论坛签名提升网站权重

    分享一篇利用论坛签名提升网站权重的方法,在推广中论坛签名也是一种不错的外链推荐的方法,但现在权重越来越低了,有需要的朋友可以看看。 话说有一天在站长网上面看...2016-10-10
  • 网站排名提升后稳定排名方法

    一、靠前排名成搜索关注的对象   从搜索引擎的角度考虑一下,就不难理解为什么搜索引擎对排名在首页的网站那么慎重,甚至对新进排名在首页的一些网站进行为期一个多月的...2016-10-10
  • 如何提高网站pv 吸引力

    关于如何提高网站的吸引呢,下面我们列出了5点,让你的网站pv大大的提升哦   1、建立一个清晰的网站地图   一个清晰的网站地图可以给你的用户提供一个简介明了的...2017-07-06
  • 如何有效提高网站的用户回头率

    第一,网站的内容;请各位站长朋友不要一天到晚只想着出什么好的绝招来推广网站,却忽略了网站的内容;其实网站的内容是极为重要的,因为这是你的本,你的根!网站的内容只有不断...2017-07-06
  • C#网站生成静态页面的实例讲解

    今天小编就为大家分享一篇关于C#网站生成静态页面的实例讲解,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧...2020-06-25
  • 网站改版了怎么办?

    网站改版了怎么办?很多网站在改版的时候,非常担心用户习惯。   有的担心是合理的,有的担心是多余的。担心之前,先搞清两个问题:   首先,你有没有老用户?有多少老用户?如果...2016-09-20
  • 如何提高网站品牌形象

    这两个网站的title和description部分关键词有点过于强调,决定弱化这种现象成了我的当务之急,以提高网站在搜索引擎里的品牌形象(搜索引擎返回结果就这两部分)。通过分析...2016-10-10
  • 用PHP与XML联手进行网站编程

    一、小序 HTML简单易学又通用,一般的PHP程序就是嵌入在HTML语言之中实现的。但是随着WEB越来越广泛的应用,HTML的弱点也越来越明显了。XML的出现,弥补了这些不足,它提供...2016-11-25
  • 对于网站快速提升排名10种方法分析

    在耽误近一年时间的情况下,痛定思痛,决定自己动手做公司网站的SEO,具体过程如下:   1.买了几本专门SEO方面的书本,啃了两个星期,经常上比如www.111cn.net 和seo教程why之类...2016-10-10
  • python 制作网站筛选工具(附源码)

    平常工作生活中,boos可能会给我们很多网站取提取信息,这些网站有的无法响应,有的404,有的501…真的需要所有网站都访问再提取信息吗?今天写一个小工具用于筛选网站中能访问的网站,在此仅举一例,即状态码为200。...2021-01-22
  • 那类网站放Google adsense广告好

    那类网站放Google adsense广告好呢,好了费话不说多了我们来看看Google adsense吧  1. 增加Google AdSense的展示效果,理论上是页面越多,展示的就越多。但是Google...2017-07-06