我們正在移動現有網站以使用CDN分配img
資源。項目經理已經要求在每個頁面上我們必須將img src
分配給六個不同的CDN子域中的一個 - 這個想法是因爲對不同域的下載請求同時執行而不是串行執行,我們將獲得速度優勢。批量替換序列化CDN子域
換句話說,我需要把這個...
<p>Argle bargle.</p>
<img src="http://old-domain.com/_img/image-a.jpg">
<img src="http://old-domain.com/_img/image-b.jpg">
<img src="http://old-domain.com/_img/image-c.jpg">
<img src="http://old-domain.com/_img/image-d.jpg">
<img src="http://old-domain.com/_img/image-e.jpg">
<img src="http://old-domain.com/_img/image-f.jpg">
<img src="http://old-domain.com/_img/image-g.jpg">
<img src="http://old-domain.com/_img/image-h.jpg">
<p>Whiz bang.</p>
進入這個......
<p>Argle bargle.</p>
<img src="http://cdn1.cdn.com/_img/image-a.jpg">
<img src="http://cdn2.cdn.com/_img/image-b.jpg">
<img src="http://cdn3.cdn.com/_img/image-c.jpg">
<img src="http://cdn4.cdn.com/_img/image-d.jpg">
<img src="http://cdn5.cdn.com/_img/image-e.jpg">
<img src="http://cdn6.cdn.com/_img/image-f.jpg">
<img src="http://cdn1.cdn.com/_img/image-g.jpg">
<img src="http://cdn2.cdn.com/_img/image-h.jpg">
<p>Whiz bang.</p>
我有數百個文件的更新和他們都比複雜得多上面的例子。如果CDN只是一個域,我將使用TextWrangler立即批量替換所有文件。但我需要以某種方式序列化(甚至隨機化?)替換字符串。
我使用FileMaker Pro作爲生產前端(用於自動化導航構建,元標記等),因此我嘗試在我的HTML輸出字段上創建一個計算序列化每個src,但我認爲它需要一個for-each循環,您無法在Calculation字段中進行(我有FM Pro,而不是FM Pro Advanced,所以我無法使用自定義功能)。
任何人在AppleScript中都做過類似的事情嗎?或者可以利用終端文本處理器?任何建議,將不勝感激。
太棒了,很多很多謝謝!我的每個HTML頁面都是FMP記錄,我將其批量導出到一個文件夾中,並使用'do shell script \「mkdir'來構建目錄結構。使用@Global表的第一個解決方案看起來像在工作流程中工作會很艱鉅。你的第二個簡單的FM腳本解決方案,有一些調整,是蜜蜂膝蓋。請注意,任何修改解決方案的人,請確保您的替換字符串的段不會與您的位置和長度字符串完全匹配,或者在遇到第一個實例時獲得遞歸覆蓋。 – divvuk 2014-11-22 00:11:27
啊!一個稍微的調整應該有助於遞歸問題,就是改變這一行:'domainPosition = Position($ html;「http://old-domain.com/_img/」; 1; 1);'以便它改爲讀取:'domainPosition = Position($ html;「http://old-domain.com/_img/」;($ i> 1)*(domainPosition + domainLength); 1);'。這將在前一次替換之後開始每個位置搜索。 – 2014-11-22 02:03:15
腳本編輯器不允許我在這些位置使用domainPosition和domainLength(可能是因爲它們還沒有被聲明?),如果我在這兩個位置硬編碼它們的定義,則所有的替換字符串都會被寫入到頂部文件。但我並不是要求解決這個問題;我的原始解決方案的解決方案很好,再次感謝。 – divvuk 2014-11-25 00:19:19