如何将文本文件的行尾从 DOS 转换为 Unix? [英] How to convert the line endings of a text file from DOS to Unix?

查看:24
本文介绍了如何将文本文件的行尾从 DOS 转换为 Unix?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我将此 php 代码保存在文本文件中,我想将此文本文件转换为 Unix 行尾.怎么样?

I have this php code saved in text file, I want to convert this text file to Unix line endings. How?

 <?php 

    class City
    {
        private $lat=0.0;
        private $lng=0.0;
        private $name="";
        private $visited=false;
        private $order=1;

        function City($name,$lat,$lng)
        {
            $this->name=$name;
            $this->lat=$lat;
            $this->lng=$lng;
        }
        function getName()
        {
            return $this->name;
        }
        function getLat()
        {
            return $this->lat;
        }
        function getLng()
        {
            return $this->lng;
        }
        function getOrder()
        {
            return $this->order;
        }
        function getVisited()
        {
            return $this->visited;
        }
        function setVisited($value)
        {
            $this->visited=$value;
        }
        function setOrder($value)
        {
            $this->order=$value;
        }
    }

    class Main
    {
        public $allCities=array();
        private $k=1;
        private $totalDistance=0;

        /*class main empty constructor*/
        function Main()
        {}

        function sortArray()
        {
            for($i=count($this->allCities)-1;$i>=0;$i--)
            {
                for($j=$i-1;$j>=0;$j--)
                {
                    if($this->allCities[$i]->getOrder()<$this->allCities[$j]->getOrder())
                    {
                        $temp=$this->allCities[$j];
                        $this->allCities[$j]=$this->allCities[$i];
                        $this->allCities[$i]=$temp;
                    }
                }
            }
        }
        /* method to read from cities.txt file */
        function getCitiesFromTextFile()
        {
            $f="cities.txt";
            $fo=fopen($f,'r');
            while ( $line = fgets($fo, 1000) ) 
            {
                $delimiter=" ";
                $temp = explode($delimiter, $line);
                $c11=new City($temp[0],$temp[1],$temp[2]);
                $this->allCities[]=$c11;
            }
        }

        /* to print the data stored in an array ( without ordering the cities ) */
        function displayAllCities()
        {
            for($i=0;$i<count($this->allCities);$i++)
            {
                print $this->allCities[$i]->getName()."<br>";
            }
        }
        function rad($x)
        {
            return $x*pi()/180;
            //return $x;
        }
        /* to calculate the distance between two cities */
        function calculatedistance($city1,$city2)
        {
            $lat1=$city1->getLat();
            $lng1=$city1->getLng();

            $lat2=$city2->getLat();
            $lng2=$city2->getLng();
        //  Spherical law of cosines:   d = acos(sin(lat1).sin(lat2)+cos(lat1).cos(lat2).cos(long2-long1)).R
        //  R=3437.74677 (nautical miles)
        //  R=6378.7 (kilometers)
        //  R=3963.0 (statute miles) 

            $R = 6371; // earth's mean radius in km
            $dLat  = $this->rad($lat2 - $lat1);
            $dLng = $this->rad($lng2 - $lng1);

            $a = sin($dLat/2) * sin($dLat/2) +cos($this->rad($lat1)) * cos($this->rad($lat2)) * sin($dLng/2) * sin($dLng/2);
            $c = 2 * atan2(sqrt($a), sqrt(1-$a));
            $d = $R * $c;

            return $d;
            //$distance=acos(sin($lat1)*sin($lat2)+cos($lat1)*cos($lat2).cos($lng2-$lng1))*$R;
            //return $distance;
        }

        /* to calculate the optimal path passing all cities once time for each city */
        function findPath($start)
        {
            for($i=0;$i<count($this->allCities);$i++)
            {
                if($this->k>count($this->allCities))
                    break;
                if($this->allCities[$i]->getName()==$start &&!$this->allCities[$i]->getVisited())
                {
                    $this->allCities[$i]->setVisited(true);
                    $this->allCities[$i]->setOrder($this->k);
                    $lower_index=0;
                            $lower_dis=1000000;
                    for($j=0;$j<count($this->allCities);$j++)
                    {
                        if(!$this->allCities[$j]->getVisited())
                        {
                            $dis=$this->calculatedistance($this->allCities[$j],$this->allCities[$i]);
                            if($dis<$lower_dis)
                            {
                                $lower_index=$j;
                                $lower_dis=$dis;
                            }

                        }
                    }

                    $this->k++;
                    $this->findPath($this->allCities[$lower_index]->getName());
                }// enf if
            }// end for     
        }// end function

        /* method to display the total distance of the route passign all cities */
        function getTotalDistance()
        {
            return $this->totalDistance;
        }
    }// end class

//$test=new City("Gaza",1.2,1.50);
$m=new Main();
$m->getCitiesFromTextFile();
//$m->displayAllCities();
$m->findPath("Beijing");
$m->sortArray();
$m->displayAllCities();
$m->getCitiesFromTextFile();
?>

推荐答案

类似:

<?php
$file = file_get_contents("file.php");
$file = str_replace("\r", "", $file);
file_put_contents("file.php", $file);

=)

编辑 1

如果您使用的是 Linux - 有一个名为 Kate 的优秀编辑器(转换编码和行尾)

If you are on Linux - there is the good editor named Kate (converts encoding and line-end)

这篇关于如何将文本文件的行尾从 DOS 转换为 Unix?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆