C# 如何在不下载文件的情况下使用在线CSV文件数据作为值

C# 如何在不下载文件的情况下使用在线CSV文件数据作为值,c#,php,C#,Php,嗨,我有一个链接,是下载一个CSV文件,我想用里面的数据来建立我的网站,但我不习惯下载文件,有没有这样做? 链接是:您需要获取文件以获取其中的数据 之后让服务器将其删除。您需要获取文件以获取其中的数据 之后让服务器将其删除。使用fopen()或PHP cURL库: fopen()(通常这不如cURL安全,当PHP设置文件中不允许使用fopen时,您可能会遇到问题,但这是一种快速而肮脏的方法): 卷曲(首选方式。请在此处阅读卷曲:): 使用fopen()或PHP cURL库: fopen()(通常

嗨,我有一个链接,是下载一个CSV文件,我想用里面的数据来建立我的网站,但我不习惯下载文件,有没有这样做?
链接是:

您需要获取文件以获取其中的数据


之后让服务器将其删除。

您需要获取文件以获取其中的数据

之后让服务器将其删除。

使用fopen()或PHP cURL库:

fopen()(通常这不如cURL安全,当PHP设置文件中不允许使用fopen时,您可能会遇到问题,但这是一种快速而肮脏的方法):

卷曲(首选方式。请在此处阅读卷曲:):

使用fopen()或PHP cURL库:

fopen()(通常这不如cURL安全,当PHP设置文件中不允许使用fopen时,您可能会遇到问题,但这是一种快速而肮脏的方法):

卷曲(首选方式。请在此处阅读卷曲:):


您可以在运行时使用cURL获取文件的内容

$url = "http://www.nasdaq.com/screening/companies-by-name.aspx?letter=0&exchange=nasdaq&render=download";
$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL, $url); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE); 
$data = curl_exec($ch); 
curl_close($ch); 

$data
现在将包含该文件的内容。

您可以在运行时使用cURL获取该文件的内容

$url = "http://www.nasdaq.com/screening/companies-by-name.aspx?letter=0&exchange=nasdaq&render=download";
$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL, $url); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE); 
$data = curl_exec($ch); 
curl_close($ch); 
$data
现在将包含该文件的内容。

您使用的是C#还是PHP?我的答案是C

CSVContents现在包含文件的内容。

您使用的是C#还是PHP?我的答案是C


CSVContents现在包含文件内容。

这是一种通过流读取数据的方法,而不是将数据内容下载到物理磁盘。这是用C#编写的(无法判断您是想要PHP还是C#,因为您的标记同时包含这两种语言)


这是一种通过流读取数据的方法,而不是将数据内容下载到物理磁盘。这是用C#编写的(无法判断您是想要PHP还是C#,因为您的标记同时包含这两种语言)


我只是尝试了一下,结果是“致命错误:调用未定义的函数curl_init()”是否有什么我忘记添加的代码:“Untitled Document”@PriscillaIp如果您收到一个错误,说
curl_init()
未定义,这意味着您的服务器上没有安装PHP curl库。如果您不能/不想安装它,请尝试改用Stegrex的
fopen()
解决方案。您知道安装cURL库的好说明吗?@PriscillaIp Priscilla,请阅读和。它们是关于如何启用cURL(如果已安装)以及如何安装cURL的说明。还可以查看PHP手册中的。我只是尝试了一下,结果是“致命错误:调用未定义的函数curl_init()”是否有我忘记添加的代码:“Untitled Document”@PriscillaIp如果您收到一个错误,说
curl_init()
未定义,这意味着您的服务器上没有安装PHP curl库。如果您不能/不想安装它,请尝试改用Stegrex的
fopen()
解决方案。您知道安装cURL库的好说明吗?@PriscillaIp Priscilla,请阅读和。它们是关于如何启用cURL(如果已安装)以及如何安装cURL的说明。还可以查看PHP手册中的。您可以通过
WebClient.OpenRead()
打开文件流,并将结果分配给流(请参阅我的答案)。但是,这是C#。您可以通过
WebClient.OpenRead()
打开文件流,并将结果分配给流(请参见我的答案)。这是C#,然而,“没有实际下载文件”。。。这有点误导。你仍然需要把数据从那里带到这里。只是因为它不是同时在内存中缓冲的,并不意味着你不下载文件来获取它包含的数据。@rdlowrey谢谢你的评论,我已经更新了答案(希望)更清楚。“没有真正下载文件”。。。这有点误导。你仍然需要把数据从那里带到这里。仅仅因为它没有同时在内存中缓冲,并不意味着你不下载该文件来获取它包含的数据。@rdlowrey谢谢你的评论,我已经更新了答案(希望)更清楚。我尝试了带有echo的fopen,但我只得到了“Resource id#3”。“有什么我遗漏的吗?”普里西莱普为我的困惑感到抱歉。函数
fopen()
返回一个文件资源,必须对其进行操作才能获取字符串。在我编辑的答案中使用
fread()
,并回显返回值,而不是资源。如果可以,我强烈建议您安装cURL,因为您可以更好地控制安全性等。感谢Stegrex提供的fread(文件,长度)。我也想使用cURL,但是库安装在我的计算机上失败了,这很痛苦,我已经没有时间了。@PriscillaIp用cURL重新安装PHP可能很痛苦,我同意。希望fread()解决方案解决了您需要的问题。我尝试了带有echo的fopen,但只得到了“Resource id#3”。“有什么我遗漏的吗?”普里西莱普为我的困惑感到抱歉。函数
fopen()
返回一个文件资源,必须对其进行操作才能获取字符串。在我编辑的答案中使用
fread()
,并回显返回值,而不是资源。如果可以,我强烈建议您安装cURL,因为您可以更好地控制安全性等。感谢Stegrex提供的fread(文件,长度)。我也想使用cURL,但是库安装在我的计算机上失败了,这很痛苦,我已经没有时间了。@PriscillaIp用cURL重新安装PHP可能很痛苦,我同意。希望fread()解决方案解决了您需要的问题。
$url = "http://www.nasdaq.com/screening/companies-by-name.aspx?letter=0&exchange=nasdaq&render=download";
$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL, $url); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE); 
$data = curl_exec($ch); 
curl_close($ch); 
HttpWebRequest req = (HttpWebRequest)WebRequest.Create("http://www.nasdaq.com/screening/companies-by-name.aspx?letter=0&exchange=nasdaq&render=download");
HttpWebResponse resp = (HttpWebResponse)req.GetResponse();
StreamReader reader = new StreamReader(resp.GetResponseStream());

string CSVContents = reader.ReadToEnd();
string uriString = @"http://www.nasdaq.com/screening/companies-by-name.aspx?letter=0&exchange=nasdaq&render=download";
WebClient myWebClient = new WebClient();
Stream myStream = myWebClient.OpenRead(uriString);    //open a stream to the resource
StreamReader sr = new StreamReader(myStream);
Console.WriteLine(sr.ReadToEnd());                    //print contents of stream

myStream.Close();