xyz2cml.php

来自「视频监控网络部分的协议ddns,的模块的实现代码,请大家大胆指正.」· PHP 代码 · 共 101 行

PHP
101
字号
#! /usr/local/bin/php -q<?php//// +----------------------------------------------------------------------+// | PHP Version 4                                                        |// +----------------------------------------------------------------------+// | Copyright (c) 1997-2003 The PHP Group                                |// +----------------------------------------------------------------------+// | This source file is subject to version 2.0 of the PHP license,       |// | that is bundled with this package in the file LICENSE, and is        |// | available at through the world-wide-web at                           |// | http://www.php.net/license/2_02.txt.                                 |// | If you did not receive a copy of the PHP license and are unable to   |// | obtain it through the world-wide-web, please send a note to          |// | license@php.net so we can mail you a copy immediately.               |// +----------------------------------------------------------------------+// | Authors: Jesus M. Castagnetto <jmcastagnetto@php.net>                |// +----------------------------------------------------------------------+//// Sample script that uses the Chemistry classes to convert a XYZ file to CML//// $Id: xyz2cml.php,v 1.3 2003/01/04 11:56:25 mj Exp $require_once "Science/Chemistry.php";require_once "Science/Chemistry/Molecule_XYZ.php";// save the old value of "track_errors"$oldtrack = ini_get("track_errors");// set it so $php_errormsg will be usedini_set("track_errors", 1);// Use a local or the original DTD//$DTDPATH = "http://www.xml-cml.org/cml_10.dtd";// change the local path$DTDPATH = "/usr/local/dtd/cml.dtd";function usage ($extra) {    global $argv;    echo $extra;    echo "Usage:\n\t".basename($argv[0])." xyzfile cmlfile [title] \n\n";    // restore old "track_errors" value    ini_set("track_errors", $oldtrack);    exit -1;}if ($argc < 3)    usage("*ERROR* Wrong number of parameters\n");// assume that any parameter after the cmlfile name // is part of the titleif ($argc > 3)    for ($i=3; $i < $argc; $i++)        $title .= $argv[$i]." ";else    $title = "molecule";$date = date("Y-m-d H:i:s T");$title = trim($title);$xyz = realpath($argv[1]);$id = str_replace("/","_", $xyz);list($moltitle,) = explode(".",basename($xyz));$cml = $argv[2];echo "Converting ".$argv[1]." to $cml... ";// create the molecule object$mol = new Science_Chemistry_Molecule_XYZ($xyz);// prepare output$out = "<?xml version=\"1.0\"><!DOCTYPE document SYSTEM \"$DTDPATH\" [<!ELEMENT document ANY><!ELEMENT cml ANY><!ATTLIST cml    title CDATA #IMPLIED    id CDATA #IMPLIED>]><!--   -- CML document    -- converted from: $xyz   -- on: $date  -->\n";$out .= "<document>\n<cml title=\"$title\" id=\"$id\">\n";$out .= $mol->toCML($moltitle, $moltitle."1", true);$out .= "</cml>\n</document>";// write the output$fp = @fopen($cml, "w");if ($fp) {    fwrite($fp, $out);    flush();    fclose($fp);    echo " finished!\n\n";} else {    usage("\n*ERROR* while writing to $cml\n--> $php_errormsg\n");}// restore old "track_errors" valueini_set("track_errors", $oldtrack);?>

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?