2014-04-29 46 views
-1

我有一個模板正在從另一個服務器調用。然後,我必須使用一些字符串替換來修復網址。ASP中explode(),str_replace()的等效

這裏是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

感謝,好多問題 – LisaH

+0

@AmalMurali尼斯編輯,怎麼樣,你以爲這當OP沒有提示它是[tag:asp.net]時,不是[tag:asp-classic]。 OP可以澄清嗎?無論哪種方式我的答案適用於兩者。 – Lankymart

+0

@Lankymart:我在刪除'explode()'和'str-replace()'標記時意外刪除了該標籤。隨意添加它。 –

回答

3

重要:

這是now clear,這個問題是不淨,但的人誰在這裏結束了尋找這些功能的經典ASP當量進行閱讀。


經典ASP等同的功能

有當量爲這兩個功能在經典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/""") 
+0

謝謝,我會嘗試這個,並查看和學習! – LisaH

+1

@LisaH如果您使用.NET,這不適用這是使用VBScript的傳統ASP。 – Lankymart

1

在ASP.net,你可以用它來實現自己的目標:

REPLACE(ORIGINSTRING,TEXTTOMATCH,REPLACETEXT) 

假設你有一個名爲T用以下文字I'M A SHINY BOY變量字符串,你想改變BOYGIRL

REPLACE(T,"BOY","GIRL") 

完成!

關於第二條語句,我認爲這是一種迭代,但我從未見過它,因此我無法添加更多信息。

+0

你的意思是你已經回答,你不知道? Ofc它是一個迭代,您甚至可以定義要替換多少次,默認情況下它會查找所有出現次數。 – Lankymart

+0

不,我知道關於str_replace,但我從來沒有見過的前列表($頂部,$底部)我不知道它是如何工作的 – makemoney2010

+0

當你說第二個陳述假定你指的是你的答案中的「你的」第二個陳述。 'list($ top,$ bottom)'是一個數組的簡單兩個定義的元素,'explode()'用於填充它們。 Split()函數提供了類似的功能,但它是動態的,返回的元素數量取決於用於拆分傳遞的原始字符串的字符串。 – Lankymart

2

我不知道如果問題確實需要經典ASP或C#的答案,因爲經典ASP和C#中的語法不同。 OP必須更具體地說明他/她將要使用何種答案。的爆炸(),str_replace()函數在C#中的PHP相當於將

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是你的「此處插入內容」

+0

好的一點他們正在使用什麼將是有益的。 – Lankymart

+0

謝謝。我認爲這是經典的。我這樣說是因爲它是供應商提供的,我只需要用模板填充外觀。我試圖研究他們使用什麼(手冊很少),但沒有找到。我會嘗試更多。謝謝。 – LisaH

+0

@LisaH同意Lankymart,如果您將實際代碼發佈到您試圖將PHP轉換爲其中的代碼,它將有助於爲您提供更好的答案。因爲現在大家都在猜測你需要什麼,你的標籤包括C#和Classic ASP。至少有什麼擴展名文件正在使用 - xxx.ASP或xxx.ASPX/xxx.CS? – AlekseyF