我有一个我从另一台服务器调用的模板。我必须使用一些字符串替换来修复URL,然后。
这是PHP代码:
<?php
$path = $_SERVER['DOCUMENT_ROOT'];
$currentPage = $_SERVER['PHP_SELF'];
$template = file_get_contents("http://staging.domain.edu/content/libs/folder/template.html");
$template = str_replace("src=\"/etc/","src=\"https://dite.edu/etc/",$template);
$template = str_replace("href=\"/etc/","href =\"https://site.edu",$template);
$template = str_replace("src=\"/apps/","src =\"https:site.edu/",$template);
$template = str_replace("href=\"/content/","href =\"http://site.edu/content/",$template);
$template = str_replace("src=\"/content/","src=\"http://staging.domain.edu/content/",$template);
然后我这样做:
list($top, $bottom) = explode('INSERT CONTENT HERE', $template);`
我的问题是:如何在asp中复制这个?除了一个使用PHP之外我们所有的服务都使用ASP。
答案 0 :(得分:4)
重要提示:
now clear这个问题是.Net而不是asp-classic,但对于那些最终在这里寻找经典ASP等价物的人继续阅读。
经典ASP等效功能
Classic ASP
中有这两种功能的等价物 explode()
用于使用另一个字符串将字符串拆分为数组。
经典ASP中的等价物被称为(有趣的是)Split()
并且可以像这样使用;
Dim list, template
'This will give you a list array variable containing the array elements from the Split().
list = Split(template, "INSERT CONTENT HERE")
str_replace()
用于替换另一个搜索字符串的出现。
经典ASP中的等价物被称为(打赌你无法猜测)Replace()
并且可以像这样使用;
Dim template
template = Replace(template, "src=""content""", "src=""http://staging.domain.edu/content/""")
答案 1 :(得分:2)
我不知道问题是否真的需要回答Classic ASP或C#,因为Classic ASP中的语法与C#不同。 OP必须在她/他将要使用答案的地方更具体。您在C#中的PHP等效的explode(),str_replace()将是
string[] list;
string NewTemplate;
template.Replace("src=\"/etc/","src=\"https://dite.edu/etc/", "What ever your replacement should be");
// repeat this as many times as you want to or you can use it like
// NewTemplate= ((Source.replace(a,b)).replace(c,d)).replace.... and so on
// list=NewTemplate.split......
list = template.Split(stringSeparators, StringSplitOptions.None);
其中stringSeparators是您在此处的“插入内容”&#39;
答案 2 :(得分:1)
在ASP.net中,您可以使用它来实现目标:
REPLACE(ORIGINSTRING,TEXTTOMATCH,REPLACETEXT)
假设您在名为T
的变量中有一个字符串,其中包含以下文字I'M A SHINY BOY
,并且您希望将BOY
更改为GIRL
:
REPLACE(T,"BOY","GIRL")
完成!
关于第二个陈述,我想这是某种迭代,但我以前从未见过它,所以我无法添加更多信息。